[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.
Action disabled: register

Welcome to the Slackware Documentation Project

Nagios

Installation

  1. Create the nagios group and user:
         groupadd -g 213 nagios
         useradd -u 213 -d /dev/null -s /bin/false -g nagios nagios
  2. Add the 'apache' user to the 'nagios' group, so that it can write to the /var/nagios/rw directory ('a' option prevents the user to be removed from other groups, the member of which he is already):
         usermod -aG nagios apache
  3. Install the Nagios::Plugin Perl module:
         cpan -i Monitoring::Plugin
  4. Use sbopkg or install the individual packages using scripts from SlackBuilds.org, and install the following in this order:
    • RRDTool
    • nagios (currently, the package which can be built using a SlackBuilds.org script is nagios-4.0.8)
    • nagios-plugin package
    • nagios-graphing
  5. Edit /etc/nagios/nagios.conf and turn off the logging:
    CHANGE:
         use_syslog=1
    TO:
         use_syslog=0
    CHANGE:
         log_notifications=1
    TO:
         log_notification=0
  6. Edit /etc/httpd/extra/nagios.conf, after the <Directory “/var/www/htdocs/nagios”> line:
    CHANGE:
         Options None
    TO:
         Options FollowSymLinks
  7. Edit /etc/httpd/http.conf
    COMMENT:
          LoadModule mpm_event_module lib64/httpd/modules/mod_mpm_event.so
    UNCOMMENT:
         #LoadModule mpm_prefork_module lib64/httpd/modules/mod_mpm_prefork.so
    UNCOMMENT:
         #LoadModule cgi_module lib64/httpd/modules/mod_cgi.so
         
         (or #LoadModule cgi_module lib/httpd/modules/mod_cgi.so on 32bit installs)
         
    CHANGE:
         <IfModule dir_module>
         DirectoryIndex index.html
         </IfModule>
    TO:
         <IfModule dir_module>
         DirectoryIndex index.html index.php
         </IfModule>
    CHANGE:
         # Uncomment the following line to enable PHP:
         #
         # Include /etc/httpd/mod_php.conf
    TO:
         # Uncomment the following line to enable PHP:
         #
         Include /etc/httpd/mod_php.conf
         
    RIGHT AFTER:
         DocumentRoot /srv/httpd/htdocs
    ADD:
         Include /etc/httpd/extra/nagios.conf
  8. Make sure apache starts at boot and start/restart apache:
         chmod 755 /etc/rc.d/rc.httpd
         /etc/rc.d/rc.httpd restart
  9. Set the password for nagiosadmin :
         htpasswd -c /etc/nagios/htpasswd.users nagiosadmin
  10. (Not sure if this is necessary but, leaving it in until I can test)
    Make sure nagios starts at boot and start/restart nagios:
    1. Edit /etc/rc.d/rc.local and add:
      # Start nagios:
      if [ -x /etc/rc.d/rc.nagios ]; then
        echo "Starting nagios..."
        /etc/rc.d/rc.nagios start
      fi
    2. Edit /etc/rc.d/rc.local_shutdown (you may have to create this file if it does not exist, and make it executable) and add:
      # Stop nagios:
      if [ -x /etc/rc.d/rc.nagios ]; then
        echo "Stopping nagios..."
        /etc/rc.d/rc.nagios stop
      fi
  11. Make rc.nagios executable:
    # chmod 755 /etc/rc.d/rc.nagios
  12. Start nagios:
    # /etc/rc.d/rc.nagios restart

Check That Nagios Is Running

Goto http://YOUR_MACHINE/nagios/ and you should see Nagios working.

Add Users

  1. Run the htpasswd command for each user:
         htpasswd -c /etc/nagios/htpasswd.users bob
         htpasswd -c /etc/nagios/htpasswd.users sue
  2. Edit /etc/nagios/cgi.cfg and add the user(s) too:
    authorized_for_all_services=nagiosadmin,bob,sue
    authorized_for_all_hosts=nagiosadmin,bob,sue

    (or add “*” to allow all authenticated users)

TROUBLESHOOTING

ERROR: When browsing to the nagios webpage (as nagiosadmin) you get “You do not have permission”

HINT: Check /var/log/httpd/error_log to see what is failing.

FIX1: Make sure that /srv/www/htdocs/nagios is “drwxrwxr-x nagios nagios”

FIX2: In /etc/http/httpd.conf make sure:

  UNCOMMENT: Include /etc/httpd/mod_php.conf
  Do the "<IfModule dir_module>" change listed above.
  

—–

ERROR: When clicking on Nagios cgi pages, they are downloaded and not executed.

FIX: Make sure the “LoadModule cgi_module” is uncommented as described above.


ERROR: “stderr: execvp(/usr/libexec/monitoring-plugins/check_ping, …) failed. errno is 2: No such file or directory”

FIX: vi /etc/nagios/resource.cfg

   CHANGE: $USER1$=/usr/libexec/monitoring-plugins
   TO: $USER1$=/usr/libexec/nagios

ERROR: I've done the FIXes above and it's still not working…

FIX: Didya restart httpd and/or nagios?

   /etc/rc.d/rc.httpd restart
   /etc/rc.d/rc.nagios restart

Install NRPE On A Target Machine

ON THE TARGET MACHINE (as root):

groupadd -g 213 nagios
useradd -u 213 -d /dev/null -s /bin/false -g nagios nagios

Install nagios via SBo (Required by Nagios-plugins)

Install nagios-plugins via SBo (Required by NRPE)

Install nrpe via SBo

Ignore the xinetd stuff, you have to run NRPE as a daemon on Slackware (unless you want to go through the headache of replacing inetd with xinetd)

So, start NRPE in Daemon mode:

chmod 755 /etc/rc.d/rc.nrpe
/etc/rc.d/rc.nrpe start

Test NRPE

/usr/libexec/nagios/check_nrpe -H localhost
NRPE v2.15

/usr/libexec/nagios/check_nrpe -H localhost -c check_users
USERS OK - 1 users currently logged in |users=1;5;10;0

Add your Nagios server's IP into the allowed_hosts list:

vi /etc/nagios/nrpe.cfg
  allowed_hosts=127.0.0.1,192.168.1.77  (WHERE: 192.168.1.77 is the IP of your Nagios server)
chown nagios:nagios /etc/nagios/nrpe.cfg

ON THE NAGIOS SERVER MACHINE:

Add the client machine into one of the .cfg files

I did this:

vi /etc/nagios/nagios.cfg

ADD:

# Definitions for monitoring a linux machine
cfg_file=/etc/nagios/objects/linux.cfg
chown nagios:nagios /etc/nagios/nagios.cfg
vi /etc/nagios/objects/linux.cfg_file
  #########################################################
  # Linux  configuration file
  #########################################################
  
  define host {
  	  use	  	  linux-server
  	  host_name	  MyLinuxBox
  	  alias	  	  LinuxBox1
  	  address	  192.168.1.110
  	  register	  1
  	  }
  define service{
  	  host_name			MyLinuxBox
  	  service_description		PING
  	  check_command			check_ping!100.0,20%!500.0,60%
  	  max_check_attempts		2
  	  check_interval		2
  	  retry_interval		2
  	  check_period			24x7
  	  check_freshness		1
  	  contact_groups		admins
  	  notification_interval		2
  	  notification_period		24x7
  	  notifications_enabled		1
  	  register			1
  	  }
  
  #########################################################
  # END OF FILE
  #########################################################
chown nagios:nagios /etc/nagios/objects/linux.cfg_file

Restart Nagios

  /etc/rc.d/rc.nagios restart

Sources

 es:howtos:software:nagios ()