OS: CentOS 5.6 i386, CentOS 5.7 i386, CentOS 5.7 x86_64
Nagios Version: 3.3.1
NagiosGraph Version: 1.4.4
Hardware: Virtual Machine (VMware Server 2.0.0.2712)
About
NagiosGraph is an addon for Nagios that take the performace data from Nagios services and create graphs that you can use to see your network health.
Prerequisite
- Install Nagios server
- we need to install the folllowing prerequisites packages: rrdtool perl-GD
yum install rrdtool perl-GD perl-CGI rrdtool-perl perl-Time-HiRes -y
Install NagiosGraph
- Download NagiosGraph
cd /usr/local/src/nagios/ wget https://sourceforge.net/projects/nagiosgraph/files/nagiosgraph/1.4.4/nagiosgraph-1.4.4.tar.gz -O nagiosgraph.tar.gz
- Extract NagiosGraph
tar zxf nagiosgraph.tar.gz cd nagiosgraph-1.4.4
- Make directory for NagiosGraph in Nagios directory
mkdir /usr/local/nagios/nagiosgraph
- Copy etc NagiosGraph directory
cp -r etc /usr/local/nagios/nagiosgraph/
- Change NagiosGraph path in cgi and perl scripts
sed -i "s#/opt/nagiosgraph/etc#/usr/local/nagios/nagiosgraph/etc#g" cgi/*cgi sed -i "s#/opt/nagiosgraph/etc#/usr/local/nagios/nagiosgraph/etc#g" lib/insert.pl
- Copy cgi and perl scripts
cp lib/insert.pl /usr/local/nagios/libexec cp cgi/*.cgi /usr/local/nagios/sbin
- Copy CSS and JavaScript files
cp share/nagiosgraph.css /usr/local/nagios/share cp share/nagiosgraph.js /usr/local/nagios/share
- Edit nagiosgraph.conf and set the following:
vi /usr/local/nagios/nagiosgraph/etc/nagiosgraph.conf
... # Location of output from nagiosgraph data processing logfile = /usr/local/nagios/nagiosgraph/var/nagiosgraph.log # Location of output from nagiosgraph CGI scripts cgilogfile = /usr/local/nagios/nagiosgraph/var/nagiosgraph-cgi.log # Location of nagios performance data log file. perflog = /usr/local/nagios/var/perfdata.log # Directory in which to store RRD files rrddir = /usr/local/nagios/nagiosgraph/var/rrd # File containing regular expressions to identify service and perf data mapfile = /usr/local/nagios/nagiosgraph/etc/map # Nagiosgraph CGI URL. nagiosgraphcgiurl = /nagios/cgi-bin # Nagios CGI URL. If the Nagiosgraph CGI scripts are in a directory other # than the Nagios CGI directory, then specify the Nagios CGI URL here. #nagioscgiurl = /nagios/cgi-bin # JavaScript: URL to the nagiosgraph javascript file. javascript = /nagios/nagiosgraph.js # Stylesheet: URL to the nagiosgraph stylesheet. stylesheet = /nagios/nagiosgraph.css # File containing labels for services and data (optional) #labelfile = /etc/nagiosgraph/labels.conf # Location of showhost control file (optional) #hostdb = /etc/nagiosgraph/hostdb.conf # Location of showservice control file (optional) #servdb = /etc/nagiosgraph/servdb.conf # Location of showgroup control file (required for showgroup.cgi) groupdb = /usr/local/nagios/nagiosgraph/etc/groupdb.conf # File containing data sets that should be selected in queries (optional) #datasetdb = /etc/nagiosgraph/datasetdb.conf ...
- Create directories for NagiosGraph
mkdir /usr/local/nagios/nagiosgraph/var mkdir /usr/local/nagios/nagiosgraph/var/rrd
- In NagiosGraph SSI file, set the URL for nagiosgraph.js
vi share/nagiosgraph.ssi
... <script type="text/javascript" src="/nagios/nagiosgraph.js"></script>
- Copy NagiosGraph ssi file
cp share/nagiosgraph.ssi /usr/local/nagios/share/ssi/common-header.ssi chown nagios:nagios /usr/local/nagios/share/ssi/common-header.ssi
- Set NagiosGraph files permissions
chown -R nagios:nagios /usr/local/nagios/nagiosgraph chmod 755 /usr/local/nagios/nagiosgraph/var/rrd touch /usr/local/nagios/nagiosgraph/var/nagiosgraph.log chmod 664 /usr/local/nagios/nagiosgraph/var/nagiosgraph.log touch /usr/local/nagios/nagiosgraph/var/nagiosgraph-cgi.log chown apache /usr/local/nagios/nagiosgraph/var/nagiosgraph-cgi.log chmod 664 /usr/local/nagios/nagiosgraph/var/nagiosgraph-cgi.log
Nagios Configuration
- In Nagios configuration file edit the following (you can mark out all these items and add this block to the end of the file):
vi /usr/local/nagios/etc/nagios.cfg
... process_performance_data=1 service_perfdata_file=/usr/local/nagios/var/perfdata.log service_perfdata_file_template=$LASTSERVICECHECK$||$HOSTNAME$||$SERVICEDESC$||$SERVICEOUTPUT$||$SERVICEPERFDATA$ service_perfdata_file_mode=a service_perfdata_file_processing_interval=30 service_perfdata_file_processing_command=process-service-perfdata
- Copy NagiosGraph icon
cp -f share/graph.gif /usr/local/nagios/share/images/action.gif
- Edit Nagios sidebar by adding bullets under “Trends”:
vi /usr/local/nagios/share/side.php
... <li><a href="<?php echo $cfg["cgi_base_url"];?>/trends.cgi" target="<?php echo $link_target;?>">Trends</a> <ul> <li><a href="<?php echo $cfg["cgi_base_url"];?>/show.cgi" target="<?php echo $link_target;?>">Graphs</a></li> <li><a href="<?php echo $cfg["cgi_base_url"];?>/showhost.cgi" target="<?php echo $link_target;?>">Graphs by Host</a></li> <li><a href="<?php echo $cfg["cgi_base_url"];?>/showservice.cgi" target="<?php echo $link_target;?>">Graphs by Service</a></li> <li><a href="<?php echo $cfg["cgi_base_url"];?>/showgroup.cgi" target="<?php echo $link_target;?>">Graphs by Group</a></li> </ul> </li>
Nagios without Nconf (use this section if you are not using Nconf)
- In Nagios command file add the following command:
vi /usr/local/nagios/etc/objects/commands.cfg ... define command { command_name process-service-perfdata command_line /usr/local/nagios/libexec/insert.pl }
- In Nagios configuration add a template for graphed services
vi /usr/local/nagios/etc/objects/templates.cfg ... define service { name graphed-service action_url /nagios/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/nagios/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=week&rrdopts=-w+450+-j }
- Add the created graph template to all services that you can (has performance data) and want to create graphs
vi /usr/local/nagios/etc/objects/localhost.cfg ... define service { use local-service,graphed-service ... }
- Restart Nagios
/etc/init.d/nagios restart
Nagios with Nconf (use this section if you use Nconf to configure your Nagios system)
- In Nconf edit the Misccommand for processing performance data
Misccomands-> show process-service-perfdata-> edit "misc command line" = /usr/local/nagios/libexec/insert.pl -> submit
- InNconf edit the “action_url” attribute to NagiosGraph URL
Attributes-> show Select class-> service action_url-> edit "list of possible values" = /nagios/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/nagios/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=week&rrdopts=-w+450+-j -> submit
Attributes-> show Select Class-> service-template action_url-> edit "list of possible values" = /nagios/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/nagios/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=week&rrdopts=-w+450+-j -> submit
- Set action_url path on all service templates that you want to have graph for
Services templates-> show -> + Advanced select requested services Advanced-> "multi modify" "select the attribute which you want to modify" = "action URL" "New value to write" = /nagios/cgi-bin/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$' onMouseOver='showGraphPopup(this)' onMouseOut='hideGraphPopup()' rel='/nagios/cgi-bin/showgraph.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&period=week&rrdopts=-w+450+-j -> submit -> "Generate Nagios Config" -> Deploy
NagiosGraph installation completed.
Browse to https://nagios_server_ip_address/nagios/cgi-bin/show.cgi to see graphs from your nagios sysem.
Please visit https://nagiosgraph.sourceforge.net/ for information about NagiosGraph configuration and usage.