|
|
| Author |
Message |
divagater Cacti User
Joined: 17 Nov 2004 Posts: 191 Location: Chapel Hill, NC.
|
Posted: Sat Nov 12, 2005 11:09 am Post subject: Nagios Plugin for Cacti (NPC) Released |
|
|
NOTE: This thread was for the original alpha release of NPC in 2005 and is now obsolete. The current thread for NPC 2.x is: http://forums.cacti.net/viewtopic.php?t=26540
I have an alpha release ready for the folks who are interested to check out. NPC 0.1.1a can be downloaded from http://www.divagater.com/npc/
I have been running it in my production environment for a little over a month and have not noticed any major issues like data inconsistency with Nagios.
For those interested in making changes or just looking under the covers I apologize in advance for the code. I am a PHP novice and what I wrote, although functional, would not meet the standards of good MVC design.
If you have trouble with anything I will do my best to answer questions.
Cheers,
Billy
Last edited by divagater on Fri Jun 26, 2009 9:09 pm; edited 1 time in total |
|
| Back to top |
|
 |
ancery
Joined: 03 Nov 2005 Posts: 11
|
Posted: Mon Nov 14, 2005 2:24 am Post subject: |
|
|
GREAT JOB!!!
i've expected it for a long time, thx for your great efforts,
i'll try it immediately, THANK U!! |
|
| Back to top |
|
 |
farhan
Joined: 12 Nov 2005 Posts: 47
|
Posted: Mon Nov 14, 2005 6:09 am Post subject: Nagios Plugin Release |
|
|
Awsome Work man.
Can we restrict users to view only specific hosts/services under nagios
plugin. Like we can restrict users to specific Graph under User
Management in cacti.
Thanks, |
|
| Back to top |
|
 |
r_chetanjain Cacti User
Joined: 22 Aug 2003 Posts: 83
|
Posted: Mon Nov 14, 2005 6:37 am Post subject: gr888 Job |
|
|
Gr888 dude....will expect more addtions to this Addon....Waiting for the status map to be integrated to cacti....
Chetan jain |
|
| Back to top |
|
 |
divagater Cacti User
Joined: 17 Nov 2004 Posts: 191 Location: Chapel Hill, NC.
|
Posted: Mon Nov 14, 2005 9:22 am Post subject: |
|
|
| Quote: | | Can we restrict users to view only specific hosts/services under nagios plugin. Like we can restrict users to specific Graph under User Management in cacti. |
I was just thinking about this after getting your email and I think it will be very easy to do. With the current alpha release it can't be done but I will try to get another release out this weekend with the improved permissions.
Cheers,
Billy |
|
| Back to top |
|
 |
