check_cluster_service

Dieser Check dient dazu, keine unnötigen Alarme auszulösen. Als konkretes Beispiel ist hier im Folgenden ein Certifikatscheck angeführt.  Angenommen wir verfügen über einen Cluster mit 6 Hosts ( host1, host2, host2, …, host6 ) und alle Hosts müssen die selben Certifikate für irgendetwas verwenden. Würde nun ein Check für diese Gruppe definiert werden, welcher die Certifikate zu prüfen hat, so hätte wir ab sofort sechs Checks, die ein und die Selbe Funktion erfüllen. Dies ist überflüssig, denn im Falle einer Alarmierung würden wir nun 6 Alarme der selben Kategorie erhalten. Dieser Check versucht dies zu verhindern, indem er die hostgroups.cfg parsed und nach clusterzugehörigen hosts sucht. Er errechnet die Anzahl aller Clustermembers und generiert darüber eine Zufallszahl. Somit landet er bei jedem Execute des checks auf einem anderen Clusterhost.

Fazit:

Im Alarmierungsfall erhalten wir exakt einen Alarm anstelle von sechs

Der Check kommt auf einem Dummyhost zum Einsatz und führ dort alle ihm übertragenen Checks aus ( Dies können beliebige Checks sein. ). Vorraussetzung ist die Verwendung von NRPE

hosts.cfg

## DUMMY HOST CHECKING SSL CERTIFICATES
define host{
    host_name               ssl-certs
    use                     generic-host
    address                 127.0.0.1
    check_command           check-host-alive
}
## END

command.cfg

define command{
        command_name                    check_cluster_service
        command_line                    $USER2$/check_cluster_service.sh $ARG1$ $ARG2$ $ARG3$ $ARG4$
}
  • Mit Argument 1 wird der Clusterhostname übergeben
  • Mit Argument 2 wird der auszuführende Check übergeben ( check_ssl_certs, … )
  • Argument 3 verwesit auf die Datei hostgroups.cfg. Alternativ kann diese fest in den Check selbst eingebaut werden

Fehlerquellen:

  • Errechneter Server nicht erreichbar

service.cfg

## CHECKING A SERVICE ONLY ON ONE RANDOM HOST
define service{
    use                     check-5-min
    hosts                   ssl-certs
    service_description     check_ssl_certs
    check_command           check_cluster_service!host_to_check!check_ssl_certs!
    contact_groups          mail
}
## END
Check Cluster Service
Check Cluster Service
check_cluster_service.sh
1.6 KiB
707 Downloads
Details