How to install Nagiosgraph on CentOS 7

Share on Social Media

Learn how to install Nagiosgraph on CentOS 7 with this comprehensive guide. Enhance your Nagios monitoring by adding advanced graphing capabilities. #centlinux #linux #nagios

Problem Statement

Nagios Core has limited native support for graphical representation of metrics. Nagiosgraph is very useful plugin, that extends the functionality of Nagios Core and display historical graphs. Nagiosgraph parses output and performance data collected by Nagios and stores that data in RRD (Round Robin Data) files. Nagiosgraph creates graphs and generates HTML pages with graphical reports from the data.

How to install Nagiosgraph on CentOS 7
How to install Nagiosgraph on CentOS 7

What is Nagiosgraph?

Nagiosgraph is an add-on for Nagios that provides graphing capabilities for the performance data collected by Nagios. It processes the performance data output from Nagios checks and plugins, stores it, and generates graphs to help visualize trends and metrics over time. Here are some key features of Nagiosgraph:

  1. Performance Data Collection: Captures performance data from Nagios plugins and checks.
  2. Data Storage: Stores the collected data in a format that can be used for generating graphs.
  3. Graphing: Automatically generates graphs from the stored performance data, making it easy to visualize and analyze trends.
  4. Integration with Nagios: Seamlessly integrates with Nagios, providing a web interface to view the graphs alongside Nagios alerts and status information.
  5. Customization: Allows users to customize the appearance and configuration of graphs to suit their monitoring needs.

Nagiosgraph enhances the functionality of Nagios by providing a powerful tool for visualizing performance data, helping administrators to better understand system performance, identify issues, and optimize their infrastructure.

Recommended Training: Nagios | Ultimate IT monitoring guide with EyesOfNetwork from Tech Academy

4667764 b00b 3

Read Also: How to install Nagios on CentOS 8

Nagios Server Specification

In this article, we will install Nagiosgraph plugin to our preconfigured Nagios Core server on CentOS 7.

We have configured a CentOS 7 virtual machine with Nagios Core 4.2 Server and following specifications.

  • CPU – 2.4 Ghz (2 Core)
  • Memory – 1 GB
  • Storage – 20 GB
  • Swap – 2 GB
  • Operating System – CentOS 7.6
  • Nagios Version – Nagios Core 4.4

Install Nagiosgraph on CentOS 7

Access the Nagios Core’s web interface to check its status.

Nagios Server - Current Network Status
Nagios Server – Current Network Status

Install the prerequisite packages using yum command.

# yum -y install perl-GD php-gd rrdtool-perl rrdtool-php rrdtool perl-CGI perl-Time-HiRes

Create a directory and download Nagiosgraph 1.5.2 (the latest version at the time of this writeup) from Nagiosgraph – Official Page.

# mkdir -p /soft/nagios
# cd /soft/nagios
# wget https://sourceforge.net/projects/nagiosgraph/files/nagiosgraph/1.5.2/nagiosgraph-1.5.2.tar.gz

Extract the contents of Nagiosgraph tarball.

# cd /soft/nagios
# tar xvf nagiosgraph-1.5.2.tar.gz

Check prerequisites and install Nagiosgraph.

# cd /soft/nagios/nagiosgraph-1.5.2
# ./install.pl --check-prereq
# ./install.pl --layout overlay --prefix /usr/local/nagios

During the installation, set the paths as follows:
(If you define the paths correctly, then most of the configurations will be automatically make by Nagiosgraph installer)

