Microsoft SQL-Server mit Icinga2 überwachen
Soll ein Microsoft SQL Server (an der Stelle egal, ob Express- oder Vollversion) mit Icinga2 überwacht werden, so stellt der Name des Dienstes eine kleine Hürde dar:
Wird der Name mit “MSSQL$SQLEXPRESS” in der entsprechenden Argumentliste angegeben, so beschwert sich Icinga2 beim Überprüfen der Konfiguration mit
critical/config: Error: Validation failed for object '...' of type 'Service';
Attribute 'vars' -> 'nrpe_remote_arguments':
Closing $ not found in macro format string '...!MSSQL$SQLEXPRESS'.
Ein im ersten Reflex eingefügtes Backslash-Zeichen vor dem Dollar-Zeichen löst das Problem nicht, führt aber zu einer neuen Fehlermeldung:
critical/config: Error: Bad escape sequence found: \$
Des Rätsels Lösung bietet - wie so oft RTFM - oder hier RTFAQ, denn dort steht:
How do I properly escape $ in strings
Dollar signs are “strange” in Nagios and has to be escaped using double $$s. Thus in Nagios config you need to put $$.