Search Exchange
Search All Sites
Nagios Live Webinars
Let our experts show you how Nagios can help your organization.Login
Directory Tree
Nagex
Meet The New Nagios Core Services Platform
Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.
Monitoring Made Magically Better
- Nagios Core on Overdrive
- Powerful Monitoring Dashboards
- Time-Saving Configuration Wizards
- Open Source Powered Monitoring On Steroids
- And So Much More!
Nagex was my November 2011 project and is a modified version of the project called Nagdash.
GNU General Public License - Version 3, 29 June 2007
http://www.gnu.org
The prerequisites are a Linux box running MySQL, PHP, Nagios and a web server like Apache (LAMP). The only downside to Nagex is the fact that it relies on Nagios host and service state changes before it writes values to the MySQL database since it does not pull information directly from the CGI's. In order for data to populate, the event_handler needs to be executed which means hosts/services need to change states into soft or hard.
A quick and easy way is to disconnect the network connection on your Nagios box and wait 15 minutes or whatever interval you have your host/service checks configured. If you can't do this because you're working in a production environment, then you can pre-populate the database by manually inserting data into the tables. My event handler shell script will update the data if it already exists instead of inserting new entries. Here is a great MySQL reference site: http://www.pantz.org/software/mysql/mysqlcommands.html
Untar the project
tar -xzvf nagex.tar.gz
Create a web-accessible directory
mkdir /var/www/nagex
Directory placement
Put nagex.php and images folder in /var/www/nagex
Create the database
mysql -u root -ppassword
mysql> create database nagex;
Create the database user
mysql> use mysql;
mysql> grant all privileges on nagex.* to nagex@'localhost' identified by 'secret';
mysql> flush privileges;
mysql> exit
Import the SQL schema dump
mysql -u root -ppassword nagex < nagex_structure.sql
Copy the event handlers
mkdir /usr/local/nagios/libexec/eventhandlers
cp ~/nagex/update-nagex /usr/local/nagios/libexec/eventhandlers/
cp ~/nagex/update-nagex-host /usr/local/nagios/libexec/eventhandlers/
Set permissions
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
chmod 755 /usr/local/nagios/libexec/eventhandlers/*
Add commands into commands.cfg
define command{
command_name update-nagex
command_line /usr/local/nagios/libexec/eventhandlers/update-nagex $HOSTNAME$ "$HOSTALIAS$" "$SERVICEDISPLAYNAME$" $SERVICESTATE$ "$LONGDATETIME$"
}
# 'update-nagex-host' host update command deinition
define command{
command_name update-nagex-host
command_line /usr/local/nagios/libexec/eventhandlers/update-nagex-host $HOSTNAME$ "$HOSTALIAS$" $HOSTSTATE$ "$LONGDATETIME$"
}
Update service/host definitions with event_handler
define service{
host_name somehost
check_command check_nrpe!CheckServiceState -a service
service_description Some Service
max_check_attempts 4
event_handler update-nagex
}
define host{
use windows-server
host_name EXCH1
alias Exchange Server
address 100.10.111.222
event_handler update-nagex-host
}
Modify nagex.php
Line 18, enter the password you've use to create the mysql user.
$DBpassword = "secret";
Test out the web front end
http://yourhost/nagex/nagex.php
Having problems?
Contact me or leave a comment and i'll do my best to help you
Thanks,
Travis
GNU General Public License - Version 3, 29 June 2007
http://www.gnu.org
The prerequisites are a Linux box running MySQL, PHP, Nagios and a web server like Apache (LAMP). The only downside to Nagex is the fact that it relies on Nagios host and service state changes before it writes values to the MySQL database since it does not pull information directly from the CGI's. In order for data to populate, the event_handler needs to be executed which means hosts/services need to change states into soft or hard.
A quick and easy way is to disconnect the network connection on your Nagios box and wait 15 minutes or whatever interval you have your host/service checks configured. If you can't do this because you're working in a production environment, then you can pre-populate the database by manually inserting data into the tables. My event handler shell script will update the data if it already exists instead of inserting new entries. Here is a great MySQL reference site: http://www.pantz.org/software/mysql/mysqlcommands.html
Untar the project
tar -xzvf nagex.tar.gz
Create a web-accessible directory
mkdir /var/www/nagex
Directory placement
Put nagex.php and images folder in /var/www/nagex
Create the database
mysql -u root -ppassword
mysql> create database nagex;
Create the database user
mysql> use mysql;
mysql> grant all privileges on nagex.* to nagex@'localhost' identified by 'secret';
mysql> flush privileges;
mysql> exit
Import the SQL schema dump
mysql -u root -ppassword nagex < nagex_structure.sql
Copy the event handlers
mkdir /usr/local/nagios/libexec/eventhandlers
cp ~/nagex/update-nagex /usr/local/nagios/libexec/eventhandlers/
cp ~/nagex/update-nagex-host /usr/local/nagios/libexec/eventhandlers/
Set permissions
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
chmod 755 /usr/local/nagios/libexec/eventhandlers/*
Add commands into commands.cfg
define command{
command_name update-nagex
command_line /usr/local/nagios/libexec/eventhandlers/update-nagex $HOSTNAME$ "$HOSTALIAS$" "$SERVICEDISPLAYNAME$" $SERVICESTATE$ "$LONGDATETIME$"
}
# 'update-nagex-host' host update command deinition
define command{
command_name update-nagex-host
command_line /usr/local/nagios/libexec/eventhandlers/update-nagex-host $HOSTNAME$ "$HOSTALIAS$" $HOSTSTATE$ "$LONGDATETIME$"
}
Update service/host definitions with event_handler
define service{
host_name somehost
check_command check_nrpe!CheckServiceState -a service
service_description Some Service
max_check_attempts 4
event_handler update-nagex
}
define host{
use windows-server
host_name EXCH1
alias Exchange Server
address 100.10.111.222
event_handler update-nagex-host
}
Modify nagex.php
Line 18, enter the password you've use to create the mysql user.
$DBpassword = "secret";
Test out the web front end
http://yourhost/nagex/nagex.php
Having problems?
Contact me or leave a comment and i'll do my best to help you
Thanks,
Travis
Reviews (1)
I didn't think this would come out until Nagios Platinum edition :p thnx this worked great on my company intranet.