Destination directory (prefix)? [/usr/local/nagios]
Location of configuration files (etc-dir)? [/usr/local/nagios/etc/nagiosgraph]
Location of executables? [/usr/local/nagios/libexec]
Location of CGI scripts? [/usr/local/nagios/sbin]
Location of documentation (doc-dir)? [/usr/local/nagios/docs/nagiosgraph]
Location of examples? [/usr/local/nagios/docs/nagiosgraph/examples]
Location of CSS and JavaScript files? [/usr/local/nagios/share]
Location of utilities? [/usr/local/nagios/docs/nagiosgraph/util]
Location of state files (var-dir)? [/var/nagios] /usr/local/nagios/var
Location of RRD files? [/usr/local/nagios/var/rrd]
Location of log files (log-dir)? [/var/nagios] /usr/local/nagios/var
Path of log file? [/usr/local/nagios/var/nagiosgraph.log]
Path of CGI log file? [/usr/local/nagios/var/nagiosgraph-cgi.log]
Base URL? [/nagios]
URL of CGI scripts? [/nagios/cgi-bin]
URL of CSS file? [/nagios/nagiosgraph.css]
URL of JavaScript file? [/nagios/nagiosgraph.js]
URL of Nagios CGI scripts? [/nagios/cgi-bin]
Path of Nagios performance data file? [/tmp/perfdata.log] /usr/local/nagios/var/service-perfdata.log
username or userid of Nagios user? [nagios]
username or userid of web server user? [apache]

