Skip to content

Instantly share code, notes, and snippets.

@bonyiii
Created March 28, 2011 06:26
Show Gist options
  • Save bonyiii/890073 to your computer and use it in GitHub Desktop.
Save bonyiii/890073 to your computer and use it in GitHub Desktop.
Nagios setup

/etc/portage/package.use fájl tartalma media-libs/gd jpeg png net-analyzer/nagios-core apache2 vim-syntax net-analyzer/nagios-plugins mysql postgres ldap nagios-ssh nagios-ping nagios-dns net-analyzer/nagios-nrpe -ssl net-analyzer/nagios-plugins -ssl dev-lang/php apache2 xml gd

Telepítés: emerge -gkav nagios apache nagios-nrpe

Kell csinálni egy htpasswd fájlt (és benne egy user -t a példában nagiosadmin)

htpasswd2 -c /etc/nagios/auth.users nagiosadmin

Az /etc/apache2/modules.d -ben létre kell hozni egy fájlt touch 99_nagios3.conf

az alábbi tartalommal. A location azért kell, hogy az auth rész mind a két Directory direktívára érvényes legyen.

\<IfDefine NAGIOS>

  <Location /nagios>
      AuthName "Nagios Access"
      AuthType Basic
      AuthUserFile /etc/nagios/auth.users
      Require valid-user
  </Location>

  ScriptAlias /nagios/cgi-bin/ /usr/lib/nagios/cgi-bin/
  <Directory "/usr/lib/nagios/cgi-bin/">
      AllowOverride AuthConfig
      Options ExecCgi
      Order allow,deny
      Allow from all
  </Directory>

  Alias /nagios /usr/share/nagios/htdocs
  <Directory "/usr/share/nagios/htdocs">
      AllowOverride AuthConfig
      Options Indexes FollowSymlinks
      Order allow,deny
      Allow from all
  </Directory>

\</IfDefine>

Egyébként ha csak a /usr/share/nagios/htdocs -ra adjuk meg akkor a cgi nem érzékeli és a következő hibaüzenetet kapjuk: It appears as though you do not have permission to view information for any of the hosts you requested...

If you believe this is an error, check the HTTP server authentication requirements for accessing this CGI and check the authorization options in your CGI configuration file.

A nagios fő config (/etc/nagios/nagios.cfg) fájljához hozzá kell adni minden új hostot amit definiálunk a hostoknak érdemes egy új könytárat léterhozni /etc/nagios/hosts és ide tenni a hostonkénti cfg fájlokat.

A /etc/nagios/cgi.cfg -ben be kell állítanunk admin user(eke)t, vagy legalábbis érdemes aki minden host -hoz, service -hez hozzáfér: authorized_for_system_information=nagiosadmin authorized_for_configuration_information=nagiosadmin authorized_for_system_commands=nagiosadmin authorized_for_all_services=nagiosadmin,user1,user2 authorized_for_all_hosts=nagiosadmin authorized_for_all_service_commands=nagiosadmin authorized_for_all_host_commands=nagiosadmin,user1,user2

A user -t fel kell venni az /etc/nagios/objects/contacts.cfg -ben. Az apache user névnek és a contact_name direktívának kell megegyeznie. Ha tehát felvettünk egy user -t a httpasswd2 -vel és szeretnénk kvázi szuper userként használni akkor egy ugyanolyan contact_name -el rendelkező contact -ot is fel kell vennünk.

define contact{
    contact_name                    nagiosadmin            ; Short name of user
    use                             generic-contact        ; Inherit default values from generic-contact template (defined above)
    alias                           Nagios Admin           ; Full name of user
    email                           nagios@localhost       ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ******
}

A különböző ellenőrzéseket a nagios-nrpe daemon végzi. Pl syslog-ng monitorozáshoz az nrpe.cfg -be a követekző sort kell beszúrni azokon a host -okon az /etc/nagios/nrpe.cfg -be ahol syslog-ng -t monitoroznk:

command[check_syslog]=/usr/lib/nagios/plugins/check_procs -c 2:2 -a syslog-ng

Az /etc/hosts/nagios.example.com fájlban megadott: define service{ use non-critical-service host_name nagios.example.com service_description Disk check_command check_nrpe!check_disk }

Ahhoz, hogy ez az ellenőrzés lefusson a nagios.example.com -on futo nrpe daemon /etc/nagios/nrpe.cfg -jében a következő sornak kell szerepelnie: command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 80 -c 90

Ez azt mondja, hogy figyelmeztessen ha a lemez 80% -ig megtelt és kritikus a helyzet ha 90% -ig megtelt. A -p kapcsolóval még megadhatjuk az partíció útvonalát amit ellenőrizni szeretnék pl: "-p /" ha root -ot vagy -x -el a device -t pl: "-x /dev/sda1"

Ha nem nrep -n keresztül akarom futtatani a tesztet, pl: azért mert a nagios szerveren van és nem akarok két daemon -t vagy távoli szerveren külsőleg elérhető szolgáltatás akarok tesztelni pl ssh. Akkor nem a parancs nevét adom meg. A ! felkiáltó jelekkel elválasztva pedig az argumentumokat adom át

Az /etc/hosts/nagios.example.com fájlban megadott: define service{ use non-critical-service host_name nagios.example.com service_description Disk check_command check_syslog!syslog-ng!2:2 }

Majd léterhozom a check_syslog parancsot az /etc/nagios/objects/commands.cfg -ben

Syslog

define command{ command_name check_syslog # A $USER1$ makró az /etc/nagios/resources -ben van definiálva és plugin path -re mutat. command_line $USER1$/check_procs -a $ARG1$ -C $ARG2$ }

Ahhoz, hogy parancsolni tudjunk a nagiosnak a webes felületről az apache -ot bele kell tennünk a nagios csoportba mert csak így tudja írni a /var/nagios/rw/nagios.cmd fájlt: usermod -G nagios apache

egyébként ezt a hibát kapjuk: Error: Could not open command file '/var/nagios/rw/nagios.cmd' for update!

The permissions on the external command file and/or directory may be incorrect. Read the FAQs on how to setup proper permissions.

An error occurred while attempting to commit your command for processing.

Some additonal info TroubleshootingWiki

Ha pl /etc/hosts/nagios.example.com fájlban szeretnék a hosttextinfo -ban define hostextinfo{ host_name nagios.example.com notes Nagios server vrml_image gentoo40.png statusmap_image gentoo40.gd2 }

megadni ikont amit a status map -en használhat a nagios a logó fájlok gentoo alatt itt találhatóak:

/usr/share/nagios/htdocs/images/logos/

Ha ilyen hibákkal találkozunk

router nagios # /usr/lib/nagios/plugins/check_http -H localhost
CRITICAL - Socket timeout after 10 seconds

router nagios # /usr/lib/nagios/plugins/check_nrpe -H remote.server.hu -c check_dhcpd -n
CHECK_NRPE: Socket timeout after 10 seconds.

router nagios # /usr/lib/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_dhcpd
CHECK_NRPE: Error - Could not complete SSL handshake.

akkor meg kell nézni, hogy a

equery u net-analyzer/nagios-nrpe

mit mond az ssl flag -ek ről. Egyeznie kell mind a szerveren mind a kliens gépen.

Fontos dolog még az is, hogy az allowed_hosts dierktívában megadott lista értékei között nem lehet space, ez jó:

allowed_hosts=192.168.0.1,192.168.0.2

ez nem

allowed_hosts=192.168.0.1, 192.168.0.2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment