Nagios

From PostgreSQL_wiki
Jump to: navigation, search

Monitoring met Nagios

Webhuis opzet

Nagios is qua opzet vrij complex en de configuratie is foutgevoelig. Nagios bepaalt het functioneren aan de hand van een groot aantal verschillende, op verschillende plaatsen aanwezige, samenhangende configuratiebestanden. Er is een basis configuratie en in plaats van de eigen configuratie uit te breiden is het beter om de eigen configuratiebestanden onder te brengen in een aparte structuur.

Nagios kent een hierarchische organisatie en laat met de parameter cfg_dir toe dat Webhuis de configuratiebestanden voor de klant in verschillende directories vastlegt, telkens met de naam <domein>.cfg. Voor elke klant is zo'n configuratiebestand aanwezig in elk van de volgende directories:

  • hostgroups
  • hosts
  • scripts
  • services

Het primaire nagios configuratiebestand /etc/nagios/nagios.cfg refereert aan deze directories:

cfg_dir=/etc/nagios/hostgroups/
cfg_dir=/etc/nagios/hosts/
cfg_dir=/etc/nagios/scripts/
cfg_dir=/etc/nagios/services/

Op deze manier is de opzet van nagios flexibel en zijn wijzigingen gemakkelijk door te voeren.
Bijzondere commando's staan in de driectory /etc/nagios/commands/.

Uitzoeken, https mobile.cir

Hostgroups

#
# hostgroups.cfg - Config file for Nagios (www.nagios.org)
#

define hostgroup {
                hostgroup_name                 <domein>
                alias                          <domein>
                name                           <domein>
                contact_groups                 router-admins
                register                       1
                members                        dom0.<domein>,ips-vpn.<domein>,smb.<domein>,mail.<domein>
              }

Hosts

define host{
        use                     generic-host            ; Name of host template to use

        host_name               dom0.<domein>
        alias                   dom0.<domein>
        address                 10.x.y.z
        max_check_attempts      20
        notification_interval   60
        notification_period     24x7
        notification_options    d,u,r
        }
define host{
        use                     generic-host            ; Name of host template to use

        host_name               ips-vpn.<domein>
        alias                   ips-vpn.<domein>
        address                 a.b.c.d
        max_check_attempts      20
        notification_interval   60
        notification_period     24x7
        notification_options    d,u,r
        }
define host{
        use                     generic-host            ; Name of host template to use
        host_name               smb.<domein>
        alias                   smb.<domein>
        address                 10.x.y.11
        max_check_attempts      20
        notification_interval   60
        notification_period     24x7
        notification_options    d,u,r
        }
define host{
        use                     generic-host            ; Name of host template to use
        host_name               mail.<domein>
        alias                   mail.<domein>
        address                 10.x.y.12
        max_check_attempts      20
        notification_interval   60
        notification_period     24x7
        notification_options    d,u,r
        }

Services

define service {
                host_name                      dom0.<domein>,ips-vpn.<domein>,smb.<domein>,mail.<domein>
                service_description            ssh
                check_command                  check_ssh
                name                           ssh
                register                       1
                max_check_attempts             3
                normal_check_interval          5
                retry_check_interval           1
                active_checks_enabled          1
                check_period                   24x7
                notification_interval          120
                notification_period            24x7
                notification_options           w,u,c,r
                notifications_enabled          1
                contact_groups                 admins
                }
define service {
                host_name                      smb.<domein>
                service_description            check_ldap
                use                            generic-service
                check_command                  check_ldap!-H $hOSTADDRESS$ -b "cn=admin,dc=<domein>"
                name                           ldap
                register                       1
                max_check_attempts             3
                normal_check_interval          5
                retry_check_interval           1
                active_checks_enabled          1
                check_period                   24x7
                notification_interval          120
                notification_period            24x7
                notification_options           w,u,c,r
                notifications_enabled          1
                contact_groups                 admins
                }

Specificatie van checks

check_ldap

De check van ldap vindt plaats met behulp van de standaard nagios plugin:

define service {
                host_name                      <fdqn>
                service_description            check_ldap
                use                            generic-service
                check_command                  check_ldap!-H $hOSTADDRESS$ -b "cn=admin,dc=<fqdn>"
                name                           ldap
                register                       1
                max_check_attempts             3
                normal_check_interval          5
                retry_check_interval           1
                active_checks_enabled          1
                check_period                   24x7
                notification_interval          120
                notification_period            24x7
                notification_options           w,u,c,r
                notifications_enabled          1
                contact_groups                 admins
                }

check samba

In /etc/nagios/scripts staat het script check_samba.

#!/bin/sh
#
/usr/bin/smbclient -W ${2} -L ${1} -N >/dev/null
if test ${?} -eq 0
then
    echo "\\\\${1}\\\\${2} answered SAMBA request"
    exit 0
else
    echo "\\\\${1}\\\\${2} not responding to SAMBA requests"
    exit 1
fi

Aanroep van het script in services:

define service {
                host_name                      >fqdn>
                service_description            samba
                check_command                  check_samba! <fqdn> <nt-domain>
                name                           samba
                register                       1
                max_check_attempts             3
                normal_check_interval          5
                retry_check_interval           1
                active_checks_enabled          1
                check_period                   24x7
                notification_interval          120
                notification_period            24x7
                notification_options           w,u,c,r
                notifications_enabled          1
                contact_groups                 admins
                }

Terug naar: Webhuis Support Infrastructuur