Icinga2: Unterschied zwischen den Versionen

Aus d0b
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: „Weil es zuviel geworden ist jetzt mit eigener Seite.“)
 
Zeile 1: Zeile 1:
 
Weil es zuviel geworden ist jetzt mit eigener Seite.
 
Weil es zuviel geworden ist jetzt mit eigener Seite.
 +
 +
== Installation ==
 +
=== Icinga2 ===
 +
Unter Debian 7.6.0 (standardtools + ssh)
 +
<pre>
 +
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
 +
</pre>
 +
Schlüssel herunterladen und Pakete als vertrauenswürdig einstufen:
 +
<pre>
 +
wget -O - http://debmon.org/debmon/repo.key 2>/dev/null | apt-key add - 
 +
</pre>
 +
 +
<pre>
 +
aptitude update && aptitude -y upgrade
 +
aptitude install icinga2
 +
service icinga2 start
 +
</pre>
 +
=== ClassicUI ===
 +
<pre>
 +
aptitude install apache2 icinga2-classicui
 +
</pre>
 +
=== IDO MYSQL ===
 +
<pre>
 +
aptitude install mysql-server-5.5 icinga2-ido-mysql
 +
 +
</pre>
 +
 +
 +
<pre>
 +
cat /etc/icinga2/constants.conf
 +
</pre>
 +
 +
Logging aktivieren
 +
<pre>
 +
vim /etc/icinga2/classicui/cgi.cfg   
 +
 +
Zeile: 40
 +
alt: use_logging=0   
 +
neu: use_logging=1       
 +
</pre>
 +
 +
== Icinga-web ==
 +
Wer folgenden Fehler beim Aufruf von "http://localhost/icinga-web" bekommt:
 +
<pre>
 +
Request Failed!
 +
The server encountered an error:
 +
Internal Exception, check your logs!
 +
</pre>
 +
Sollte seine Java-Konsole im Browser anmachen und da loslegen mit der Suche, im log steht leider nichts brauchbares.
 +
 +
=== Manubulon Plugins ===
 +
<pre>
 +
aptitude install nagios-snmp-plugins
 +
 +
ls -la /usr/lib/nagios/plugins              // Skripte
 +
ls -la /etc/nagios-plugins/config/          // Config
 +
</pre>
 +
 +
=== Monitoring Plugins ===
 +
<pre>
 +
aptitude-install nagios-plugins
 +
 +
ls -la /usr/lib/nagios/plugins              // Skripte
 +
ls -la /etc/nagios-plugins/config/          // Config
 +
</pre>
 +
 +
=== Optionale Plugins ===
 +
Ja wie geht das? Ganz einfach:
 +
<pre>
 +
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/"
 +
</pre>
 +
==== check_hp_procurve ====
 +
Da ich auch Pro Curve Switche überwache, konnte ich auf das [http://sourceforge.net/projects/jued-ni-plugins/files/check_hp_procurve.pl/ check_hp_procurve.pl] von [http://www.jued.de/ Juergen Edelbluth] zurückgreifen.
 +
 +
<pre>
 +
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
 +
</pre>
 +
 +
==== check_qnap ====
 +
Das [https://github.com/trendchiller/icinga-checks/blob/master/check_qnap.sh Check_Qnap] Plugin soll mir helfen Daten für Icinga zu sammeln, gut wenn man nicht selber alle OID suchen muss =)
 +
<pre>
 +
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
 +
</pre>
 +
 +
Plugin testen
 +
<pre>
 +
# /opt/icinga-plugins/
 +
 +
./check_qnamp.sh <HOST-IP> <snmp-community> <check>
 +
./check_qnamp.sh 192.168.23.23 public cpu
 +
</pre>
 +
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
 +
<pre>
 +
# /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"
 +
}
 +
</pre>
 +
 +
Host anlegen
 +
<pre>
 +
# /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"
 +
}
 +
</pre>
 +
 +
Service anlegen (mehrfach)
 +
<pre>
 +
# /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"
 +
}
 +
</pre>
 +
 +
==== check mk ====
 +
* Check MK [http://exchange.check-mk.org/index.php?option=com_remository&Itemid=53&func=select&id=2 check_mk]
 +
 +
=== [http://pnp4nagios.org PNP4Nagios] ===
 +
Damit Icinga2 schöne Graphen bereitstellt, habe ich mich für das Addon PNP4Nagios im [http://docs.pnp4nagios.org/de/pnp-0.6/modes#bulk_mode_mit_npcd Bulk Mode mit NPCD] entschieden.
 +
 +
Vorraussetzung: Icinga2 + classicui (Auf Debian )
 +
 +
Notwendige Pakete abholen
 +
<pre>
 +
aptitude update && aptitude install pnp4nagios rrdcached
 +
</pre>
 +
 +
Icinga2 ist bereits  für PNP4Nagios ausgestattet, deswegen legen wir nur einen Schalter um.
 +
<pre>
 +
icinga2-enable-feature perfdata
 +
</pre>
 +
 +
Npcd User + Spool Directoy Pfad anpassen
 +
<pre>
 +
vim /etc/pnp4nagios/npcd.cfg
 +
 +
Zeile:  79
 +
alt: perfdata_spool_dir = /var/spool/pnp4nagios/npcd/
 +
neu: perfdata_spool_dir = /var/spool/icinga2/perfdata/
 +
</pre>
 +
 +
Npcd aktivieren & starten
 +
<pre>
 +
vim /etc/default/npcd
 +
 +
alt: Run="no"
 +
neu: Run="yes"
 +
 +
/etc/init.d/npcd start
 +
</pre>
 +
 +
RRD OPTS setzen:
 +
<pre>
 +
vim /etc/pnp4nagios/process_perfdata.cfg
 +
 +
Zeile: 86
 +
alt:  RRD_DAEMON_OPTS =
 +
neu:  RRD_DAEMON_OPTS = unix:/var/run/rrdcached.sock
 +
</pre>
 +
 +
Apache Config anpassen
 +
<pre>
 +
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
 +
</pre>
 +
 +
Icinga2 Templates anpassen
 +
<pre>
 +
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"
 +
</pre>
 +
 +
Alles neu starten
 +
<pre>
 +
service rrdcached restart
 +
service npcd restart
 +
service icinga2 restart
 +
</pre>
 +
 +
=== Troubleshooting ===
 +
Grundsätzlich erstmal einen Blick in die logs werfen, auch bei den [http://docs.pnp4nagios.org/de/pnp-0.6/start docs] vorbeischauen hilft oftmals.
 +
<pre>
 +
vim /etc/pnp4nagios/process_perfdata.cfg        // LOG Level auf 2 = debug setzen
 +
tail /var/log/pnp4nagios/perfdata.log
 +
</pre>
 +
 +
Es gibt eine [http://verify.pnp4nagios.org/ Verify Script], was man auch mal laufen lassen kann:
 +
<pre>
 +
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
 +
</pre>

Version vom 22. Oktober 2014, 00:45 Uhr

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

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

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