summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2001-08-11 10:22:11 +0000
committerhugetoad <hugetoad@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2001-08-11 10:22:11 +0000
commitb19b5e7b00b34e439b7f6934603ef3feb8a94a8f (patch)
tree3053cc068566140604428647771f3f4ea4b40d28 /src
parentbcad0d8ff2049311f84d6727190601999d63d4bd (diff)
downloadzabbix-b19b5e7b00b34e439b7f6934603ef3feb8a94a8f.tar.gz
zabbix-b19b5e7b00b34e439b7f6934603ef3feb8a94a8f.tar.xz
zabbix-b19b5e7b00b34e439b7f6934603ef3feb8a94a8f.zip
Minor changes.
git-svn-id: svn://svn.zabbix.com/trunk@161 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src')
-rw-r--r--src/zabbix_agent/sysinfo.c36
-rw-r--r--src/zabbix_agent/sysinfo.h5
-rw-r--r--src/zabbix_agent/zabbix_agentd.c37
-rw-r--r--src/zabbix_sucker/zabbix_sucker.c2
4 files changed, 57 insertions, 23 deletions
diff --git a/src/zabbix_agent/sysinfo.c b/src/zabbix_agent/sysinfo.c
index c58805e9..59edf757 100644
--- a/src/zabbix_agent/sysinfo.c
+++ b/src/zabbix_agent/sysinfo.c
@@ -71,13 +71,16 @@ COMMAND commands[]=
{"swap[in]" ,EXECUTE, "vmstat -n 1 2|tail -1|cut -b37-40"},
{"swap[out]" ,EXECUTE, "vmstat -n 1 2|tail -1|cut -b41-44"},
- {"io[in]" ,EXECUTE, "vmstat -n 1 2|tail -1|cut -b45-50"},
- {"io[out]" ,EXECUTE, "vmstat -n 1 2|tail -1|cut -b51-56"},
-
{"system[interrupts]" ,EXECUTE, "vmstat -n 1 2|tail -1|cut -b57-61"},
{"system[switches]" ,EXECUTE, "vmstat -n 1 2|tail -1|cut -b62-67"},
***************************************/
+ {"io[disk_io]" ,DISK_IO, 0},
+ {"io[disk_rio]" ,DISK_RIO, 0},
+ {"io[disk_wio]" ,DISK_WIO, 0},
+ {"io[disk_rblk]" ,DISK_RBLK, 0},
+ {"io[disk_wblk]" ,DISK_WBLK, 0},
+
{"system[procload]" ,PROCLOAD, 0},
{"system[procload5]" ,PROCLOAD5, 0},
{"system[procload15]" ,PROCLOAD15, 0},
@@ -89,8 +92,6 @@ COMMAND commands[]=
{"ping" ,PING, 0},
{"tcp_count" ,EXECUTE, "netstat -tn|grep EST|wc -l"},
-/* {"net[listen_21]" ,EXECUTE, "netstat -lnt|grep -v grep|grep ':21 '|wc -l"}, */
-/* {"net[listen_21]" ,EXECUTE, "cat /proc/net/tcp|grep '0015 00000000:0000 0A'|wc -l"}, */
{"net[listen_21]" ,TCP_LISTEN, "0015"},
{"net[listen_22]" ,TCP_LISTEN, "0016"},
{"net[listen_23]" ,TCP_LISTEN, "0017"},
@@ -486,6 +487,31 @@ float SWAPTOTAL(void)
return getPROC("/proc/meminfo",9,2);
}
+float DISK_IO(void)
+{
+ return getPROC("/proc/stat",2,2);
+}
+
+float DISK_RIO(void)
+{
+ return getPROC("/proc/stat",3,2);
+}
+
+float DISK_WIO(void)
+{
+ return getPROC("/proc/stat",4,2);
+}
+
+float DISK_RBLK(void)
+{
+ return getPROC("/proc/stat",5,2);
+}
+
+float DISK_WBLK(void)
+{
+ return getPROC("/proc/stat",6,2);
+}
+
float EXECUTE(char *command)
{
FILE *f;
diff --git a/src/zabbix_agent/sysinfo.h b/src/zabbix_agent/sysinfo.h
index 906e3e16..11da0967 100644
--- a/src/zabbix_agent/sysinfo.h
+++ b/src/zabbix_agent/sysinfo.h
@@ -12,6 +12,11 @@ float TOTALMEM(void);
float SHAREDMEM(void);
float BUFFERSMEM(void);
float CACHEDMEM(void);
+float DISK_IO(void);
+float DISK_RIO(void);
+float DISK_WIO(void);
+float DISK_RBLK(void);
+float DISK_WBLK(void);
float PING(void);
float PROCCOUNT(void);
float PROCLOAD(void);
diff --git a/src/zabbix_agent/zabbix_agentd.c b/src/zabbix_agent/zabbix_agentd.c
index 61ba4498..6bd97e56 100644
--- a/src/zabbix_agent/zabbix_agentd.c
+++ b/src/zabbix_agent/zabbix_agentd.c
@@ -30,6 +30,8 @@
static pid_t *pids;
+char host_allowed[16];
+
void signal_handler( int sig )
{
if( SIGALRM == sig )
@@ -73,31 +75,34 @@ void daemon_init(void)
}
}
+void init_security(void)
+{
+ int file;
+ int i;
+
+ file=open("/etc/zabbix/zabbix_agent.conf",O_RDONLY);
+ if(file == -1)
+ {
+ syslog( LOG_CRIT, "Cannot open /etc/zabbix/zabbix_agent.conf");
+ exit(1);
+ }
+ i=read(file, host_allowed, 16);
+ host_allowed[i-1]=0;
+ close(file);
+}
int check_security(int sockfd)
{
char *sname;
- char config[16];
struct sockaddr_in name;
int i;
- int file;
if(getpeername(sockfd, (struct sockaddr *)&name, (size_t *)&i) == 0)
{
- file=open("/etc/zabbix/zabbix_agent.conf",O_RDONLY);
- if(file == -1)
- {
- syslog( LOG_CRIT, "Cannot open /etc/zabbix/zabbix_agent.conf");
- exit(1);
- }
- i=read(file, config, 16);
- config[i-1]=0;
- close(file);
-
i=sizeof(struct sockaddr_in);
sname=inet_ntoa(name.sin_addr);
- if(strcmp(sname,config)!=0)
+ if(strcmp(sname, host_allowed)!=0)
{
syslog( LOG_WARNING, "Connection from [%s] rejected",sname);
return FAIL;
@@ -112,7 +117,6 @@ void process_child(int sockfd)
char line[1024];
char result[1024];
double res;
- void *sigfunc;
for(;;)
{
@@ -244,10 +248,7 @@ int main()
signal( SIGTERM, signal_handler );
signal( SIGALRM, signal_handler );
-// if(check_security() == FAIL)
-// {
-// exit(FAIL);
-// }
+ init_security();
openlog("zabbix_agentd",LOG_PID,LOG_USER);
// ret=setlogmask(LOG_UPTO(LOG_DEBUG));
diff --git a/src/zabbix_sucker/zabbix_sucker.c b/src/zabbix_sucker/zabbix_sucker.c
index 9f0fde7c..6bf70297 100644
--- a/src/zabbix_sucker/zabbix_sucker.c
+++ b/src/zabbix_sucker/zabbix_sucker.c
@@ -506,6 +506,8 @@ int main(int argc, char **argv)
{
if(fork() == 0)
{
+ /* Do not start all processes at once */
+ sleep(1);
sucker_num=i;
break;
}