Icinga2 + Centreon Plugins: so werden sie integriert

2

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:

2 Comments
  1. Florian says

    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“

    1. Benjamin Hartwich says

      Danke fĂŒr den Hinweis – ist behoben.

Leave A Reply

Your email address will not be published.