Icinga2 + Centreon Plugins: so werden sie integriert
Icinga2 nutze ich gern als Monitoring Tool, auch wenn Prometheus in Docker Umgebungen ja das neue “cool” ist, aber manche Dinge habe ich gern klassisch đ
Damit Icinga2 die volle Palette an Monitoringmöglichkeiten komplett agil verwenden kann, habe ich mich schon vor lĂ€ngerem mit den Centreon Plugins angefreundet, die sich problemlos als Command-Definitionen in Icinga2 integrieren lassen: Open Source Monitoring at itÂŽs best – natĂŒrlich auch mit dem Icinga2 Director kompatibel.
GrundsĂ€tzlich bietet Centreon eine breite Perl Plugin Palette an, mit der man die unterschiedlichsten HardwaregerĂ€te genauso wie z.B. Schnittstellen zu Azure und AWS ansprechen kann. Die Daten werden sauber mit Perfdaten zurĂŒckgegeben, so dass Icinga2 das auch grafisch auswerten kann.
Installation
Auf meinem Debian 10 System habe ich mir ein eigenes Verzeichnis zurecht gelegt, in dem ich via git clone das oben verlinkte Github Repo von Centreon kopiere. Updates mit git pull kann man in der Regel gefahrlos machen.
Wie ergrĂŒndet man nun den Aufbau der einzelnen Befehle? Centreon bietet auf Kommandozeilenebene ein schönes Schema an, mit dem man sofort herausfinden kann, was jeder Befehl kann und welche Monitoringmöglichkeiten es gibt. Um zu herauszufinden, was alles möglich ist, folgenden Befehl verwenden:
perl centreon_plugins.pl --list-plugin | grep aws
Die Suche mittels grep ist hier case sensitive. Wenn man nun ein Plugin gefunden hat, kann man sich die verschiedenen Module fĂŒrs Monitoring anzeigen lassen – z.B.:
perl centreon_plugins.pl --plugin=cloud::aws::billing::plugin --list-mode
Im vorliegenden Beispiel braucht man zur genauen Untersuchung eines Moduls des AWS Billing Plugins die Custommode Definition, die festlegt, wie genau die Daten abgegriffen werden:
perl centreon_plugins.pl --plugin=cloud::aws::billing::plugin --mode=estimated-charges --list-custommode
Um nun die komplette Hilfe zum Modul estimated charges aufrufen zu können, braucht es diesen Befehl:
perl centreon_plugins.pl --plugin=cloud::aws::billing::plugin --mode=estimated-charges --custommode=awscli --help
Da es immer wieder vorkommt, dass im Betriebssystem bestimmte Perl Module beim Aufruf des Help-Befehls fehlen, mĂŒssen diese nachinstalliert werden. In der Regel sind die fehlenden Perl Module ĂŒber apt-cache search perl json z.B. leicht zu finden.
Icinga2 Konfiguration
Nun muss anhand der in der Hilfe angezeigten Parameter eine Icinga2 Command Definition gebildet und unter /etc/icinga2/conf.d/commands.conf eingetragen werden, die z.B. so aussieht:
object CheckCommand "centreon-snmp-load" { import "plugin-check-command" command = [ "/home/nagios/centreon-plugins/centreon_plugins.pl"] arguments = { "--plugin" = "os::linux::snmp::plugin" "--mode" = "load" "--hostname" = "$address$" "--snmp-version" = "2c" "--snmp-community" = "$snmp_community$" "--warning" = "$snmp_warn$" "--critical" = "$snmp_crit$" } }
Eine komplette Liste meiner bisher zusammengestellten Centreon Befehle fĂŒr Icinga2 habe ich auf Github zusammengetragen. ErgĂ€nzungen jederzeit gern.
Jeder hier definierte Befehl kann nach einem service icinga2 reload direkt auch in den Director importiert werden.
Du möchtest regelmĂ€Ăig Neuigkeiten von meinem Blog? Trag dich fĂŒr meinen Newsletter ein:
Vielen Dank fĂŒr die icinga Templates. In deinen check_commands fehlen am Ende des Aufrufes ein paar AnfĂŒhrungszeichen.
command = [ CustomPluginDir + “/centreon-plugins/centreon_plugins.pl]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CustomPluginDir + “/centreon-plugins/centreon_plugins.pl”
Danke fĂŒr den Hinweis – ist behoben.