Raspberry PI als externen Centreon Poller verwenden

Hallo zusammen,

immer wieder mal wird ein Raspberry Pi benötigt um vor Ort ein Gerät zur Überwachung zu haben. Dabei sollte der Raspberry Pi in der bestehenden Überwachungslandschaft eingebaut und konfiguriert werden können.

In einem älteren Artikel habe ich darüber geschrieben, wie eine Installation mit Nagios zu realisieren wäre. Da aber die Centreon eigene Engine um einiges performanter ist, habe ich mich auch mal mit diesem Thema befasst.

Als Installationsumgebung kommt ein Raspberry Pi mit dem Raspian Image (Jessie Lite vom 21.11.2015) zum Einsatz. Dieser wurde mit dem Befehl sudo raspian-config an unsere Bedürfnisse angepasst.

Die aktuelle Versionen der Centreon Software erhaltet ihr unter folgendem Download-Link: https://download.centreon.com/
Eine ausführliche Anleitung zu jedem Modul gibt es unter folgender Seite: https://documentation.centreon.com/

1. Installation der Centreon Clib

Die Centreon Clib ist eine Bibliothek für einige Centreon-Module. Diese wird zum Beispiel von der Centreon-Engine vorausgesetzt.

apt-get install build-essential cmake
wget https://s3-eu-west-1.amazonaws.com/centreon-download/public/centreon-clib/centreon-clib-1.4.2.tar.gz
tar xzf centreon-clib-1.4.2.tar.gz
cd centreon-clib-1.4.2/build
cmake \
 -DWITH_TESTING=0 \
 -DWITH_PREFIX=/usr \
 -DWITH_PREFIX_LIB=/usr/lib \
 -DWITH_PREFIX_INC=/usr/include/centreon-clib \
 -DWITH_SHARED_LIB=1 \
 -DWITH_STATIC_LIB=0 \
 -DWITH_PKGCONFIG_DIR=/usr/lib/pkgconfig .
 
make
make install

2. Installation Centreon Connector

Der Centreon Connector optimiert bestimmte Abfragen um eine besser Performance zu erreichen. Hierzu gibt es zwei verschiedene (SSH und Perl), die wir beide installieren.
Anmerkung: Für die Installation des Centreon Connector wird die Clib benötigt.

wget https://s3-eu-west-1.amazonaws.com/centreon-download/public/centreon-connectors/centreon-connector-1.1.2.tar.gz
tar xzf centreon-connector-1.1.2.tar.gz

SSH Connector

apt-get install build-essential cmake libssh2-1-dev libgcrypt11-dev
cd centreon-connector-1.1.2/ssh/build
cmake \
 -DWITH_PREFIX=/usr \
 -DWITH_PREFIX_BINARY=/usr/lib/centreon-connector \
 -DWITH_TESTING=0 .
 
make 
make install

Perl Connector

apt-get install build-essential cmake libperl-dev
 
cd centreon-connector-1.1.2/perl/build
cmake \
 -DWITH_PREFIX=/usr \
 -DWITH_PREFIX_BINARY=/usr/lib/centreon-connector \
 -DWITH_TESTING=0 .
 
make 
make install

3. Centreon Engine

Die Centreon Engine ist eine auf Nagios basierende und weiterentwickelte Überwachungssoftware.

Für die Installation der Engine werden auf dem Raspberry Pi noch weitere Benutzer benötigt:

groupadd centreon-engine
 useradd -g centreon-engine -m -r -d /var/lib/centreon-engine centreon-engine
wget https://s3-eu-west-1.amazonaws.com/centreon-download/public/centreon-engine/centreon-engine-1.5.0.tar.gz
 tar xzf centreon-engine-1.5.0.tar.gz
 cd centreon-engine-1.5.0/build/