macdonaldc
Joined: 10 Nov 2005 Posts: 25
|
Posted: Mon Nov 14, 2005 10:19 pm Post subject: |
|
|
Hi Billy,
Cant wait to get this going. Im having a small issue. I got as far as the make. Can u shed some light as to where i should look? I should note that i just had installed Nagios (from my SuSe dvd). That being the case i put the database info in the config file to point to my cacti info. Is this the problem?
BetaServer:/usr/lib/nagios/plugins # make
gcc -g -O2 -Wall -o inserter.o inserter.c -shared -I../include -I/usr/include/mysql -lmysqlclient -fPIC
inserter.c:43:25: error: mysql/mysql.h: No such file or directory
inserter.c:44:26: error: mysql/errmsg.h: No such file or directory
inserter.c:47:35: error: ../include/nebmodules.h: No such file or directory
inserter.c:48:37: error: ../include/nebcallbacks.h: No such file or directory
inserter.c:49:35: error: ../include/nebstructs.h: No such file or directory
inserter.c:50:31: error: ../include/broker.h: No such file or directory
inserter.c:53:31: error: ../include/config.h: No such file or directory
inserter.c:54:31: error: ../include/common.h: No such file or directory
inserter.c:55:31: error: ../include/nagios.h: No such file or directory
inserter.c:56:32: error: ../include/objects.h: No such file or directory
inserter.c:64: warning: type defaults to âintâ in declaration of âNEB_API_VERSIONâ
inserter.c:64: warning: parameter names (without types) in function declaration
inserter.c:64: warning: data definition has no type or storage class
inserter.c:78: error: syntax error before â*â token
inserter.c:78: warning: type defaults to âintâ in declaration of âhostgroup_listâ
inserter.c:78: warning: data definition has no type or storage class
inserter.c:79: error: syntax error before â*â token
inserter.c:79: warning: type defaults to âintâ in declaration of âservicegroup_listâ
inserter.c:79: warning: data definition has no type or storage class
inserter.c:80: error: syntax error before â*â token
inserter.c:80: warning: type defaults to âintâ in declaration of âhost_listâ
inserter.c:80: warning: data definition has no type or storage class
inserter.c:81: error: syntax error before â*â token
inserter.c:81: warning: type defaults to âintâ in declaration of âservice_listâ
inserter.c:81: warning: data definition has no type or storage class
inserter.c:96: error: syntax error before âmysqlâ
inserter.c:96: warning: type defaults to âintâ in declaration of âmysqlâ
inserter.c:96: warning: data definition has no type or storage class
inserter.c:121: error: âFALSEâ undeclared here (not in a function)
inserter.c:124: error: syntax error before ânebmoduleâ
inserter.c: In function ânebmodule_initâ:
inserter.c:130: error: âhandleâ undeclared (first use in this function)
inserter.c:130: error: (Each undeclared identifier is reported only once
inserter.c:130: error: for each function it appears in.)
inserter.c:132: warning: implicit declaration of function âwrite_to_logs_and_consoleâ
inserter.c:132: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c:132: error: âTRUEâ undeclared (first use in this function)
inserter.c:137: warning: implicit declaration of function âschedule_new_eventâ
inserter.c:137: error: âEVENT_USER_FUNCTIONâ undeclared (first use in this function)
inserter.c:139: warning: implicit declaration of function âmysql_initâ
inserter.c:144: warning: implicit declaration of function âmysql_real_connectâ
inserter.c:144: error: âCLIENT_MULTI_STATEMENTSâ undeclared (first use in this function)
inserter.c:146: warning: implicit declaration of function âsprintfâ
inserter.c:146: warning: incompatible implicit declaration of built-in function âsprintfâ
inserter.c:146: warning: implicit declaration of function âmysql_errorâ
inserter.c:146: warning: format â%sâ expects type âchar *â, but argument 3 has type âintâ
inserter.c:153: warning: implicit declaration of function âneb_register_callbackâ
inserter.c:153: error: âNEBCALLBACK_TIMED_EVENT_DATAâ undeclared (first use in this function)
inserter.c: In function ânebmodule_deinitâ:
inserter.c:164: warning: implicit declaration of function âdeschedule_eventâ
inserter.c:164: error: âEVENT_USER_FUNCTIONâ undeclared (first use in this function)
inserter.c:164: error: âTRUEâ undeclared (first use in this function)
inserter.c:166: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c:168: warning: implicit declaration of function âmysql_closeâ
inserter.c:170: warning: implicit declaration of function âneb_deregister_callbackâ
inserter.c:170: error: âNEBCALLBACK_HOST_STATUS_DATAâ undeclared (first use in this function)
inserter.c:171: error: âNEBCALLBACK_SERVICE_STATUS_DATAâ undeclared (first use in this function)
inserter.c:172: error: âNEBCALLBACK_HOST_CHECK_DATAâ undeclared (first use in this function)
inserter.c:173: error: âNEBCALLBACK_SERVICE_CHECK_DATAâ undeclared (first use in this function)
inserter.c: In function âloadconfigâ:
inserter.c:181: error: âhostâ undeclared (first use in this function)
inserter.c:181: error: âhlâ undeclared (first use in this function)
inserter.c:182: error: âserviceâ undeclared (first use in this function)
inserter.c:182: error: âslâ undeclared (first use in this function)
inserter.c:183: error: âhostgroupâ undeclared (first use in this function)
inserter.c:183: error: âhgâ undeclared (first use in this function)
inserter.c:184: error: âservicegroupâ undeclared (first use in this function)
inserter.c:184: error: âsgâ undeclared (first use in this function)
inserter.c:190: error: âNEBCALLBACK_TIMED_EVENT_DATAâ undeclared (first use in this function)
inserter.c:193: error: ânebstruct_timed_event_dataâ undeclared (first use in this function)
inserter.c:193: error: syntax error before â)â token
inserter.c:193: error: âNEBTYPE_TIMEDEVENT_ADDâ undeclared (first use in this function)
inserter.c:198: warning: implicit declaration of function âasprintfâ
inserter.c:255: warning: value computed is not used
inserter.c:258: error: ânebstruct_host_status_dataâ undeclared (first use in this function)
inserter.c:258: error: syntax error before âdsâ
inserter.c:259: error: âdsâ undeclared (first use in this function)
inserter.c:263: error: âNEBCALLBACK_HOST_STATUS_DATAâ undeclared (first use in this function)
inserter.c:268: warning: incompatible implicit declaration of built-in function âsprintfâ
inserter.c:269: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c:269: error: âTRUEâ undeclared (first use in this function)
inserter.c:271: warning: value computed is not used
inserter.c:274: error: ânebstruct_service_status_dataâ undeclared (first use in this function)
inserter.c:274: error: syntax error before âdsâ
inserter.c:277: error: âNEBCALLBACK_SERVICE_STATUS_DATAâ undeclared (first use in this function)
inserter.c:292: warning: value computed is not used
inserter.c:294: error: âhostgroupmemberâ undeclared (first use in this function)
inserter.c:294: error: âhgmâ undeclared (first use in this function)
inserter.c:347: warning: value computed is not used
inserter.c:349: error: âservicegroupmemberâ undeclared (first use in this function)
inserter.c:349: error: âsgmâ undeclared (first use in this function)
inserter.c:431: error: âNEBCALLBACK_HOST_CHECK_DATAâ undeclared (first use in this function)
inserter.c:432: error: âNEBCALLBACK_SERVICE_CHECK_DATAâ undeclared (first use in this function)
inserter.c: In function âprocessCheckâ:
inserter.c:447: error: âNEBCALLBACK_HOST_CHECK_DATAâ undeclared (first use in this function)
inserter.c:449: error: ânebstruct_host_check_dataâ undeclared (first use in this function)
inserter.c:449: error: âhost_check_dataâ undeclared (first use in this function)
inserter.c:449: error: syntax error before â)â token
inserter.c:451: error: âNEBTYPE_HOSTCHECK_PROCESSEDâ undeclared (first use in this function)
inserter.c:466: error: âNEBCALLBACK_SERVICE_CHECK_DATAâ undeclared (first use in this function)
inserter.c:468: error: ânebstruct_service_check_dataâ undeclared (first use in this function)
inserter.c:468: error: âservice_check_dataâ undeclared (first use in this function)
inserter.c:468: error: syntax error before â)â token
inserter.c:470: error: âNEBTYPE_SERVICECHECK_PROCESSEDâ undeclared (first use in this function)
inserter.c:489: warning: incompatible implicit declaration of built-in function âsprintfâ
inserter.c:490: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c:490: error: âTRUEâ undeclared (first use in this function)
inserter.c: In function âprocessStatusâ:
inserter.c:502: error: âserviceâ undeclared (first use in this function)
inserter.c:502: error: âtmp_serviceâ undeclared (first use in this function)
inserter.c:503: error: âhostâ undeclared (first use in this function)
inserter.c:503: error: âtmp_hostâ undeclared (first use in this function)
inserter.c:509: error: âTRUEâ undeclared (first use in this function)
inserter.c:516: error: âNEBCALLBACK_HOST_STATUS_DATAâ undeclared (first use in this function)
inserter.c:518: error: ânebstruct_host_status_dataâ undeclared (first use in this function)
inserter.c:518: error: âhost_status_dataâ undeclared (first use in this function)
inserter.c:518: error: syntax error before â)â token
inserter.c:519: error: syntax error before â)â token
inserter.c:711: error: âNEBCALLBACK_SERVICE_STATUS_DATAâ undeclared (first use in this function)
inserter.c:713: error: ânebstruct_service_status_dataâ undeclared (first use in this function)
inserter.c:713: error: âservice_status_dataâ undeclared (first use in this function)
inserter.c:713: error: syntax error before â)â token
inserter.c:714: error: syntax error before â)â token
inserter.c:889: warning: incompatible implicit declaration of built-in function âsprintfâ
inserter.c:890: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c: In function âquerifyâ:
inserter.c:913: warning: implicit declaration of function âmysql_real_escape_stringâ
inserter.c: In function âappendâ:
inserter.c:947: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c:947: error: âTRUEâ undeclared (first use in this function)
inserter.c: In function âerr_outâ:
inserter.c:980: error: âNSLOG_INFO_MESSAGEâ undeclared (first use in this function)
inserter.c:980: error: âTRUEâ undeclared (first use in this function)
inserter.c: In function âsql_dumpâ:
inserter.c:1009: error: âTRUEâ undeclared (first use in this function)
inserter.c:1068: warning: implicit declaration of function âmysql_real_queryâ
inserter.c:1069: warning: implicit declaration of function âprintfâ
inserter.c:1069: warning: incompatible implicit declaration of built-in function âprintfâ
inserter.c:1069: warning: implicit declaration of function âmysql_errnoâ
inserter.c:1069: warning: format â%sâ expects type âchar *â, but argument 2 has type âintâ
make: *** [all] Error 1 |
|
| Back to top |
|
 |
