Icinga2

Aus d0b
Zur Navigation springenZur Suche springen

Weil es zuviel geworden ist jetzt mit eigener Seite.

Installation

Icinga2

Unter Debian 7.6.0 (standardtools + ssh)

aptitude update && aptitude -y upgrade     // System auf den neuesten Stand bringen
aptitude install vim -y                    // Favorit Editor installieren

vim /etc/apt/sources.list                  // Sources öffnen und um folgende Zeilen erweitern

#Icinga 2 Packages
deb http://debmon.org/debmon debmon-wheezy main
deb-src http://debmon.org/debmon debmon-wheezy main

Schlüssel herunterladen und Pakete als vertrauenswürdig einstufen:

wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -   
aptitude update && aptitude -y upgrade
aptitude install icinga2
service icinga2 start

ClassicUI

Frontend, nach der installation erreichbar unter "http://localhost/icinga2-classicui"

aptitude install apache2 icinga2-classicui


IDO MYSQL

aptitude install mysql-server-5.5 icinga2-ido-mysql


cat /etc/icinga2/constants.conf

Logging aktivieren

vim /etc/icinga2/classicui/cgi.cfg    

Zeile: 40
alt: use_logging=0     
neu: use_logging=1        

Icinga-web

folgt...

Troubleshooting

Wer folgenden Fehler beim Aufruf von "http://localhost/icinga-web" bekommt:

Request Failed!
The server encountered an error:
Internal Exception, check your logs!

Sollte seine Java-Konsole im Browser anmachen und da loslegen mit der Suche, im log steht leider nichts brauchbares.

PNP4Nagios

Damit Icinga2 schöne Graphen bereitstellt, habe ich mich für das Addon PNP4Nagios im Bulk Mode mit NPCD entschieden.

Vorraussetzung: Icinga2 + classicui (Auf Debian )

Notwendige Pakete abholen

aptitude update && aptitude install pnp4nagios rrdcached

Icinga2 ist bereits für PNP4Nagios ausgestattet, deswegen legen wir nur einen Schalter um.

icinga2-enable-feature perfdata

Npcd User + Spool Directoy Pfad anpassen

vim /etc/pnp4nagios/npcd.cfg

Zeile:  79
alt:	perfdata_spool_dir = /var/spool/pnp4nagios/npcd/ 
neu: 	perfdata_spool_dir = /var/spool/icinga2/perfdata/

Npcd aktivieren & starten

vim /etc/default/npcd

alt:	Run="no"
neu:	Run="yes"

/etc/init.d/npcd start

RRD OPTS setzen:

vim /etc/pnp4nagios/process_perfdata.cfg

Zeile: 86
alt:   RRD_DAEMON_OPTS = unix:/tmp/rrdcached.sock
neu:   RRD_DAEMON_OPTS = unix:/var/run/rrdcached.sock

Apache Config anpassen

vim /etc/apache2/conf.d/pnp4nagios.conf
	
Zeile: 12
alt: AuthName "Nagios Access"
neu: AuthName "Icinga Access"

Zeile: 14
alt: AuthUserFile /usr/local/nagios/etc/htpasswd.users
neu: AuthUserFile /etc/icinga2/classicui/htpasswd.users

/etc/init.d/apache2 reload 

Icinga2 Templates anpassen

vim  /etc/icinga2/conf.d/templates.conf

# Am Anfang der Datei einfügen:
template Host "pnp-hst" {
   action_url = "/pnp4nagios/graph?host=$HOSTNAME$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=_HOST_"
}

template Service "pnp-svc" {
   action_url = "/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/popup?host=$HOSTNAME$&srv=$SERVICEDESC$"
}

# Bei "generic-host" wird hinzugefügt:
   import "pnp-hst"

# Bei "generic-service" wird hinzugefügt:
   import "pnp-svc"

Alles neu starten

service rrdcached restart
service npcd restart
service icinga2 restart

Troubleshooting

Grundsätzlich erstmal einen Blick in die logs werfen, auch bei den docs vorbeischauen hilft oftmals.

vim /etc/pnp4nagios/process_perfdata.cfg         // LOG Level auf 2 = debug setzen  (Zeile 65)
tail /var/log/pnp4nagios/perfdata.log

Es gibt eine Verify Script, was man auch mal laufen lassen kann:

wget http://verify.pnp4nagios.org/verify_pnp_config       

#verify_pnp_config -m|--mode=[sync|bulk|bulk+npcd|npcdmod]
#                  -c|--config=[path to nagios.cfg]
#                  -p|--pnpcfg=[path to PNP config dir]

perl verify_pnp_config -m bulk+npcd -c /etc/icinga2/icinga2.conf -p /etc/apache2/conf.d/pnp4nagios.conf