cmake \
 -DWITH_PREFIX=/usr \
 -DWITH_PREFIX_BIN=/usr/sbin \
 -DWITH_PREFIX_CONF=/etc/centreon-engine \
 -DWITH_PREFIX_LIB=/usr/lib/centreon-engine \
 -DWITH_USER=centreon-engine \
 -DWITH_GROUP=centreon-engine \
 -DWITH_LOGROTATE_SCRIPT=1 \
 -DWITH_VAR_DIR=/var/log/centreon-engine \
 -DWITH_RW_DIR=/var/lib/centreon-engine/rw \
 -DWITH_STARTUP_DIR=/etc/init.d \
 -DWITH_PKGCONFIG_SCRIPT=1 \
 -DWITH_PKGCONFIG_DIR=/usr/lib/pkgconfig \
 -DWITH_TESTING=0 \
 -DWITH_STARTUP_SCRIPT=sysv
make
make install
sudo update-rc.d centengine defaults

4. Centreon Broker

Der Centreon Broker sammelt alle Daten und sendet diese an unseren Verwaltungsserver.

groupadd centreon-broker
 useradd -g centreon-broker -m -r -d /var/lib/centreon-broker centreon-broker
apt-get install librrd-dev libqt4-dev libqt4-sql-mysql libgnutls28-dev
 wget https://s3-eu-west-1.amazonaws.com/centreon-download/public/centreon-broker/centreon-broker-2.11.0.tar.gz
 tar xzf centreon-broker-2.11.0.tar.gz
 cd centreon-broker-2.11.0/build/
 cmake \
 -DWITH_DAEMONS='central-broker;central-rrd' \
 -DWITH_GROUP=centreon-broker \
 -DWITH_PREFIX=/usr \
 -DWITH_PREFIX_BIN=/usr/sbin \
 -DWITH_PREFIX_CONF=/etc/centreon-broker \
 -DWITH_PREFIX_INC=/usr/include/centreon-broker \
 -DWITH_PREFIX_LIB=/usr/lib/nagios \
 -DWITH_PREFIX_MODULES=/usr/share/centreon/lib/centreon-broker \
 -DWITH_STARTUP_DIR=/etc/init.d \
 -DWITH_STARTUP_SCRIPT=auto \
 -DWITH_TESTING=0 \
 -DWITH_USER=centreon-broker .
make
make install

5. Plugins

Sinnvoll sind hier natürlich die Centreon eigenen Plugins sowie die Nagios Plugins. Wenn ihr noch eigene Plugins nutzt, dann müsst ihr diese natürlich auch auf den Raspberry Pi kopieren.

Nagios Plugins

apt-get install libssl-dev libkrb5-dev libldap2-dev libsnmp-dev gawk libwrap0-dev libmcrypt-dev smbclient fping gettext dnsutils libmysqlclient-dev libnet-snmp-perl
wget http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gz
tar xzf nagios-plugins-2.1.1.tar.gz
cd nagios-plugins-2.1.1
./configure \
 --with-nagios-user=centreon-engine \
 --with-nagios-group=centreon-engine \
 --prefix=/usr/lib/nagios/plugins \
 --libexecdir=/usr/lib/nagios/plugins \
 --enable-perl-modules \
 --with-openssl=/usr/bin/openssl
make
make install

Centreon Plugins

apt-get install git perl libsnmp-perl libxml-libxml-perl libjson-perl libwww-perl libxml-xpath-perl libnet-telnet-perl libnet-ntp-perl libnet-dns-perl libdbi-perl libdbd-mysql-perl libdbd-pg-perl
 git clone https://github.com/centreon/centreon-plugins.git
 cd centreon-plugins/
 chmod +x centreon_plugins.pl
 cp -R * /usr/lib/nagios/plugins/

6. SSH Verbindung vom Verwaltungsserver

Hierzu erstellen wir zuerst auf dem Raspberry Pi einen neuen Benutzer:

useradd -g centreon-engine -m -r -d /var/lib/centreon centreon
usermod -a -G centreon-broker centreon
chmod -R 774 /etc/centreon-broker
chmod -R 774 /etc/centreon-engine
passwd centreon
Geben Sie ein neues UNIX-Passwort ein:

Danach loggen wir uns auf dem Verwaltungsserver ein und erstellen die jeweilige Schlüsselpaare. Diese kopieren wir anschließend auf den Raspberry Pi

su - centreon
ssh-keygen
ssh-copy-id -i /var/lib/centreon/.ssh/id_rsa.pub "-p 22 centreon@<IP-Adresse Raspberry>"
ssh -p 22 <IP-Adresse Raspberry>