divagater Cacti User
Joined: 17 Nov 2004 Posts: 191 Location: Chapel Hill, NC.
|
Posted: Tue Nov 15, 2005 9:40 am Post subject: |
|
|
You are missing the Nagios source and the MySQL development libraries. The inserter module needs to be compiled against the Nagios source.
1st, as per the README please verify that you have Nagios 2.0b4 & MySQL 4.1.x. You will also need the MySQL development package for the version of MySQL you are running. The development package has some required libraries.
NOTE: I just noticed Nagios 2.0b5 is out. As per the change log there were not any changes to the event broker API so this release will probably work fine but I have not tested it yet.
If you installed Nagios from a distribution CD then you prbably ony installed a pre-compiled Nagios. Who ever compiled Nagios may or may not have enabled the event broker which is needed.
The simplest way to get this going will be to download the Nagios src from nagios.org and compile it with --enable-event-broker and any other options you need for your environment.
Download Nagios 2.0b4 or greater
cd /path/to/nagios-src/
./configure --help
./configure --enable-event-broker --with-command-group=<some group>
make
make install <option>
(I like the default install paths but make sure they are what you want. You need the command group option if you want to issue Nagios commands from within NPC. you will create a group and add your httpd user to the group)
Once Nagios is built and installed, copy the inserter.c and makefile from npc/neb/ to /path/to/nagios-src/module. cd to /path/to/nagios-src/module and run make. Now copy inserter.o to /path/to/nagios/modules and set the config options in nagios.cfg that are outlined in the README.
Hope this helps,
Billy |
|
| Back to top |
|
 |
