はじめに
Windowsサーバの自動サービスをすべて監視します。
ディスカバリの機能を使用してサービスの増減があったとしても動的に監視できるようにします。
環境
Zabbixサーバ
OS:CentOS 8.2.2004
Apache:2.4.37
PHP:7.2.25
MariaDB:10.3.17
Zabbix Server:5.0.2
Zabbix Agent:5.0.2
検証サーバ
OS:Windows Server2019
操作手順
Zabbixの管理コンソールにサインインします。
テンプレートを作成する
左サイドバーから [設定] - [テンプレート] をクリックします。
「テンプレートの作成」ボタンをクリックします。
以下の通り入力します。
テンプレート名:T_Service_10
グループ:Templates
「追加」ボタンをクリックします。
テンプレートの作成が完了しました。
これから作成したテンプレートに対して設定を追加していきます。
ディスカバリを作成する
テンプレートの「ディスカバリ」をクリックします。
ディスカバリルールの作成
右上の「ディスカバリルールの作成」ボタンをクリックします。
名前:Windows services discovery
タイプ:Zabbixエージェント
キー:service.discovery
監視間隔:5m
フィルターの作成
上段の「フィルター」タブをクリックします。
ラベルA:{#SERVICE.STARTUPNAME}
条件:一致する
正規表現:@Windows service startup states for discovery
「追加」ボタンをクリックします。
アイテムのプロトタイプ作成
「アイテムのプロトタイプの作成」ボタンをクリックします。
アイテムのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:"{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME})
タイプ:Zabbixエージェント
キー:service.info["{#SERVICE.NAME}",state]
データ型:数値(整数)
監視間隔:1m
値のマッピング:Windows service state
アプリケーション:Services
「追加」ボタンをクリックします。
トリガーのプロトタイプ作成
「トリガーのプロトタイプの作成」ボタンをクリックします。
トリガーのプロトタイプの作成画面では、監視したい項目に合わせて設定します。
名前:"{#SERVICE.NAME}" ({#SERVICE.DISPLAYNAME}) is not running (startup type {#SERVICE.STARTUPNAME})
深刻度:軽度の障害
条件式:{T_Service_10:service.info["{#SERVICE.NAME}",state].min(#3)}<>0
条件式は、{#SERVICE.NAME}サービスが3回連続で「実行中」でなかった場合という意味です。
手動クローズを許可:チェックを入れる
「追加」ボタンをクリックします。
テンプレートをホストにリンクする
左サイドバーから [設定] - [ホスト] をクリックします。
作成したテンプレートをリンクするホストを選択します。ここでは「WindowsServer2019」を選択しています。
「テンプレート」をクリックします。
新規テンプレートをリンク欄で、「T_Service_10」をリンクします。
動作確認
[監視データ]-[最新データ]をクリックします。
ホストは「WindowsServer2019」を選択し、「適用」ボタンをクリックします。
ステータスの種類は以下の通りです。
0 ⇒ Running
1 ⇒ Paused
2 ⇒ Start pending
3 ⇒ Pause pending
4 ⇒ Continue pending
5 ⇒ Stop pending
6 ⇒ Stopped
7 ⇒ Unknown
255 ⇒ No such service
WindowsServer2019にログオンし、Print Spoolerサービスを停止します。
5分後にダッシュボードを見るとサービス停止のアラートを検知しています。
もともと停止していた3つのサービスも一緒に検知しています。
・RemoteRegistry
・Downloaded Maps Manager
・Google Update サービス (gupdate)