Nun sollte eine Verbindung ohne Passwort Eingabe möglich sein.

Damit der Centreon Server die Dienste auch neustarten kann, müssen wir die Datei /etc/sudoers um weitere Zeilen ergänzen:

User_Alias CENTREON=centreon,www-data
# Centengine Restart
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine restart
# Centengine stop
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine start
# Centengine stop
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine stop
# Centengine reload
CENTREON   ALL = NOPASSWD: /etc/init.d/centengine reload
# Centengine test config
CENTREON   ALL = NOPASSWD: /usr/sbin/centengine -v *
# Centengine test for optim config
CENTREON   ALL = NOPASSWD: /usr/sbin/centengine -s *

7. Konfiguration im Centreon Web

Kommen wir zur Konfiguration des Raspberry Pi’s in der Centreon Weboberfläche.

1. Poller hinzufügen (Configuration > Pollers > Add)

Poller Name: Raspi
IP Address: <IP-Adresse Raspberry>

Monitoring Engine Init Script:  /etc/init.d/centengine
Monitoring Engine Binary: /usr/sbin/centengine
Monitoring Engine Statistics Binary: /usr/sbin/centenginestats
Perfdata file: /var/log/service-perfdata

Centreon Broker configuration path: /etc/centreon-broker
Centreon Broker modules path: /usr/share/centreon/lib/centreon-broker

Centreon Connector path: /usr/lib/centreon-connector

2. Broker Konfiguration (Configuration > Pollers > Broker configuration > Add)

Requester: Raspi
Name: Raspi-module-master
Config file name: Raspi-module-master.xml
Retention path: /var/lib/centreon-broker/

Logger (Core – File)
Name of the logger: /var/log/central-module-master.log

Output (TCP – IPv4) Anmerkung: angepasst an eure Centreon Umgebung
Name: central-module-master-output
Connection port: 5669
Host to connect to: <IP-Adresse Centreon Server>

3. Anpassen der Ressources (Configuration > Pollers > Resources > Add)

Resource Name: $USER1$
MACRO Expression: /usr/lib/nagios/plugins
Linkes Instances: Raspi

3. Engine Konfiguration (Configuration > Pollers > Engine configuration > Raspi)

Hier muss unter dem Reiter Data das Broker Module angepasst werden. Hier die Broker directive wie folgt abändern:

/usr/lib/centreon-engine/externalcmd.so  /etc/centreon-broker/Raspi-module-master.xml

Fertig. Nun kann der Poller in der Centreon Konfiguration verwendet werden.

8. Postfix als Mail-Relay

apt-get install postfix mailutils
echo [<Domain des Relay Host>] <Username>:<Passwort> > /etc/postfix/relay_password
postmap hash:/etc/postfix/relay_password
chown root:root /etc/postfix/relay_password /etc/postfix/relay_password.db
chmod 0600 /etc/postfix/relay_password /etc/postfix/relay_password.db

Inhalt der Datei /etc/postfix/main.cf um folgendes ergänzen:

relayhost = <Domain des Relay Host>
smtp_sasl_password_maps=hash:/etc/postfix/relay_password
smtp_sasl_auth_enable=yes
smtp_sasl_security_options = noanonymous

9. SNMP (zur Überwachung des Pi’s)

apt-get install snmp snmpd snmp-mibs-downloader
ln -s /usr/share/mibs/ /usr/share/snmp/mibs

In der Datei /etc/snmp/snmpd.conf sollten wir folgende Zeile wieder aktivieren:

rocommunity public localhost

Die Datei /etc/default/snmpd ändern wir wie folgt:

export MIBS=ALL
export MIBDIRS=/usr/share/mibs

Und kommentieren alle Zeilen in der Datei /etc/snmp/snmp.conf aus.

Zum Testen von SNMP kann folgender Befehl verwendet werden:

snmpwalk -c public -v 2c localhost

Dennis

Hallo zusammen, mein Name ist Dennis. Ich bin Geschäftsführer eines IT-Dienstleistungsunternehmen für den Mittelstand. In meiner Freizeit treibe ich gerne Sport und beschäftige mich mit allerlei Technik. Bei Fragen jeglicher Art könnt ihr einfach auf mich zukommen :)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.