Nemea
Joined: 15 Nov 2005 Posts: 13
|
Posted: Tue Nov 15, 2005 11:02 am Post subject: |
|
|
Thank you for this Addon!
I tried to install it.
I use:
Debian 1:3.3.5-12
Linux version 2.6.8-2-686
gcc version 3.3.5
Cacti 0.8.6g
Nagios-CVS 14.11.2005
npc-0.1.1a
cacti-plugin-arch Version 0.6 (files-0.8.6g)
MySQL:
mysql Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i386)
libmysqlclient10-dev <---- wrong? 14-dev won't install
innodb:
mysql> SHOW VARIABLES LIKE '%innodb%';
+---------------------------------+------------------------+
| Variable_name | Value |
+---------------------------------+------------------------+
| have_innodb | YES |
| innodb_additional_mem_pool_size | 1048576 |
| innodb_autoextend_increment | 8 |
| innodb_buffer_pool_size | 8388608 |
| innodb_data_file_path | ibdata1:10M:autoextend |
inserter compile: ok, no error
nagios is installed in /opt/nagios
I found no directory called modules, so I created it
/opt/nagios/modules
inserter.o copied to this directory
nagios.cfg:
broker_module=/opt/nagios/modules/inserter.o
NPC:
On Cacti-Webinterface there is a new tab NPC after I enabled access to view under settings
The dropdownlist for "Nagios Host Mapping" only lists "none".
And how do I call the setup for creating the new mysql-dbs?
/cacti/plugins/npc/setup.php
only a white screen
I found this in /var/log/messages:
Nov 14 15:16:57 srvcacti nagios: Caught SIGTERM, shutting down...
Nov 14 15:16:57 srvcacti nagios: Successfully shutdown... (PID=2158)
Nov 14 15:17:10 srvcacti nagios: Nagios 2.0b4 starting... (PID=5153)
Nov 14 15:17:10 srvcacti nagios: LOG VERSION: 2.0
Nov 14 15:17:10 srvcacti nagios: Error: Could not load module '/opt/nagios/modules/inserter.o' -> /opt/nagios/modules/inserter.o: undefined symbol: compress
Any ideas? |
|
| Back to top |
|
 |
