Implementation von Check

Folgendes Szenario:
Wir haben einen MSSQL-Cluster mit Server1 und Server2. Dann habe habe ich einen Cluster in CheckMK angelegt, auf dem die MSSQL-Datenbank usw. sind.

Ich möchte nun einen Check schreiben, der eine Abfrage bei der geclusterten Datenbank ausführt und aufgrund dieser Abfrage soll in Service kritisch (oder halt nicht) werden.

Wie würdet ihr diesen Check implementieren?

Folgende Möglichkeiten sind mir eingefallen:

  • Lokaler Check und Verteilung über Agent Bakery
  • Check der vom Server aus durchgeführt wird (ist das bei Checkmk möglich?)

Im idealsten Fall kann dem Check auf noch die Parameter wie die Abfrage und die zu checkenden Werte per WATO vorgeben.

Grundlegend unterscheidet sich so ein Check auf einem virtuellen Hosts wie einem Cluster nicht von einem Check welcher standalone auf einem Host ausgeführt wird.
Zu beachten ist nur, falls der Check vom CMK Host aus ausgeführt werden soll, dass der Cluster Host auch explizite IP braucht. Dies ist bei den meisten aktiven Checks nötig falls dort mit $HOSTADDRESS$ usw. gearbeitet wird.
Abfragen gegen die Datenbank direkt vom CheckMK aus sind mittels des Check SQL Database möglich. Dafür ist es aber dann nötig sich entweder eine passende Query zu bauen oder eine entsprechende Stored Procedure aufzurufen. Da ich selber kein Datenbank Spezi bin kann ich da nix genaueres zu sagen.

Falls du einen lokal Check verwenden möchtest solltest du erstmal testen ob das im CheckMK angezeigte Ergebnis auch deinen Erwartungen entspricht. Ein Node des Clusters sollte ja immer ein ok bringen und der zweite Node dann ein crit (ich geh mal von nem Failover Cluster aus).
Ob CheckMK nun beide Ergebnisse eines lokal Checks hier richtig kombiniert kann ich nicht sagen ohne dies selber zu probieren.

1 Like