Edit /usr/local/nagios/etc/nagios.cfg file and comment (#) all the performance related parameters.

# vi /usr/local/nagios/etc/nagios.cfg

Set following parameters, to enable Nagios to keep history of performance data.

# process nagios performance data using nagiosgraph
process_performance_data=1
service_perfdata_file=/usr/local/nagios/var/service-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-for-nagiosgraph

Edit /usr/local/nagios/etc/objects/commands.cfg.

# vi /usr/local/nagios/etc/objects/commands.cfg

Add following command to to enable storage of performance metrics.

define command {
  command_name process-service-perfdata-for-nagiosgraph
  command_line /usr/local/nagios/libexec/insert.pl
}

Check Nagios configurations now.

# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

Nagios Core 4.2.0
Copyright (c) 2009-present Nagios Core Development Team and Community Contributors
Copyright (c) 1999-2009 Ethan Galstad
Last Modified: 08-01-2016
License: GPL

Website: https://www.nagios.org
Reading configuration data...
   Read main config file okay...
   Read object config files okay...

Running pre-flight check on configuration data...

Checking objects...
        Checked 8 services.
        Checked 1 hosts.
        Checked 1 host groups.
        Checked 0 service groups.
        Checked 1 contacts.
        Checked 1 contact groups.
        Checked 25 commands.
        Checked 5 time periods.
        Checked 0 host escalations.
        Checked 0 service escalations.
Checking for circular paths...
        Checked 1 hosts
        Checked 0 service dependencies
        Checked 0 host dependencies
        Checked 5 timeperiods
Checking global event handlers...
Checking obsessive compulsive processor commands...
Checking misc settings...

Total Warnings: 0
Total Errors:   0

Things look okay - No serious problems were detected during the pre-flight check

Restart nagios and httpd services to reload new configurations.

# systemctl restart nagios
# systemctl restart httpd

Open URL  http://192.168.229.129/nagios/cgi-bin/showconfig.cgi in the browser, to see the configurations. (Replace the IP address in the URL, with your CentOS 7 Server IP address).

Display Nagios Server Configurations
Display Nagios Server Configurations

You can see that Nagiosgraph has been integrated with Nagios Core.

Edit /usr/local/nagios/etc/objects/templates.cfg file.

# vi /usr/local/nagios/etc/objects/templates.cfg

Add following code to define a service graphed-service to be used to display Nagiosgraph graphs.

define service {
name graphed-service
action_url /nagios/cgi-bin/show.cgi?host=$HOSTNAME&service=$SERVICEDESC
onMouseOver='showGraphPopup(this)'
onMouseOut='hideGraphPopup()'
rel='/nagiosgraph/cgi-bin/showgraph.cgi?host=$HOSTNAME&service=$SERVICEDESC&period=week&rrdopts=-w+450+-j
register 0
}

And append graphed-service in use parameter of the services, for which you want to draw graphs. We have added it to some services, one service syntax is given below for reference.

define service{
        use                             local-service,graphed-service    ; Name of service template to use
        host_name                       localhost
        service_description             HTTP
        check_command                   check_http
        notifications_enabled           0
        }

Restart nagios service.

# systemctl restart nagios

Now, open the Nagios web interface in browser, you may see the small graph icon infront of the services for which you have enabled graphs.

Nagios Server after integrating Nagiosgraph
Nagios Server after integrating Nagiosgraph

Click on the graph icon to open graphs’ page.

Nagiosgraph Graph
Nagiosgraph Graph

Adjust the parameters on the top right side panel to draw graphs according to your needs.

We have successfully installed Nagiosgraph plugin for Nagios Core on CentOS 7. PNP4Nagios is another addon to display graphs in Nagios Core server. You might like our next article Install PNP4Nagios on Nagios Core over CentOS 7.

Final Thoughts

Installing Nagiosgraph on CentOS 7 adds advanced graphing capabilities to your Nagios monitoring setup, allowing you to visualize performance data effectively. By following this guide, you can set up Nagiosgraph smoothly and enhance your system monitoring.

If you need further assistance or prefer professional help with the installation, I’m here to assist! Check out my Fiverr service for expert support in setting up Nagiosgraph and other server-related tasks.

Looking for something?

34 responses to “How to install Nagiosgraph on CentOS 7”

  1. Unknown Avatar

    Hi! I'm stuck on the step:
    "Execute http://192.168.229.129/nagios/cgi-bin/showconfig.cgi in the browser to see, the configurations."

    The next message appear on webrowser:
    "Forbidden

    You don't have permission to access /nagiosgraph/cgi-bin/showconfig.cgi on this server."

    can someone help me please?

  2. Ahmer M Avatar

    Please ensure the Directory /nagiosgraph/cgi-bin/ has necessary permissions in Apache Configurations. Also check the OS Level File/Folder permissions and SELinux fcontexts.

  3. Unknown Avatar

    Hello,
    I'm getting the following error.

    No data in rrd directory /usr/local/nagios/var/rrd

  4. Unknown Avatar

    Hello,
    I'm getting the following error, after install while to trying access a graph.

  5. Ahmer M Avatar

    Pls verify that the Parameter process_performance_data=1 is defined only once in the nagios.cfg.

  6. Unknown Avatar

    process_performance_data=1 is only defined once in nagios.cfg. The original is comments out. I can send you a copy of my nagios.cfg

  7. Unknown Avatar

    I got it working, had to do a reinstall.

  8. Unknown Avatar

    great Sir, Thanks alot for your blog.

  9. Unknown Avatar

    i monitor the remote linux host with using nrpe. The graph is empty for cpu only. The graph show for memory. how should i do? Thanks Sir

  10. Ahmer M Avatar

    Hi naylinn, You should recheck the above steps. May be you have missed something.

  11. Anonymous Avatar
    Anonymous

    I receive the error graphed-service not define? How can I solve it? Thanks sir!

  12. Ahmer M Avatar

    Thanks for highlighting the problem. I have updated the Post and added another step to define the graphed-service therein. Hopefully, it will resolve the error.

  13. chethan Avatar

    Hi..
    I'm getting the following error [nagios::config Fail]

    OS — Centos 6.9Final

  14. Ahmer M Avatar

    Hi Chethan. Above error is not enough to troubleshoot the issue. Please give the complete error log.

  15. chethan Avatar

    How to Reinstall nagiosgraph…

  16. Alex Avatar

    Ahmer,

    Thanks for your documentation, it prooved to be rather helpful.

    Thanks very much.

    Alex

  17. Ahmer M Avatar

    Hi Alex,

    I am glad that, this post is useful for you.
    Thanks for appreciation.

  18. Pedro Avatar

    hello, i have followed all the steps but when i open nagios i don't have any graphic icon in front of each service. any idea? i have installed nagios 4.4.2

  19. Pedro Avatar

    Hi Ahmer, thanks for your job! i have installed nagios 4.4.2. I followed all steps above but when i open my web-interface, i'm not able to see any graphic icon in front of each service. Do you have any idea?
    Thanks

  20. Anonymous Avatar
    Anonymous

    I am a little bit confused here (new to Nagios)

    Edit /usr/local/nagios/etc/objects/templates.cfg file.
    vi /usr/local/nagios/etc/objects/templates.cfg
    Define a service graphed-service to be used to display Nagiosgraph graphs.

    What do you enter in templates.cfg ?

  21. Ahmer M Avatar

    Hi,
    Thanks for highlighting this drafting mistake.
    Post has been corrected accordingly.

  22. Mohd Faheem Avatar

    hello sir i am getting miss configuration error on browser and getting below mentioned error in logs and please suggest me :

    [Wed Dec 26 13:11:22.928377 2018] [cgi:error] [pid 9112] [client 192.168.43.17:63406] AH01215: Can't locate RRDs.pm in @INC (@INC contains: /usr/local/nagios/etc/nagiosgraph /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/nagios/etc/nagiosgraph/ngshared.pm line 30., referer: http://192.168.43.10/nagios/cgi-bin/status.cgi?host=all
    [Wed Dec 26 13:11:22.928454 2018] [cgi:error] [pid 9112] [client 192.168.43.17:63406] AH01215: BEGIN failed–compilation aborted at /usr/local/nagios/etc/nagiosgraph/ngshared.pm line 30., referer: http://192.168.43.10/nagios/cgi-bin/status.cgi?host=all
    [Wed Dec 26 13:11:22.928484 2018] [cgi:error] [pid 9112] [client 192.168.43.17:63406] AH01215: Compilation failed in require at /usr/local/nagios/sbin/show.cgi line 12., referer: http://192.168.43.10/nagios/cgi-bin/status.cgi?host=all
    [Wed Dec 26 13:11:22.928515 2018] [cgi:error] [pid 9112] [client 192.168.43.17:63406] AH01215: BEGIN failed–compilation aborted at /usr/local/nagios/sbin/show.cgi line 12., referer: http://192.168.43.10/nagios/cgi-bin/status.cgi?host=all
    [Wed Dec 26 13:11:22.929567 2018] [cgi:error] [pid 9112] [client 192.168.43.17:63406] End of script output before headers: show.cgi, referer: http://192.168.43.10/nagios/cgi-bin/status.cgi?host=all

  23. Ahmer M Avatar

    You might have missed prerequisites. Please install rrdtool & rrdtool-perl packages and check again.

  24. laggoni Avatar

    hi Sir,
    I am getting a Nagios graph errors.
    JavaScript is disabled.
    nagiosgraph.js is not installed or wrong version.

    for that no data populating on graphs.

    Thanks
    Laggoni

  25. Ahmer M Avatar

    Please check:
    Is JavaScript enabled in Browser?
    Is nagiosgraph.js exist at /usr/local/nagios/share?

  26. Anonymous Avatar
    Anonymous

    I installed the plugin successfully but I got that error in Apache log
    critical Cannot write to '/usr/local/nagios/var/nagiosgraph-cgi.log', using STDERR instead

    Here is the permissions for the nagiosgraph-cgi.log
    -rw-rw-r–. 1 nagios nagios 0 Apr 14 05:47 /usr/local/nagios/var/nagiosgraph-cgi.log

  27. Ahmer M Avatar

    Hi,
    To resolve this error, you need to grant write permissions on this file to 'apache' user.

  28. Shahid Iqbal Avatar

    No data in rrd directory /usr/local/nagiosgraph/var/rrd

    getting this error, kindly tell how to resolve it … i try to reinstall and update rrdtools

  29. Ahmer M Avatar

    This happens when process_performance_data parameter is defined more than once in nagios.cfg file.

    Please rectify and check again.

  30. Oracle SOD Avatar

    Im getting an odd error:

    I am getting a Nagios graph errors.
    JavaScript is disabled.
    nagiosgraph.js is not installed or wrong version.

    However, graphs are loading and populating, and i can zoom/touch/use them….

    I see these errors in the inspect console of Chrome

    show.cgi:254 Uncaught SyntaxError: Unexpected identifier
    nagiosgraph.js:1152 Uncaught ReferenceError: menudata is not defined
    at cfgHostMenu (nagiosgraph.js:1152)
    at cfgMenus (nagiosgraph.js:1130)
    at show.cgi?host=AP1&service=PING:412

    Any ideas ?

  31. Ahmer M Avatar

    Remove all existing performance data in rrd files and then restart nagios service and check.

    You can contact us at our Facebook page, if the problem persists.

  32. Anonymous Avatar
    Anonymous

    Not Found
    The requested URL was not found on this server.

    This error getting. How to reslove please suggest me

  33. Ahmer M Avatar

    There must be a configuration error. Please have a look at log files to find the cause of this error.

Leave a Reply