divagater Cacti User
Joined: 17 Nov 2004 Posts: 191 Location: Chapel Hill, NC.
|
Posted: Tue Nov 15, 2005 3:52 pm Post subject: |
|
|
/cacti/plugins/npc/setup.php is run by default anytime you load a Cacti page. Thats part of the plugin architecture so setup.php never needs to be run manually.
I am not entirely certain what the issue is but I suspect its a zlib issue. try modifying the makefile as follows. The make file is simple and consists of only 2 lines.
Change
gcc -g -O2 -Wall -o inserter.o inserter.c -shared -I../include -I/usr/include/mysql -lmysqlclient -fPIC
to
gcc -g -O2 -Wall -o inserter.o inserter.c -shared -I../include -I/usr/include/mysql -lmysqlclient -lz -fPIC
The only difference is that I added -lz after -lmysqlclient. I googled for this solution. Hope it helps you out. |
|
| Back to top |
|
 |
Nemea
Joined: 15 Nov 2005 Posts: 13
|
Posted: Wed Nov 16, 2005 2:58 am Post subject: |
|
|
Great!
I think it fixed my problem:
Nov 16 08:56:33 srvcacti nagios: Nagios 2.0b4 starting... (PID=2521)
Nov 16 08:56:33 srvcacti nagios: LOG VERSION: 2.0
Nov 16 08:56:33 srvcacti nagios: initializing nagios-db mysql inserter...
Nov 16 08:56:33 srvcacti nagios: nagios-db: inserter locked into db
Nov 16 08:56:33 srvcacti nagios: Event broker module '/opt/nagios/modules/inserter.o' initialized successfully.
Nov 16 08:56:33 srvcacti nagios: Finished daemonizing... (New PID=2523)
Nov 16 08:56:33 srvcacti nagios: Table 'cacti.npc_hostgroup_membership' doesn't exist 1146 delete from npc_hostgroup_membership
Nov 16 08:56:33 srvcacti nagios: nagios-db: inserter unloading...
Nov 16 08:56:33 srvcacti nagios: nagios-db: inserter unloading...
Nov 16 08:56:33 srvcacti nagios: nagios-db: inserter unloading...
Nov 16 08:56:33 srvcacti nagios: nagios-db: inserter unloading...
Nov 16 08:56:33 srvcacti nagios: nagios-db: inserter unloading...
Nov 16 08:56:33 srvcacti nagios: nagios-db: configured 5 hosts
Thx ... now I will visit Linux World in Frankfurt  |
|
| Back to top |
|
 |
