Monitoring
在 Icinga / Nagios 的服務名稱中使用 $ 監控服務
我正在嘗試在我的 Windows 伺服器上存在的幾個 MSSQL 實例上設置監控。這裡的問題是,如果服務名稱包含
$
(例如MSSQL$PROD
),那麼 check_nt 命令將返回 null 警告。以下是我所擁有的範例
windows.cfg
define service{ use generic-service host_name SERVERNAME service_description MSSQL Service check_command check_nt!SERVICESTATE!-d SHOWALL -l MSSQL$PROD }
我嘗試用“”包圍服務名稱(它適用於帶有空格的服務)並在服務名稱中的 $ 之前放置一個反斜杠,但沒有運氣。有誰知道這是否可以做到?
你必須
$
用另一個$
和單引號來轉義名稱:define service{ use generic-service host_name SERVERNAME service_description MSSQL Service check_command check_nt!SERVICESTATE!-d SHOWALL -l 'MSSQL$$PROD' }
或者,您可以使用 . 省略單引號
MSSQL\$$PROD
。我更喜歡第一個電話;)
Krissi 有正確的答案。
我只想提一個可能更容易解析的選項:將您的命令定義更改為另一個
$ARG$
,因此這種轉義的複雜性在您的命令定義中而不是在每個服務中處理。所以現在你的服務看起來像:check_command check_nt!SERVICESTATE!-d SHOWALL -l MSSQL!PROD
在你的 commands.cfg 中:
command_line /path/to/commmand --someopt value1 $ARG1$"$$"$ARG2$