ZabbixでWindowsのプロセス監視を行おうとした際、上手く行かず、サービス監視を行ったことがありました。
プロセス監視とサービス監視について調べたことをまとめます。
Zabbixのプロセス監視のアイテムキーは以下の通りです。
アイテムキー | 戻り値 | 備考 |
---|---|---|
proc.num[\,\,\,] | 数値(プロセス数) | Windowsではオプション(\,\,)使用不可 |
<name>
にWindowsのプロセス名を入れるため、
Windowsでプロセス名を確認する必要があります。
Windowsのプロセス名は以下の方法で確認することができます。
タスクマネージャー
コマンドプロンプト
tasklist /SVC
イメージ名 PID サービス
========================= ======== ============================================
(中略)
svchost.exe 1572 W32Time
(後略)
Windowsのプロセス監視の場合、<name>
には~.exe
の形で指定します。
例) proc.num[sakura.exe]
プロセス監視の場合、アイテムキーの戻り値は数値(プロセス数)です。
そのため、障害としたいプロセス起動数以下、または以外を検知するようにトリガー設定します。
例
{$TEMPLATE$:proc.num[sakura.exe].last()}<1
Windowsのサービスは、全て親プロセスのsvchost.exe
で管理されています。
そのため、特定のサービスに対するプロセス監視として、svchost.exe
は使用できません。
(例えば、DNSもFTPも全てsvchost.exe
となるため、どのサービスが起動しているか判断がつかない)
また、オプションが使用できないため、<cmdline>
を使用してフィルタすることもできません。(Linuxであれば可能2)
レジストリキーを修正し、svchost.exe
を分離することが可能?※要検証
ZabbixのWindowsサービス監視のアイテムキーは以下の通りです。
アイテムキー | 戻り値 | 備考 |
---|---|---|
service.info[] | 0 - 実行1 - 一時停止2 - 起動待ち3 - 一時停止待ち4 - 継続待ち5 - 停止待ち6 - 停止7 - 不明255 - サービスが存在しない | 「service_state[]」はZabbix3.0以降非推奨Windows特有のアイテムキー(Linuxでは使用不可) |
Windowsのサービスは以下の方法で確認できます。
サービス
コマンドプロンプト
C:>sc query | findstr /C:SERVICE_NAME /C:STATE
(中略)
SERVICE_NAME: W32Time
STATE : 4 RUNNING
(後略)
サービス監視の場合、アイテムキーの戻り値はサービスのステータスです。
そのため、障害としたいステータスを検知するようにトリガー設定します。
プロセス監視の代わりに使用したい場合は、正常起動0
以外を障害と検知するように設定するのが良いかと思います。
例
{$TEMPLATE$:service.info[w32Time].last()}<>0
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント