Zabbix
でWindows ServerのCPU温度監視の設定についての覚書。
ありがたいことに、今年のはじめにシステム室とサーバルームを会社に作ってもらいました。
これまでは、事務所の片隅にサーバラックと共に仕事をしていたのですが、日々の気温変化や、電源容量にいちいち神経をすり減らすことも大分なくなり、管理業務に集中できる日々が続いています。
とそんな矢先、サーバルームで出火(!)する夢を見てしまい、やはり意識の奥底にはサーバルームにまつわる不安を抱えているのか、、と改めて実感したわけです。
以前から、Windowsの実機サーバに対しては、Zabbixエージェントをインストールして、古いサーバ(Ubuntu10.04)にZabbix1.8を立てて監視していたのですが、今回はUbuntu16.04 LTSで稼働させている仮想マシンに入れたZabbix3.2から改めて監視させてみようと作業してみました。
使用環境
- Windows Server 2008 R2
- Speedfan4.4.9とSFSNMP 0.1.2 が導入済み
- Ubuntu Server 16.04 LTS
- Zabbix 3.2.11(Ubuntuのパッケージ使用)
- Zabbix Agent 3.2 Windows用バイナリ
ゴール
- CPUの温度を監視できるように設定
- CPUの温度をグラフで表示
- CPU温度の異常を検知してメール送信
Windows Serverでの作業
SpeedFan+SFSNMP
今回はすでに導入済みのため触れませんが、はじめから導入する際は、参考にしたサイトを元に導入します。
Zabbixエージェント
すでに、C:\Zabbix
にエージェントがインストールされているとして・・・
古いZabbixのエージェントがサービスとして起動しているで、一旦サービスを削除。
> c:\Zabbix\zabbix_agentd.exe -c c:\Zabbix\zabbix_agentd.win.conf -d
ここからZabbixエージェントをダウンロード(Zabbixサーバのバージョンと合わせる)。
zipファイルを展開して、中身をC:\Zabbix
に移動。
zabbix-agentd.win.conf
ファイルを編集する。 1
LogFile=C:\Zabbix\zabbix_agent.log DebugLevel =3 Server=192.168.0.1 # サーバーのIP or ホスト名 ListenIP=192.168.0.100 # 自身のIP StartAgents=3 ServerActive=192.168.10.0.1 Hostname=WINSERV2008R2 Timeout=3
Zabbixをサービスとしてインストール
> c:\Zabbix\zabbix_agentd.exe -c c:\Zabbix\zabbix_agentd.win.conf -i
インストール後、管理ツール->サービスでZabbix Agentを起動する。
Zabbixサーバでの作業
SNMPを取得できるか確認
snmpwalk
コマンドを使って、CPU温度周りの情報を取得。
$ snmpwalk -On -v 2c -c public 192.168.0.100 .1.3.6.1.4.1.30503 .1.3.6.1.4.1.30503.1.1.1 = INTEGER: 4 .1.3.6.1.4.1.30503.1.1.2 = INTEGER: 0 .1.3.6.1.4.1.30503.1.1.3 = INTEGER: 0 .1.3.6.1.4.1.30503.1.2.1 = INTEGER: 3400 .1.3.6.1.4.1.30503.1.2.2 = INTEGER: 3200 .1.3.6.1.4.1.30503.1.2.3 = INTEGER: 3100 .1.3.6.1.4.1.30503.1.2.4 = INTEGER: 3300 .1.3.6.1.4.1.30503.1.5.1 = STRING: "34.00" .1.3.6.1.4.1.30503.1.5.2 = STRING: "32.00" .1.3.6.1.4.1.30503.1.5.3 = STRING: "31.00" .1.3.6.1.4.1.30503.1.5.4 = STRING: "33.00" .1.3.6.1.4.1.30503.1.5.4 = No more variables left in this MIB View (It is past the end of the MIB tree
この場合、.1.3.6.1.4.1.30503.1.2.*
がCPUのコア毎の温度であると推測できます。
ホストの登録
設定->ホストで、ホストの作成をクリック。
- ホスト名、表示名にホスト名を入れる。
- 所属グループは必要に応じて(例: Windows Servers など)。
- エージェントのインターフェース: IPアドレスを入力し、接続方法:IPアドレス、ポート:10050。
- SNMPインターフェース: IPアドレスを入力し、接続方法:IPアドレス、ポート:161。
- 有効にチェック。
- テンプレートタブに移動
- テンプレートに
Template OS WIndows
とTemplate SNMP OS Windows
を追加。 - ホストタブに移動「追加」ボタン
しばらくしてから、設定->ホストでホストの一覧を表示し、エージェントの状態を確認。
ZBX、SNMPがグリーンではなく赤い表示の場合は失敗しているので、設定を確認する。その他の確認事項としては、、
- Windowsサーバ側のファイアウォール設定
- Windowsサーバ側のSNMPサービスの設定
- Windowsサーバ側で、SNMPサービス、Zabbix Agentサービスが起動しているか。
等があると思われます。
ホストにアイテムを追加
- 設定-> ホストで、ホストの一覧
- 一覧から先程追加したホストの、アイテムをクリックし、アイテムの一覧を表示。
- アイテムの作成をクリック。
- 名前: 任意(例: CPU0 Temp など)
- タイプ:SNMPv2エージェント
- キー: 任意(例: censors.cpu0.temp など)
- ホストインターフェース: (例:192.168.0.1:161)
- OID: 先の例では、.1.3.6.1.4.1.30503.1.2.1から.1.3.6.1.4.1.30503.1.2.4。
- SNMPコミュニティ:public
- ポート:161
- データ型: 数値(整数)
- データの形式: 10進数
- 単位:℃
- 乗数を使用:チェックを入れて、値を0.01に。
- 更新間隔:30
- その他は、デフォルトのままでOK
- 有効にチェックをいれ、更新ボタンをクリック
- これをCPUの数だけ繰り返します(アイテムの複写を活用)。
これも少し間を置いてから、アイテムの一覧を表示させてエラーが置きていないかどうか確認します。
メールを送信できるようにする
メディアタイプを設定
Zabbixの警告などをメールで送信できるように設定します。
ここでのメール送信サーバは以下のようなサーバを想定しています。
- SMTPサーバー: mail.foo.ne.jp
- SMTPサーバーポート: 465
- 接続セキュリティ: SSL/TLS
- 認証: ユーザー名とパスワード(PLAIN TEXT)
-
管理 -> メディアタイプ でメディアタイプの一覧を表示。
- Email をクリック。
- 名前:Email
- タイプ: メール
- SMTPサーバー: mail.foo.ne.jp
- SMTPサーバーポート番号: 465
- SMTP helo: foo.ne.jp
- 送信元: zabbix@foo.ne.jp
- 接続セキュリティ: SSL/TLS
- SSLピア検証:チェックを外す
- SSLホスト検証: チェックを外す
- 認証: Username and password
- ユーザー名:hoge@foo.ne.jp
- パスワード変更をクリックし、メールユーザのパスワードを入力。
- 有効にチェックをいれ、更新
ユーザーにメディアを割りあて
ここでは、キー名がcensors.cpu0.temp
の値(温度)が、60℃を超えたら警告を発砲して、メールで送信できるようにします。
- 管理 -> ユーザーで、ユーザー一覧を表示。
- メールを送信するユーザ(ここでは、Admin)をクリック。
- メディアタブをクリック
- タイプ: Emailにする。
- 送信先: メールの送信先を入力(例: admin@foo.ne.jp)
- 有効な時間帯: 1-7,00:00-24:00 (月曜から日曜、0時から24時まで)
- 指定した深刻度の時に使用: デフォルト(全てチェック)のまま。
- 有効にチェックをいれて、追加。
トリガーを設定
先に設定したCPU温度の監視アイテムで、過去5分間の平均温度が60℃を超えたら警告を発砲し、メールを送信するように設定します。
- 管理 -> ホストでホスト一覧を表示。
- 該当するホストのトリガーをクリック。
- トリガーの作成をクリック。
- 名前:WINSRV2008R2 CPU0 Avarage Temp is over 60c
- 深刻度: 警告
- 条件式: {WINSRV2008R2:censors.cpu0.temp.avg(5m)}>60
- 正常イベントの生成: 条件式
- 障害イベント生成モード: 単一
- 正常時のイベントクローズ: すべての障害
- その他はそのまま
- 有効にチェックを入れ、追加
実際にトリガーを発砲させてみる
トリガーがきちんと作用して、メールが送信されるか確認。
- 通常では発砲されないので、上記トリガーを設定の内容を一部変更。
- 条件式の
>60
を>10
にして、トリガーを更新する。 - しばらく間をおいてから、ダッシュボード上、あるいはメールで警告が発砲されているかどうか確認。
確認終了後、条件式を元に戻しておく。
参考にしたサイト
- 今回、1.8系から3.2系へのアップグレードに関しては、変更の必要は内容に思われますが念の為。 ↩
1件のコメント
Zabbix4.2構築手順!!CentOS7.6+PostgreSQL11の場合!! - 紳士は変態がお好き · 2019年8月28日 9:32 PM
[…] https://www.rough-and-cheap.jp/linux/zabbix_monitoring_cpu_temp/ […]