divagater Cacti User
Joined: 17 Nov 2004 Posts: 191 Location: Chapel Hill, NC.
|
Posted: Wed Nov 16, 2005 6:20 am Post subject: |
|
|
I am glad that fix got the inserter module loaded. I don't like this line though:
Table 'cacti.npc_hostgroup_membership' doesn't exist 1146 delete from npc_hostgroup_membership
The first time you loaded NPC all the tables should have been created. Verify that you have the following tables in your cacti database:
npc_comment
npc_config_params
npc_flapping_host
npc_flapping_service
npc_host
npc_host_check
npc_host_history
npc_hostgroup
npc_hostgroup_membership
npc_service
npc_service_check
npc_service_history
npc_servicegroup
npc_servicegroup_membership
If you do not have all the tables listed its possible there is an sql error in setup.php.
If there is a table missing find the CREATE TABLE <table name> sql in setup.php. The full sql will be everything between the double quotes. Copy the sql and run it manually against the cacti db using your favorite mysql client. Send me any errors.
Cheers,
Billy |
|
| Back to top |
|
 |
Nemea
Joined: 15 Nov 2005 Posts: 13
|
Posted: Thu Nov 17, 2005 4:29 am Post subject: |
|
|
OK, all tables are missing in my cacti-db
I tried it manually:
mysql>CREATE TABLE `npc_config_params` (`opt` char(64) NOT NULL default '',`value` int(11) default NULL,PRIMARY KEY (`opt`),UNIQUE KEY `opt` (`opt`)) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Nagios configuration data';
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1 COMMENT='Nagios configuration data'' at
mysql>CREATE TABLE `npc_flapping_host` (`id` int(11) NOT NULL default '0',PRIMARY KEY (`id`),CONSTRAINT `flapping_host_ibfk_1` FOREIGN KEY (`id`) REFERENCES `npc_host` (`id`) ON DELETE CASCADE) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Flapping hosts';
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'DEFAULT CHARSET=latin1 COMMENT='Flapping hosts'' at line 1
Something with innodb?
Or that I don't use MySQL 4.1 (mysql Ver 12.22 Distrib 4.0.24, for pc-linux-gnu (i386) ) |
|
| Back to top |
|
 |
tomkul
Joined: 16 Nov 2005 Posts: 10
|
Posted: Thu Nov 17, 2005 4:43 am Post subject: Problem with innoDB |
|
|
I have this error:
Warning: mysql_query(): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=l in /var/www/html/cacti/plugins/npc/setup.php on line 394
rgrds
tko |
|
| Back to top |
|
 |
divagater Cacti User
Joined: 17 Nov 2004 Posts: 191 Location: Chapel Hill, NC.
|
Posted: Thu Nov 17, 2005 8:54 am Post subject: |
|
|
| I suspect for both of you its an issue with your MySQL version. I have only tested on MySQL 4.1 and there is some stuff I am doing with the inserter module that I believe requires 4.1 or greater. So as per the README MySQL 4.1.x is required. |
|
| Back to top |
|
 |
tomkul
Joined: 16 Nov 2005 Posts: 10
|
Posted: Thu Nov 17, 2005 9:53 am Post subject: |
|
|
It seems to be a syntax error in this file
Removing ';' from ';,' does help
Seems that this error is not disastrous and my problem is rather how to stop displaying mysql-client errors/warnings on cacti pages after upgrading from 3.23 to 4.1.13
rgrds
tko |
|
| Back to top |
|
 |
|