Installation und Konfiguration von Icinga (Überwachungslösung) unter CentOS
Icinga ist ein Open-Source-Überwachungssystem für Unternehmen, das Netzwerke und alle denkbaren Netzwerkressourcen überwacht, den Benutzer über Fehler und Wiederherstellungen benachrichtigt und Leistungsdaten für die Berichterstattung generiert. Icinga ist skalierbar und erweiterbar und kann komplexe, große Umgebungen über verteilte Standorte hinweg überwachen.
Ich gehe mit der Icinga-Basisinstallation und dies ist ähnlich wie bei Nagios und dieses Dokument kann auch für die Nagios-Installation herangezogen werden. Viele Dokumente sind im Internet verfügbar und sie werden mit dem Nagios-Benutzer installiert, aber für mein Setup habe ich den Standardbenutzer verwendet, der bereits im System (Daemon) vorhanden ist, und ich werde ihn auch nicht stattdessen auf dem Standardpfad installieren Ich werde mich auf /opt beziehen, da ich es sehr praktisch finde. Die Benutzeroberfläche von Icinga ist viel besser als Nagios.
In diesem Tutorial verwende ich drei Server:
192.168.1.20 – Icinga-Überwachungsserver (centos5)
192.168.1.30 – zu überwachender Win 2008
192.168.1.40 – zu überwachender Ubuntu 10.10-Server
Anforderungen
Hinweis:Stellen Sie sicher, dass Entwicklungstools und Entwicklungsbibliotheken während der Installation installiert wurden:
- GCC-Compiler
- C/C++-Entwicklungsbibliotheken
- GD-Entwicklungsbibliotheken
Pakete benötigt
1. Xampp für Linux:
[[email protected]~]# mkdir /software
[[email protected]~]# cd /software
[[email protected] software]# wget http://sourceforge.net/projects/xampp /files/XAMPP%20Linux/1.7.3/xampp-linux-1.7.3.tar.gz/download
2. Icinga-Kern:
[[email protected] software]# wget http://sourceforge.net/projects/icinga/files/icinga/1.2.1/icinga-1.2.1.tar.gz/download
Installation von Icinga
1. Entpacken Sie das xampp-Paket:
[[E-Mail-geschützte] Software]# tar -zxvf xampp-linux-1.7.3.tar.gz
[[E-Mail-geschützte] Software]# mv lampp/ /opt/
Das Xampp-Paket ist ein sehr ordentlich kompiliertes Paket, und das Extrahieren desselben ist mehr als genug. Weitere Einzelheiten finden Sie auf der xampp-Seite:
http://www.apachefriends.org/en/xampp.html
2. Entpacken Sie das Icinga-Paket:
[[E-Mail-geschützte] Software]# tar -zxvf icinga-1.2.1.tar.gz
[[E-Mail-geschützte] Software]# cd icinga-1.2.1
[[E-Mail-geschützt] icinga-1.2 .1]# ./configure --prefix=/opt/icinga --with-icinga-user=daemon --with-icinga-group=daemon --with-httpd-conf=/opt/lampp/etc
Hinweis:Bitte stellen Sie sicher, dass Sie beim Kompilieren keine Fehler erhalten. Wenn Sie Fehler erhalten, vergewissern Sie sich, dass die erforderlichen Pakete installiert sind.
[[email protected] icinga-1.2.1]# make all
[[email protected] icinga-1.2.1]# make install
[[email protected] icinga-1.2.1]# make install -config
[[email protected] icinga-1.2.1]# make install-commandmode
[[email protected] icinga-1.2.1]# make install-webconf
3. Jetzt müssen Sie Apache mit Icinga konfigurieren:
[[email protected] icinga-1.2.1]# cd /opt/lampp/etc/
[[email protected]]# vim httpd.conf
4. Fügen Sie die folgende Zeile hinzu:
Include etc/icinga.conf
5. Passwort für die Anmeldung festlegen:
[[email protected] /]# cd /opt/lampp/bin/
[[email protected] bin]# ./htpasswd –c /opt/icinga/etc/htpasswd.users icingaadmin
Neues Passwort:
Neues Passwort erneut eingeben:
Passwort für Benutzer icingaadmin hinzufügen
6. Apache starten:
[[email protected]]# cd /opt/lampp/
[[email protected]]# ./lamp startapache
XAMPP:Apache mit SSL (und PHP5) starten...
XAMPP:Fehler 1! Konnte Apache nicht starten!
XAMPP:Diagnose wird gestartet...
XAMPP:Passen Sie die httpd.conf an Ihr System an.
XAMPP:Nächster Versuch...
XAMPP:Wird gestartet Apache mit SSL (und PHP5)...
7. Prüfen Sie, ob Apache funktioniert:
http://192.168.1.20
8. Jetzt müssen wir Icinga starten, aber vorher müssen wir überprüfen, ob Icinga richtig kompiliert wurde und alle Konfigurationen gesetzt sind:
[[email protected]]# cd /opt/icinga/
9. Bevor wir Icinga konfigurieren, werden wir anfangen und sehen, ob wir die Seite bekommen:
[[email protected]]# /opt/icinga/bin/icinga –v /opt/icinga/etc/icinga.cfg
Warnungen insgesamt:0
Fehler insgesamt:0
Alles sieht gut aus - Beim Preflight-Check wurden keine ernsthaften Probleme festgestellt.
10. Starten Sie jetzt Icinga, da wir keine Fehler erhalten:
[[email protected]]# /opt/icinga/bin/icinga -d /opt/icinga/etc/icinga.cfg
[[email protected]]# ps -ef|grep icinga
Dämon 6961 1 0 19:03 ? 00:00:00 /opt/icinga/bin/icinga -d /opt/icinga/etc/icinga.cfg
root 6998 2929 0 19:05 pts/1 00:00:00 grep icinga
[[email protected]]# chmod 777 /opt/
[[email protected]]# chmod 777 /opt/icinga/
[[email protected]]# chmod 777 /opt/icinga/var/
[[email protected]]# chmod 777 /opt/icinga/var/rw/
[[email protected]]# chmod 777 /opt/icinga/var/rw/icinga.cmd
11. Melden Sie sich an, um zu prüfen, ob die Icinga-Website geöffnet wird:
Installation von Nagios-Plugins zur Überwachung
1. Laden Sie das Nagios-Plugin herunter und kompilieren Sie es:
[[E-Mail-geschützte] Software]# wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[[E-Mail-geschützte] Software]# tar -zxvf nagios -plugins-1.4.15.tar.gz
[[E-Mail-geschützte] Software]# cd nagios-plugins-1.4.15
[[E-Mail-geschützt] nagios-plugins-1.4.15]# ./ configure --prefix=/opt/icinga/ --with-nagios-user=daemon --with-nagios-group=daemon
[[email protected] nagios-plugins-1.4.15]# make &&make install
Anpassung von Icinga
Mail-Benachrichtigungskonfiguration:
[[email protected] /]# cd /opt/icinga/etc/
[[email protected]]# vi objects/contacts.cfg
define contact{ contact_nameicingaadmin ; Short name of user use generic-contact ; Inherit default values from generic-contact template (defined above) alias Icinga Admin ; Full name of user [email protected] ; <<***** CHANGE THIS TO YOUR EMAIL ADDRESS ****** }
Ändern Sie die E-Mail-Adresse von [email protected] in Ihre E-Mail-Adresse [email protected].
Stellen Sie sicher, dass Sie Smarthost auf dem CentOS-Server konfiguriert haben.
So konfigurieren Sie Smarthost in CentOS
[[email protected]]# rpm -qa|grepsendmail
sendmail-8.13.8-2.el5
[[email protected]]# vim /etc/mail/sendmail.mc
Deaktivieren Sie die folgende Zeile:
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl dnl#DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
Aktivieren Sie die folgende Zeile:
dnl define(`SMART_HOST', `smtp.your.provider')dnl
Geben Sie hier Ihre SMTP-Adresse ein - in diesem Fall sunil.cc:
define(`SMART_HOST', `smtp.sunil.cc')dnl
[[email protected] /]#m4 /etc/mail/sendmail.mc> /etc/mail/sendmail.cf
[[email protected] /]#/etc/init.d/sendmail restart
Installation des Nagios-Plugins und nrpe in Ubuntu 192.168.1.40
1. Damit Ubuntu vom Icinga-Server überwacht werden kann, müssen wir das Nagios-Plugin und nrpe:
installieren[email protected]:~# apt-get install gcc*
[email protected]:~#wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz
[email protected]:~# tar -zxvf nagios-plugins-1.4.15.tar.gz
2. Nagios-Plugin kompilieren:
[E-Mail-geschützt]:~# cd nagios-plugins-1.4.15/
[E-Mail-geschützt]:~/nagios-plugins-1.4.15# ./configure --with-nagios-user=daemon --with -nagios-group=daemon
[email protected]:~/nagios-plugins-1.4.15# make &&make install
[email protected]:~/nagios-plugins-1.4.15# chown - R-Daemon:Daemon /usr/local/nagios/
Installation von NRPE (Nagios Remote Plugin Executor)
1. NRPE herunterladen und kompilieren:
[email protected]:~# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
[E-Mail-geschützt]:~# tar -zxvf nrpe-2.12.tar.gz
[E-Mail-geschützt]:~# cd nrpe-2.12/
[E-Mail-geschützt]:~/nrpe-2.12# apt- get install openssllibssl-dev
[email protected]:~# make all
[email protected]:~# make install-plugin
[email protected]:~# make install-daemon
[email protected]:~# make install-daemon-config
[email protected]:~/nrpe-2.12# apt-get installxinetd
[email protected]:~# make install-xinetd
2. Wir müssen nrpe als xinetd-Dienst konfigurieren:
[email protected]:~/nrpe-2.12# vim /etc/xinetd.d/nrpe
servicenrpe { flags = REUSE socket_type = stream port = 5666 wait = no user = daemon group = daemon server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 }
3. Bearbeiten Sie, indem Sie die Icinga-Server-IP in only_from:
hinzufügenservicenrpe { flags = REUSE socket_type = stream port = 5666 wait = no user = daemon group = daemon server = /usr/local/nagios/bin/nrpe server_args = -c /usr/local/nagios/etc/nrpe.cfg --inetd log_on_failure += USERID disable = no only_from = 127.0.0.1 192.168.1.20 }
4. Jetzt müssen wir es als Dienst ausführen, indem wir die folgende Zeile hinzufügen:
[email protected]:~# vim /etc/services
nrpe 5666/tcp
5. Starten Sie den xinetd-Dienst neu:
[email protected]:~# /etc/init.d/xinetd restart
6. Prüfen Sie, ob nrpe gestartet wurde:
[email protected]:~# netstat -a |grep nrpe
So prüfen Sie, ob Ubuntu mit dem Icinga-Server kommunizieren kann:
[email protected]:~# /usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12
Sie sollten diese Ausgabe erhalten können.
Clientseitige Konfiguration Windows 2008 (192.168.1.30)
1. Download von http://nsclient.org/nscp/downloads.
2. Folgen Sie einfach den Screenshots:
3. Stellen Sie sicher, dass nsclient++ als Dienst ausgeführt wird:
Konfiguration von Ubuntu und Win 2008 auf der Serverseite
1.
[[email protected] /]# cd /opt/icinga/etc/objects/
2. Zuerst konfigurieren wir den Ubuntu-Client.
3. Erstellen Sie dafür eine cfg-Datei mit folgendem Inhalt, Sie können auch auf localhost.cfg verweisen, die sich im selben Verzeichnis befindet:
[[email protected] ~]# vim /opt/icinga/etc/objects/ubuntu10.cfg
define host{ uselinux-server host_name ubuntu10 alias ubuntu10 address 192.168.1.40 } define service{ use local-service host_name ubuntu10 service_description PING check_command check_ping!100.0,20%!500.0,60% } define service{ use local-service host_name ubuntu10 service_description Root check_command check_local_disk!20%!10%!/ } define service{ use local-service host_name ubuntu10 service_description Current Users check_command check_local_users!20!50 } define service{ use local-service host_name ubuntu10 service_description Total Processes check_command check_local_procs!250!400!RSZDT } define service{ use local-service host_name ubuntu10 service_description Current Load check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0 } define service{ use local-service host_name ubuntu10 service_description Swap Usage check_command check_local_swap!20!10 } define service{ use local-service host_name ubuntu10 service_description SSH check_commandcheck_ssh notifications_enabled 0 }
Zur Gruppierung von Servern können Sie diese Zeile an ubuntu10.cfg anhängen:
definehostgroup{ hostgroup_namelinux-servers ; The name of the hostgroup alias Linux Servers ; Long name of the group memberslocalhost, ubuntu10 ; Comma separated list of hosts that belong to this group }
4. Für Windows 2008 beziehen wir uns auf windows.cfg:
define host{ use windows-server ; Inherit default values from a template host_namewin2008 ; The name we're giving to this host alias My Windows Server ; A longer name associated with the host address 192.168.1.30 ; IP address of the host } define service{ use generic-service host_name win2008 service_descriptionNSClient++ Version check_commandcheck_nt!CLIENTVERSION } define service{ use generic-service host_name win2008 service_description Uptime check_commandcheck_nt!UPTIME } define service{ use generic-service host_name win2008 service_description CPU Load check_commandcheck_nt!CPULOAD!-l 5,80,90 } define service{ use generic-service host_name win2008 service_description Memory Usage check_commandcheck_nt!MEMUSE!-w 80 -c 90 } define service{ use generic-service host_name win2008 service_description C:\ Drive Space check_commandcheck_nt!USEDDISKSPACE!-l c -w 80 -c 90 }
5. Wir müssen das Passwort festlegen, um uns beim Windows-Server anzumelden:
[[email protected] etc]# vim objects/commands.cfg
# 'check_nt' command definition define command{ command_namecheck_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$ }
6. Fügen Sie Ihr Passwort hinzu:
define command{ command_namecheck_nt command_line $USER1$/check_nt -H $HOSTADDRESS$ -p 12489 –s [email protected] -v $ARG1$ $ARG2$ }
[[email protected] objects]# chown -R daemon:daemon /opt/icinga/
[[email protected]]# vimicinga.cfg
cfg_file=/opt/icinga/etc/objects/ubuntu10.cfg cfg_file=/opt/icinga/etc/objects/win2008.cfg
Fügen Sie die beiden Zeilen hinzu.
Beenden und starten Sie Icinga.