Icinga2
Weil es zuviel geworden ist jetzt mit eigener Seite.
Inhaltsverzeichnis
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
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
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.
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_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
- Check MK check_mk
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 = neu: RRD_DAEMON_OPTS = unix:/var/run/rrdcached.sock
Apache Config anpassen
vim /etc/apache2/conf.d/pnp4nagios.conf alt: AuthName "Nagios Access" neu: AuthName "Icinga Access" 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 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 -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