diff options
| author | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-10-10 13:34:58 +0000 |
|---|---|---|
| committer | alex <alex@97f52cf1-0a1b-0410-bd0e-c28be96e8082> | 2006-10-10 13:34:58 +0000 |
| commit | 495799b2aa61aab23d74d7faa110a0cd09d59bf0 (patch) | |
| tree | f25c991e9a2c9db854dab7919700c70d9ee99ea8 | |
| parent | abafe94bd653f8510dba94760607869ff31b248d (diff) | |
More changes for distributed monitoring.
git-svn-id: svn://svn.zabbix.com/trunk@3335 97f52cf1-0a1b-0410-bd0e-c28be96e8082
| -rw-r--r-- | create/data/data.sql | 137 | ||||
| -rw-r--r-- | create/schema/schema.sql | 24 | ||||
| -rw-r--r-- | include/common.h | 7 | ||||
| -rw-r--r-- | src/libs/zbxdbhigh/db.c | 16 | ||||
| -rw-r--r-- | src/zabbix_server/nodewatcher/history.c | 148 | ||||
| -rw-r--r-- | src/zabbix_server/trapper/nodehistory.c | 43 |
6 files changed, 305 insertions, 70 deletions
diff --git a/create/data/data.sql b/create/data/data.sql index 50a7e1ef..914d9cb2 100644 --- a/create/data/data.sql +++ b/create/data/data.sql @@ -60,6 +60,16 @@ INSERT INTO rights VALUES (3,2,'Default permission','R',0); -- Dumping data for table `hosts` -- +INSERT INTO hosts VALUES (10010,'a0',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10011,'a1',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10012,'a2',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10013,'a3',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10014,'a4',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10015,'a5',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10016,'a6',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10017,'a7',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10018,'a8',1,'127.0.0.1',10050,0,0,'',0,0,0); +INSERT INTO hosts VALUES (10019,'a9',1,'127.0.0.1',10050,0,0,'',0,0,0); --INSERT INTO hosts VALUES (10001,'Unix_t',0,'',10000,3,0,'',0,0,0); INSERT INTO hosts VALUES (10001,'Unix_t',1,'127.0.0.1',10050,0,0,'',0,0,0); INSERT INTO hosts VALUES (10002,'Windows_t',0,'',10000,3,0,'',0,0,0); @@ -67,6 +77,17 @@ INSERT INTO hosts VALUES (10004,'Standalone_t',0,'',10000,3,0,'',0,0,0); INSERT INTO hosts VALUES (10003,'MySQL_t',0,'',10000,3,0,'',0,0,0); INSERT INTO hosts VALUES (10007,'SNMP_t',0,'',161,3,0,'',0,0,0); +INSERT INTO items VALUES (19020,0,'','',161,10010,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19021,0,'','',161,10011,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19022,0,'','',161,10012,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19023,0,'','',161,10013,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19024,0,'','',161,10014,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19025,0,'','',161,10015,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19026,0,'','',161,10016,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19027,0,'','',161,10017,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19028,0,'','',161,10018,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (19029,0,'','',161,10019,'Ping to the server (TCP)','agent.ping',001,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); + -- -- Dumping data for table `groups` -- @@ -160,43 +181,43 @@ insert into help_items values(0,'vm.memory.size[<mode>]','Amount of memory -- Dumping data for table items -- -INSERT INTO items VALUES (10001,0,'','',161,10001,'Free memory','vm.memory.size[free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10002,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); -INSERT INTO items VALUES (10003,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/tmp,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); -INSERT INTO items VALUES (10004,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/usr,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); -INSERT INTO items VALUES (10005,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/,free]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10006,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/opt,free]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10007,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/tmp,free]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10008,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/usr,free]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10009,0,'','',161,10001,'Number of processes','proc.num[]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10001,0,'','',161,10001,'Free memory','vm.memory.size[free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10002,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10003,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/tmp,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10004,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/usr,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10005,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/,free]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10006,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/opt,free]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10007,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/tmp,free]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10008,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/usr,free]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10009,0,'','',161,10001,'Number of processes','proc.num[]',30,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10010,0,'','',161,10001,'Processor load','system.cpu.load[,avg1]',5,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10011,0,'','',161,10001,'Processor load5','system.cpu.load[,avg5]',10,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10012,0,'','',161,10001,'Processor load15','system.cpu.load[,avg15]',20,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10013,0,'','',161,10001,'Number of running processes','system[procrunning]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10014,0,'','',161,10001,'Free swap space','system.swap.size[,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10015,0,'','',161,10001,'Size of $1','filesize[/var/log/syslog]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10016,0,'','',161,10001,'Number of users connected','system.users.num',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10013,0,'','',161,10001,'Number of running processes','system[procrunning]',30,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10014,0,'','',161,10001,'Free swap space','system.swap.size[,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10015,0,'','',161,10001,'Size of $1','filesize[/var/log/syslog]',30,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10016,0,'','',161,10001,'Number of users connected','system.users.num',30,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10017,0,'','',161,10001,'Checksum of $1','vfs.file.cksum[/etc/inetd.conf]',600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10018,0,'','',161,10001,'Checksum of $1','vfs.file.cksum[/vmlinuz]',600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10019,0,'','',161,10001,'Checksum of $1','vfs.file.cksum[/etc/passwd]',600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10020,0,'','',161,10001,'Ping to the server (TCP)','agent.ping',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10021,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/home,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); -INSERT INTO items VALUES (10022,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/home,free]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10023,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/var,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); -INSERT INTO items VALUES (10024,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/opt,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10020,0,'','',161,10001,'Ping to the server (TCP)','agent.ping',30,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10021,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/home,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10022,0,'','',161,10001,'Free number of inodes on $1','vfs.fs.inode[/home,free]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10023,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/var,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10024,0,'','',161,10001,'Free disk space on $1','vfs.fs.size[/opt,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','1','',0,'',0,0,''); INSERT INTO items VALUES (10025,0,'','',161,10001,'Host uptime (in sec)','system.uptime',300,7,365,0,NULL,NULL,NULL,0,0,'','s',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10026,0,'','',161,10001,'Total memory','vm.memory.size[total]',1800,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10027,0,'','',161,10001,'Shared memory','vm.memory.size[shared]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10028,0,'','',161,10001,'Buffers memory','vm.memory.size[buffers]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10029,0,'','',161,10001,'Cached memory','vm.memory.size[cached]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10030,0,'','',161,10001,'Total swap space','system.swap.size[,total]',1800,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10031,0,'','',161,10001,'Email (SMTP) server is running','net.tcp.service[smtp]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10032,0,'','',161,10001,'FTP server is running','net.tcp.service[ftp]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10033,0,'','',161,10001,'SSH server is running','net.tcp.service[ssh]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10034,0,'','',161,10001,'Telnet server is running','net[listen_23]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10035,0,'','',161,10001,'WEB server is running','net[listen_80]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10036,0,'','',161,10001,'POP3 server is running','net.tcp.service[pop]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10037,0,'','',161,10001,'IMAP server is running','net.tcp.service[imap]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10026,0,'','',161,10001,'Total memory','vm.memory.size[total]',1800,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10027,0,'','',161,10001,'Shared memory','vm.memory.size[shared]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10028,0,'','',161,10001,'Buffers memory','vm.memory.size[buffers]',30,7,365,0,NULL,NULL,NULL,3,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10029,0,'','',161,10001,'Cached memory','vm.memory.size[cached]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10030,0,'','',161,10001,'Total swap space','system.swap.size[,total]',1800,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10031,0,'','',161,10001,'Email (SMTP) server is running','net.tcp.service[smtp]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10032,0,'','',161,10001,'FTP server is running','net.tcp.service[ftp]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10033,0,'','',161,10001,'SSH server is running','net.tcp.service[ssh]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10034,0,'','',161,10001,'Telnet server is running','net[listen_23]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10035,0,'','',161,10001,'WEB server is running','net[listen_80]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10036,0,'','',161,10001,'POP3 server is running','net.tcp.service[pop]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10037,0,'','',161,10001,'IMAP server is running','net.tcp.service[imap]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10038,0,'','',161,10001,'Checksum of $1','vfs.file.cksum[/usr/sbin/sshd]',600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10039,0,'','',161,10001,'Checksum of $1','vfs.file.cksum[/usr/bin/ssh]',600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10040,0,'','',161,10001,'Checksum of $1','vfs.file.cksum[/etc/services]',600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); @@ -205,31 +226,31 @@ INSERT INTO items VALUES (10042,0,'','',161,10001,'Number of disks read operatio INSERT INTO items VALUES (10043,0,'','',161,10001,'Number of disks write operations','io[disk_wio]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10044,0,'','',161,10001,'Number of block read from disks','io[disk_rblk]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10045,0,'','',161,10001,'Number of block written to disks','io[disk_wblk]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10046,0,'','',161,10001,'News (NNTP) server is running','net.tcp.service[nntp]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10047,0,'','',161,10001,'Number of running processes inetd','proc_cnt[inetd]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10048,0,'','',161,10001,'Number of running processes apache','proc_cnt[httpd]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10049,0,'','',161,10001,'Number of running processes mysqld','proc_cnt[mysqld]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10050,0,'','',161,10001,'Number of running processes syslogd','proc_cnt[syslogd]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10051,0,'','',161,10001,'Number of running processes sshd','proc_cnt[sshd]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10052,0,'','',161,10001,'Number of running processes $1','proc_cnt[zabbix_agentd]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10053,0,'','',161,10001,'Number of running processes $1','proc_cnt[zabbix_server]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10046,0,'','',161,10001,'News (NNTP) server is running','net.tcp.service[nntp]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10047,0,'','',161,10001,'Number of running processes inetd','proc_cnt[inetd]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10048,0,'','',161,10001,'Number of running processes apache','proc_cnt[httpd]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10049,0,'','',161,10001,'Number of running processes mysqld','proc_cnt[mysqld]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10050,0,'','',161,10001,'Number of running processes syslogd','proc_cnt[syslogd]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10051,0,'','',161,10001,'Number of running processes sshd','proc_cnt[sshd]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10052,0,'','',161,10001,'Number of running processes $1','proc_cnt[zabbix_agentd]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10053,0,'','',161,10001,'Number of running processes $1','proc_cnt[zabbix_server]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10055,0,'','',161,10001,'Maximum number of processes','kern[maxproc]',1800,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10056,0,'','',161,10001,'Maximum number of opened files','kern[maxfiles]',1800,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10057,0,'','',161,10001,'Host name','system.hostname',1800,7,365,0,NULL,NULL,NULL,0,1,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10058,0,'','',161,10001,'Host information','system.uname',1800,7,365,0,NULL,NULL,NULL,0,1,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10059,0,'','',161,10001,'Version of zabbix_agent(d) running','agent.version',1800,7,365,0,NULL,NULL,NULL,0,1,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10060,0,'','',161,10001,'WEB (HTTP) server is running','net.tcp.service[http]',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10061,0,'','',161,10001,'Host status','status',60,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10062,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10063,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/opt,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10064,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/tmp,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10065,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/usr,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10066,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/home,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10067,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10068,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/opt,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10069,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/tmp,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10070,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/usr,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10071,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/home,total]',3600,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10060,0,'','',161,10001,'WEB (HTTP) server is running','net.tcp.service[http]',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10061,0,'','',161,10001,'Host status','status',60,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10062,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10063,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/opt,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10064,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/tmp,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10065,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/usr,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10066,0,'','',161,10001,'Total number of inodes on $1','vfs.fs.inode[/home,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10067,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10068,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/opt,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10069,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/tmp,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10070,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/usr,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10071,0,'','',161,10001,'Total disk space on $1','vfs.fs.size[/home,total]',3600,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10072,0,'','',161,10001,'Incoming traffic on interface lo (1min)','netloadin1[lo]',5,7,365,0,NULL,NULL,NULL,0,0,'','Bps',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10073,0,'','',161,10001,'Incoming traffic on interface lo (5min)','netloadin5[lo]',10,7,365,0,NULL,NULL,NULL,0,0,'','Bps',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10074,0,'','',161,10001,'Incoming traffic on interface lo (15min)','netloadin15[lo]',20,7,365,0,NULL,NULL,NULL,0,0,'','Bps',0,0,NULL,'',0,'','','0','',0,'',0,0,''); @@ -260,18 +281,18 @@ INSERT INTO items VALUES (10408,0,'','',161,10001,'Number of read operations on INSERT INTO items VALUES (10409,0,'','',161,10001,'Number of write operations on disk hdb (1min)','disk_write_ops1[hdb]',5,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10410,0,'','',161,10001,'Number of write operations on disk hdb (5min)','disk_write_ops5[hdb]',10,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10411,0,'','',161,10001,'Number of write operations on disk hdb (15min)','disk_write_ops15[hdb]',20,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10412,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/,used]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10413,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/opt,used]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10412,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/,used]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10413,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/opt,used]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10414,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/var,used]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10415,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/tmp,used]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10416,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/usr,used]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10417,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/home,used]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10415,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/tmp,used]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10416,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/usr,used]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10417,0,'','',161,10001,'Used disk space on $1','vfs.fs.size[/home,used]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10418,0,'','',161,10001,'Temperature of mainboard','sensor[temp1]',30,7,365,0,NULL,NULL,NULL,0,0,'','C',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10419,0,'','',161,10001,'Temperature of CPU 1of2','sensor[temp2]',30,7,365,0,NULL,NULL,NULL,0,0,'','C',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10420,0,'','',161,10001,'Temperature of CPU 2of2','sensor[temp3]',30,7,365,0,NULL,NULL,NULL,0,0,'','C',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10090,0,'','',161,10002,'Free memory','vm.memory.size[free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); -INSERT INTO items VALUES (10091,0,'','',161,10002,'Free disk space on $1','vfs.fs.size[c:,free]',30,7,365,0,NULL,NULL,NULL,0,0,'','B',1,0,NULL,'',0,'','','1','',0,'',0,0,''); -INSERT INTO items VALUES (10098,0,'','',161,10002,'Number of processes','proc.num[]',30,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10090,0,'','',161,10002,'Free memory','vm.memory.size[free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',0,0,NULL,'',0,'','','0','',0,'',0,0,''); +INSERT INTO items VALUES (10091,0,'','',161,10002,'Free disk space on $1','vfs.fs.size[c:,free]',30,7,365,0,NULL,NULL,NULL,0,3,'','B',1,0,NULL,'',0,'','','1','',0,'',0,0,''); +INSERT INTO items VALUES (10098,0,'','',161,10002,'Number of processes','proc.num[]',30,7,365,0,NULL,NULL,NULL,0,3,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10099,0,'','',161,10002,'Processor load','system.cpu.load[,avg1]',5,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10100,0,'','',161,10002,'Processor load5','system.cpu.load[,avg5]',10,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); INSERT INTO items VALUES (10101,0,'','',161,10002,'Processor load15','system.cpu.load[,avg15]',20,7,365,0,NULL,NULL,NULL,0,0,'','',0,0,NULL,'',0,'','','0','',0,'',0,0,''); diff --git a/create/schema/schema.sql b/create/schema/schema.sql index 650cfa37..49abce50 100644 --- a/create/schema/schema.sql +++ b/create/schema/schema.sql @@ -22,7 +22,7 @@ -- CREATE TABLE nodes ( - nodeid {bigint} DEFAULT '0' NOT NULL, + nodeid {integer} DEFAULT '0' NOT NULL, name {varchar}(64) DEFAULT '' NOT NULL, timezone {integer} DEFAULT '0' NOT NULL, ip {varchar}(15) DEFAULT '' NOT NULL, @@ -302,6 +302,17 @@ CREATE TABLE history_uint ( CREATE INDEX history_uint_1 ON history_uint (itemid, clock); +CREATE TABLE history_uint_sync ( + id {serial}, + nodeid {integer} DEFAULT '0' NOT NULL, + itemid {bigint} DEFAULT '0' NOT NULL, + clock {integer} DEFAULT '0' NOT NULL, + value {bigint} DEFAULT '0' NOT NULL, + PRIMARY KEY (id) +) {create_table_opt}; + +CREATE INDEX history_uint_sync_1 ON history_uint_sync (nodeid, id); + CREATE TABLE history_str ( itemid {bigint} DEFAULT '0' NOT NULL, clock {integer} DEFAULT '0' NOT NULL, @@ -310,6 +321,17 @@ CREATE TABLE history_str ( CREATE INDEX history_str_1 ON history_str (itemid, clock); +CREATE TABLE history_str_sync ( + id {serial}, + nodeid {integer} DEFAULT '0' NOT NULL, + itemid {bigint} DEFAULT '0' NOT NULL, + clock {integer} DEFAULT '0' NOT NULL, + value {varchar}(255) DEFAULT '' NOT NULL, + PRIMARY KEY (id) +) {create_table_opt}; + +CREATE INDEX history_str_sync_1 ON history_str_sync (nodeid, id); + CREATE TABLE hosts ( hostid {bigint} DEFAULT '0' NOT NULL, host {varchar}(64) DEFAULT '' NOT NULL, diff --git a/include/common.h b/include/common.h index d0413664..e35c9dd5 100644 --- a/include/common.h +++ b/include/common.h @@ -217,6 +217,13 @@ #define ZBX_TYPE_TEXT 4 #define ZBX_TYPE_UINT 5 +/* Flags for node history exchange */ +#define ZBX_TABLE_HISTORY 0 +#define ZBX_TABLE_HISTORY_UINT 1 +#define ZBX_TABLE_HISTORY_STR 2 +#define ZBX_TABLE_HISTORY_LOG 3 +#define ZBX_TABLE_HISTORY_TEXT 4 + /* Flags */ #define ZBX_SYNC 1 #define ZBX_NOSYNC 2 diff --git a/src/libs/zbxdbhigh/db.c b/src/libs/zbxdbhigh/db.c index c4dda150..657834ff 100644 --- a/src/libs/zbxdbhigh/db.c +++ b/src/libs/zbxdbhigh/db.c @@ -1341,14 +1341,14 @@ int DBadd_history(zbx_uint64_t itemid, double value, int clock) DBexecute("insert into history (clock,itemid,value) values (%d," ZBX_FS_UI64 ",%f)", clock,itemid,value); + DBadd_trend(itemid, value, clock); + if(CONFIG_MASTER_NODEID>=0) { DBexecute("insert into history_sync (nodeid,clock,itemid,value) values (%d,%d," ZBX_FS_UI64 ",%f)", get_nodeid_by_id(itemid),clock,itemid,value); } - DBadd_trend(itemid, value, clock); - return SUCCEED; } @@ -1361,6 +1361,12 @@ int DBadd_history_uint(zbx_uint64_t itemid, zbx_uint64_t value, int clock) DBadd_trend(itemid, (double)value, clock); + if(CONFIG_MASTER_NODEID>=0) + { + DBexecute("insert into history_uint_sync (nodeid,clock,itemid,value) values (%d,%d," ZBX_FS_UI64 "," ZBX_FS_UI64 ")", + get_nodeid_by_id(itemid),clock,itemid,value); + } + return SUCCEED; } @@ -1374,6 +1380,12 @@ int DBadd_history_str(zbx_uint64_t itemid, char *value, int clock) DBexecute("insert into history_str (clock,itemid,value) values (%d," ZBX_FS_UI64 ",'%s')", clock,itemid,value_esc); + if(CONFIG_MASTER_NODEID>=0) + { + DBexecute("insert into history_str_sync (nodeid,clock,itemid,value) values (%d,%d," ZBX_FS_UI64 ",'%s')", + get_nodeid_by_id(itemid),clock,itemid,value_esc); + } + return SUCCEED; } diff --git a/src/zabbix_server/nodewatcher/history.c b/src/zabbix_server/nodewatcher/history.c index 53828ba4..69dcfaa4 100644 --- a/src/zabbix_server/nodewatcher/history.c +++ b/src/zabbix_server/nodewatcher/history.c @@ -56,6 +56,148 @@ extern int CONFIG_NODEID; /****************************************************************************** * * + * Function: process_node_history_str * + * * + * Purpose: process new history_str data * + * * + * Parameters: * + * * + * Return value: SUCCESS - processed succesfully * + * FAIL - an error occured * + * * + * Author: Alexei Vladishev * + * * + * Comments: * + * * + ******************************************************************************/ +static int process_node_history_str(int nodeid, int master_nodeid) +{ + DB_RESULT result; + DB_ROW row; + char *data; + char tmp[MAX_STRING_LEN]; + char sql[MAX_STRING_LEN]; + int found = 0; + + zbx_uint64_t id; + zbx_uint64_t itemid; + +#define DATA_MAX 1024*1024 + +// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid); + /* Begin work */ + + data = malloc(DATA_MAX); + memset(data,0,DATA_MAX); + + zbx_snprintf(tmp,sizeof(tmp),"History|%d|%d\n", CONFIG_NODEID, nodeid); + strncat(data,tmp,DATA_MAX); + + zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_str_sync where nodeid=%d order by id", nodeid); + + result = DBselectN(sql, 100000); + while((row=DBfetch(result))) + { + ZBX_STR2UINT64(id,row[0]) + ZBX_STR2UINT64(itemid,row[1]) +// zabbix_log( LOG_LEVEL_WARNING, "Processing itemid " ZBX_FS_UI64, itemid); + found = 1; + zbx_snprintf(tmp,sizeof(tmp),"%d|%s|%s|%s\n", ZBX_TABLE_HISTORY_STR,row[1],row[2],row[3]); + strncat(data,tmp,DATA_MAX); + } + if(found == 1) + { +// zabbix_log( LOG_LEVEL_WARNING, "Sending [%s]",data); + if(send_to_node(master_nodeid, nodeid, data) == SUCCEED) + { +// zabbix_log( LOG_LEVEL_WARNING, "Updating nodes.history_lastid"); + DBexecute("update nodes set history_str_lastid=" ZBX_FS_UI64 " where nodeid=%d", id, nodeid); + DBexecute("delete from history_str_sync where nodeid=%d and id<=" ZBX_FS_UI64, nodeid, id); + } + else + { + zabbix_log( LOG_LEVEL_WARNING, "Not updating nodes.history_str_lastid"); + } + } + DBfree_result(result); + free(data); + + return SUCCEED; +} + +/****************************************************************************** + * * + * Function: process_node_history_uint * + * * + * Purpose: process new history_uint data * + * * + * Parameters: * + * * + * Return value: SUCCESS - processed succesfully * + * FAIL - an error occured * + * * + * Author: Alexei Vladishev * + * * + * Comments: * + * * + ******************************************************************************/ +static int process_node_history_uint(int nodeid, int master_nodeid) +{ + DB_RESULT result; + DB_ROW row; + char *data; + char tmp[MAX_STRING_LEN]; + char sql[MAX_STRING_LEN]; + int found = 0; + + zbx_uint64_t id; + zbx_uint64_t itemid; + +#define DATA_MAX 1024*1024 + +// zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, event_lastid:" ZBX_FS_UI64 ")",nodeid, event_lastid); + /* Begin work */ + + data = malloc(DATA_MAX); + memset(data,0,DATA_MAX); + + zbx_snprintf(tmp,sizeof(tmp),"History|%d|%d\n", CONFIG_NODEID, nodeid); + strncat(data,tmp,DATA_MAX); + + zbx_snprintf(sql,sizeof(sql),"select id,itemid,clock,value from history_uint_sync where nodeid=%d order by id", nodeid); + + result = DBselectN(sql, 100000); + while((row=DBfetch(result))) + { + ZBX_STR2UINT64(id,row[0]) + ZBX_STR2UINT64(itemid,row[1]) +// zabbix_log( LOG_LEVEL_WARNING, "Processing itemid " ZBX_FS_UI64, itemid); + found = 1; + zbx_snprintf(tmp,sizeof(tmp),"%d|%s|%s|%s\n", ZBX_TABLE_HISTORY_UINT,row[1],row[2],row[3]); + strncat(data,tmp,DATA_MAX); + } + if(found == 1) + { +// zabbix_log( LOG_LEVEL_WARNING, "Sending [%s]",data); + if(send_to_node(master_nodeid, nodeid, data) == SUCCEED) + { +// zabbix_log( LOG_LEVEL_WARNING, "Updating nodes.history_lastid"); + DBexecute("update nodes set history_uint_lastid=" ZBX_FS_UI64 " where nodeid=%d", id, nodeid); + DBexecute("delete from history_uint_sync where nodeid=%d and id<=" ZBX_FS_UI64, nodeid, id); + } + else + { + zabbix_log( LOG_LEVEL_WARNING, "Not updating nodes.history_uint_lastid"); + } + } + DBfree_result(result); + free(data); + + return SUCCEED; +} + +/****************************************************************************** + * * * Function: process_node_history * * * * Purpose: process new history data * @@ -102,7 +244,7 @@ static int process_node_history(int nodeid, int master_nodeid) ZBX_STR2UINT64(itemid,row[1]) // zabbix_log( LOG_LEVEL_WARNING, "Processing itemid " ZBX_FS_UI64, itemid); found = 1; - zbx_snprintf(tmp,sizeof(tmp),"%s|%s|%s\n", row[1],row[2],row[3]); + zbx_snprintf(tmp,sizeof(tmp),"%d|%s|%s|%s\n", ZBX_TABLE_HISTORY,row[1],row[2],row[3]); strncat(data,tmp,DATA_MAX); } if(found == 1) @@ -146,9 +288,9 @@ static void process_node(int nodeid, int master_nodeid) // zabbix_log( LOG_LEVEL_WARNING, "In process_node(local:%d, master_nodeid:" ZBX_FS_UI64 ")",nodeid, master_nodeid); process_node_history(nodeid, master_nodeid); -/* process_node_history_uint(nodeid, master_nodeid); + process_node_history_uint(nodeid, master_nodeid); process_node_history_str(nodeid, master_nodeid); - process_node_history_log(nodeid, master_nodeid); +/* process_node_history_log(nodeid, master_nodeid); process_node_trends(nodeid, master_nodeid);*/ } diff --git a/src/zabbix_server/trapper/nodehistory.c b/src/zabbix_server/trapper/nodehistory.c index 2fdfa700..57560bbc 100644 --- a/src/zabbix_server/trapper/nodehistory.c +++ b/src/zabbix_server/trapper/nodehistory.c @@ -64,20 +64,51 @@ extern int process_event(DB_EVENT *event); static int process_record(int nodeid, char *record) { char tmp[MAX_STRING_LEN]; + int table; zbx_uint64_t itemid; int timestamp; double value; + zbx_uint64_t value_uint; + int res = FAIL; zabbix_log( LOG_LEVEL_DEBUG, "In process_record [%s]", record); zbx_get_field(record,tmp,0,'|'); - sscanf(tmp,ZBX_FS_UI64,&itemid); - zbx_get_field(record,tmp,1,'|'); - timestamp=atoi(tmp); - zbx_get_field(record,tmp,2,'|'); - value=atof(tmp); + table=atoi(tmp); + if(table == ZBX_TABLE_HISTORY) + { + zbx_get_field(record,tmp,1,'|'); + sscanf(tmp,ZBX_FS_UI64,&itemid); + zbx_get_field(record,tmp,2,'|'); + timestamp=atoi(tmp); + zbx_get_field(record,tmp,3,'|'); + value=atof(tmp); + + res = DBadd_history(itemid, value, timestamp); + } + else if(table == ZBX_TABLE_HISTORY_UINT) + { + zbx_get_field(record,tmp,1,'|'); + sscanf(tmp,ZBX_FS_UI64,&itemid); + zbx_get_field(record,tmp,2,'|'); + timestamp=atoi(tmp); + zbx_get_field(record,tmp,3,'|'); + sscanf(tmp,ZBX_FS_UI64,&value_uint); + + res = DBadd_history_uint(itemid, value_uint, timestamp); + } + else if(table == ZBX_TABLE_HISTORY_STR) + { + zbx_get_field(record,tmp,1,'|'); + sscanf(tmp,ZBX_FS_UI64,&itemid); + zbx_get_field(record,tmp,2,'|'); + timestamp=atoi(tmp); + zbx_get_field(record,tmp,3,'|'); + + res = DBadd_history_str(itemid, tmp, timestamp); + } - return DBadd_history(itemid, value, clock); + return res; } /****************************************************************************** |
