チェックプラグイン - check-ntservice

check-ntservice はWindowsサービスが起動しているかを監視するプラグインです。

指定可能なオプション

オプション 省略形 必須 説明
--service-name -s 指定した文字列を含むサービスを監視します
--exclude-service -x 指定した文字列を含む場合は監視の対象から除外します
--list-service -l サービス名の一覧を表示します
--exact --service-nameに完全一致するサービスを監視します
  • オプションの複数指定、正規表現による指定には対応していません。
  • --exactは mackerel-agent v0.78.0 以降に同梱されているプラグインで有効です。

エージェントへの設定例

W3SVCサービスの稼働状況を監視するには、以下のように設定します。

[plugin.checks.ntsvc_w3svc]
command = ["check-ntservice", "--service-name", "W3SVC"]

上記の設定を直接確認するには、コマンドプロンプトにて以下のように実行して確認できます。(プラグインにパスが通っている必要があります。)

check-ntservice --service-name W3SVC

Tips

  • --service-name オプションに指定するサービス名が不明な場合、--list-service オプションで指定可能なサービス名を事前に確認できます。
check-ntservice --list-service

トラブルシューティング

意図しないサービスの停止が検知されてしまう

check-ntserviceは --service-name オプションに指定した文字列を含むサービスのチェックを行うため、意図しないサービスの停止を検知してしまう場合があります。

その場合は --exact--exclude-service オプションを併用し、対象サービスの特定や不要な文字列の除外をするようにしてください。

例えばfoofoobarというサービスが稼働していてfooの監視を行いたい場合は、--exactオプションを指定することで簡単に監視対象にできます。

[plugin.checks.ntsvc_w3svc]
command = ["check-ntservice", "--service-name", "foo", "--exact"]

また--exclude-serviceオプションを指定して、次のように除外することもできます。

[plugin.checks.ntsvc_w3svc]
command = ["check-ntservice", "--service-name", "foo", "--exclude-service", "foobar"]

サービスが見つからないとUNKNOWNのアラートが発報する

条件に指定したサービスが見つからない場合に、service does not exist.のメッセージを含んだUNKNOWNのアラートが発報します。

正しいサービス名が指定されているか、--list-serviceオプションを活用するなどして見直しをしてください。

リポジトリ

https://github.com/mackerelio/go-check-plugins/tree/master/check-ntservice