Plugins

Manubulon Plugins

aptitude install nagios-snmp-plugins

ls -la /usr/lib/nagios/plugins              // Skripte
ls -la /etc/nagios-plugins/config/          // Config

Monitoring Plugins

aptitude-install nagios-plugins

ls -la /usr/lib/nagios/plugins              // Skripte
ls -la /etc/nagios-plugins/config/          // Config

Optionale Plugins

Ja wie geht das? Ganz einfach:

mkdir /opt/icinga-plugins/          // Ein neues Verzeichnis für die Optionalen Plugins anlegen
vim /etc/icinga2/constants.conf     // Icinga bescheid sagen wo dieser Pfad ist, mit Kommentar ;-)

/*
 * Custom / Optionale Plugins
 */
const CustomPluginDir = "/opt/icinga-plugins/"

check_hp_procurve

Da ich auch Pro Curve Switche überwache, konnte ich auf das check_hp_procurve.pl von Juergen Edelbluth zurückgreifen.

cd /opt/icinga-plugins/
wget http://sourceforge.net/projects/jued-ni-plugins/files/check_hp_procurve.pl/check_hp_procurve.pl_0.0.2.5.tar.gz
tar -xvzf check_hp_procurve.pl_0.0.2.5.tar.gz
chmod +x check_hp_procurve.pl

check_snmp_int

cd /opt/icinga-custom-plugins
wget http://nagios.proy.org/check_snmp_int.pl

check_qnap

Das Check_Qnap Plugin soll mir helfen Daten für Icinga zu sammeln, gut wenn man nicht selber alle OID suchen muss =)

 
cd /opt/icinga-plugins/
wget http://constey.de/wp-content/uploads/2011/12/check_qnap.txt       // Plugin runterladen
aptitude install libnagios-plugin-perl libnet-snmp-per                 // Abhängigkeiten des Plugins installieren
mv check_qnap.txt check_qnap.sh                                        // Plugin umbenennen
chmod +x check_qnap.sh                                                 // Rechte erteilen

Plugin testen

# /opt/icinga-plugins/

./check_qnamp.sh <HOST-IP> <snmp-community> <check>
./check_qnamp.sh 192.168.23.23 public cpu

Ich habe nach dem Test, welcher weniger erfolgreich war, alle snmpget Aufrufe angepasst damit es läuft. Dafür habe ich das Parameter "-mAll" entfernt und weil ich gerade dabei war die Version von "-v1" auf "-v 2c" umgestellt. Danach war alles schön =)

Commands.conf erweitern

# /etc/icinga2/conf.d/commands.conf 

/* Custom Commands */

object CheckCommand "check_qnap" {
  import "plugin-check-command"

  command = [
	CustomPluginDir + "/check_qnap.sh", "$check_qnap_hostip$", "$check_qnap_snmpcom$", "$check_qnap_check$"
  ]

  vars.check_qnap_hostip = "$address$"
  vars.check_qnap_snmpcom = "public"
}

Host anlegen

# /etc/icinga2/conf.d/hosts/GPS001.conf

object Host "GPS001" {
  import "generic-host"
  address = "192.168.23.20"
  vars.os = "Linux"
  vars.sla = "24x7"
  max_check_attempts = 5
  check_interval = 1m
  retry_interval = 30s

  check_command = "hostalive"
}

Service anlegen (mehrfach)

# /etc/icinga2/conf.d/hosts/GPS001/check_qnap_cpu.conf 

object Service "cpu" {
  import "generic-service"

  host_name = "GPS001"
  check_command = "check_qnap"
  vars.check_qnap_check = "cpu"   // Hier den gewünschten Check eintragen {cpu|diskusage|fan|hdsmart|hdtemp|volumes|systemp|ramuse}     
  vars.sla = "24x7"
}

check mk

Updates & Troubleshooting

r2.1.1-1 auf r2.2.1-1

Beim Update von Icinga2 Version "r2.1.1-1" auf "r2.2.1-1", hat sich was an den Pfad getan, wer den Symlink auf die icinga2-classicui.conf nicht ändert bekommt diesen Fehler von aptitude geliefert:

ln: Symbolische Verknüpfung „/etc/apache2/conf.d/icinga2-classicui.conf“ konnte nicht angelegt werden: Die Datei existiert bereits
dpkg: Fehler beim Bearbeiten von icinga2-classicui (--configure):
 Unterprozess installiertes post-installation-Skript gab den Fehlerwert 1 zurück
Fehler traten auf beim Bearbeiten von:
 icinga2-classicui

Die Lösung steht im Fehler und ist schnell erledigt mit

rm /etc/apache2/conf.d/icinga2-classicui.conf
aptitude -f install