かつて山市良と呼ばれたおじさんのブログ

セイテクエンジニアのブログ  かつて山市良と呼ばれたおじさんのブログ  vol.51 更新の監視と管理|BOMおじさんとZabbix(7)

 

 

vol.51 更新の監視と管理|BOMおじさんとZabbix(7)

2024年10月15日配信
執筆者:山内 和朗

 Zabbixの特徴の1つは、あらゆるデバイス、あらゆるアプリケーションを監視できるところにあります。一方、弊社製品「BOM for Windows」は、Linuxやクラウド、ネットワーク機器の監視にも対応していますが、Windows Serverのサーバー監視を最も得意としています。あらゆるものの監視に対応しているZabbix、果たしてWindows Serverをどこまで深く監視できるのでしょうか。

 

ある日、Zabbixにアップデートがやって来た

 

 2024年8月初めにZabbix 7.0 LTS(7.0.2)を新規にインストールし、いろいろと評価してきましたが、8月の後半、Zabbix UIのダッシュボードに「Zabbixサーバーのバージョン: 新しいバージョンがリリースされています」と「Zabbix Webインターフェイスのバージョン: 新しいバージョンがリリースされています」の表示を見つけました(画面1)。Zabbixのリリース情報(https://www.zabbix.com/release_notes)を確認すると、メジャーバージョンが出たばかりかもしれませんが、既に3回目のマイナーアップデートです。なお、Zabbix Webインターフェイスでの更新チェック機能は、Zabbix 7.0 LTSからの新機能だそうです。

Zabbix 7.0.0    2024年7月4日
Zabbix 7.0.1    2024年7月22日
Zabbix 7.0.2    2024年7月29日
Zabbix 7.0.3    2024年8月19日

追記) 9月末に4回目のマイナーアップデートがリリースされました

Zabbix 7.0.4   2024年924

 

画面1

画面1 2024年8月後半、Zabbix 7.0 LTSのマイナーバージョンアップ7.0.3が利用可能になり、ダッシュボードに通知された(その翌月末には 7.0.4 がリリース)

 

 Ubuntu ServerにインストールしたZabbixの場合は、他のパッケージと同じように、apt-getコマンドで更新を確認し、簡単に更新することができました。同時にZabbixエージェントが更新されたことも確認しています(画面2)。更新が完了すると、zabbix-serverサービス(デーモン)が自動的に再起動され、バージョンが7.0.3に変更されたことがダッシュボードに表示されました(画面3)。

 

$ sudo apt-get update
$ sudo apt-get upgrade

 

画面2
画面2 Ubunxu Server上のZabbixサーバーとエージェントは、apg-getコマンドで簡単に更新できた

 

 画面3
画面3 Zabbixサーバーのバージョンが最新の7.0.3に変更されたことが通知された

 

追記) マイナーアップデート 7.0.4の注意点

update704a マイナーアップデート 7.0.4 では、apg-get upgrade によるパッケージのインストール時に構成ファイル/etc/zabbix/zabbix_server.confの更新されたバージョンの扱いについて、現在の変更を無視して上書きするか(YまたはI)、現在の構成ファイルを維持するか(NまたはO)、差分を確認するか(D)、シェルを開始して状況を調査するか(Z)の選択が要求されました。

 何も考えずにYと入力してインストールを進めてしまうと、構成ファイルが上書きされ、アップデート後のZabbix UIには「Zabbixサーバーが動作していません(画面のリフレッシュを行ってステータスを再確認してください)」と表示されます。これは、データベース接続パスワードの設定(DBPassword=)が失われるためです。その他の構成ファイルに過去に行った変更も失われてしまいますので注意してください。/etc/zabbix/zabbix_server.confを適切に設定し直すことで、この問題は解消できます。

zabbix_server.confに変更を加える際には、その前後にzabbix_server.confのバックアップコピーを作成しておくことをお勧めします。

update704b

 

 監視対象のAgent 2(アクティブエージェント)がインストールされたWindows Serverのエージェントはどうすればよいのでしょうか。テンプレートの「Zabbix側にエージェントの更新が必要というような通知はありませんでした。そのため、監視対象のWindows Server 側で自らZabbixエージェントダウンロードページ(https://www.zabbix.com/jp/download_agents)から最新のインストーラーをダウンロードして、最新バージョンをインストールする必要がありました。このとき、Agent(パッシブエージェント)のインストーラーを誤ってダウンロードしてインストールしないように注意が必要だと思いました(画面4)。というか、実際、誤ってAgent(パッシブエージェント)をインストールしてしまい、アンインストールする羽目になりました。

 

画面4
画面4 Windows用のAgent 2インストーラーをダウンロードして、現在の設定を引き継ぎながら上書きインストール

 以下のZabbixインテグレーションのページに、PowerShellと連携して、ZabbixエージェントのダウンロードとアップデートをZabbixに実装するソリューションが用意されています。大規模環境では、こういったものを利用するべきでしょう。

PowerShell monitoring and integration with Zabbix|zabbix.com

 ちなみに、BOM for Windows Ver.8.0は2022年7月1に発売開始して以降、アップデートはこれまで2024年3月1日のSR1リリース1回です。しかも、基本的にWindowsインストーラーを実行して簡単にアップデート可能です。現在、2025年5月予定のSR2リリースに向けて開発中です。OSSのように頻繁なアップデートリリースはないので安心して使用してください。

 

Windows Update監視対決: Zabbix v.s. BOM for Windows

 

 このように、Zabbixは、Zabbixの監視対象のエージェントのバージョンを検出し、更新する機能を標準では備えていません。しかしながら、Zabbixインテグレーションの例のように、カスタマイズすれば実装可能です。最初に、Zabbixは“Windows Serverをどこまで深く監視できるのか”という問いを投げかけましたが、カスタマイズ次第で何でもできると言っても過言ではないでしょう。標準の監視機能でできないものは、監視データ収集用のカスタムスクリプトを作成して実行させればよいことですし、何か復旧用アクションが必要な場合も、カスタムスクリプトで対応できます。

 例えば、Zabbixを使用して、監視対象のWindows Serverから、Windows Updateでインストールされた更新プログラムの一覧を取得したいとしましょう。簡単な例で説明しますが、「powershell.exe Get-Hotfix」というコマンドラインを実行するアイテムを作成すれば、指定した間隔で(この例では24時間ごと)、実行結果を監視データとして取得することができます(画面5、画面6)。

 

画面5
画面5 PowerShellのコマンドラインをアクティブエージェントで実行するためのアイテム「Get-Hotfix」をテンプレートに追加

 

画面6
画面6 監視データの「Get-Hotfix」アイテムの取得データ

 

 簡単な例として紹介していますが、簡単と言ったのは実行するコマンドがシンプルなものという意味です。任意のコマンドラインをエージェント上で実行させる方法について、インターネットを検索していろいろと調べ、実機でテストした結果を紹介しているにすぎません。同じsystem.run[]キーの方法を使用して、PowerShellのコマンドラインやスクリプトだけでなく、任意のWindows Script Host(WSH)スクリプト、バッチ、コマンドラインツールを実行させることができるはずです。Windowsのエージェントの場合、システムアカウント(NT AUTHORITY¥SYSTEM)の権限で実行されることを確認しました。出力結果に日本語が含まれる場合は、対処が必要な場合があるでしょう。Zabbixは非ASCII文字については、UTF8エンコードされていることを想定しているようです。

 

 エージェントでコマンドを実行させるには、アイテムの作成だけでなく、エージェントでスクリプトの実行を許可するために、エージェント設定ファイル「zabbix_agent2.conf」(C:¥Program Files¥Zabbix Agent2¥zabbix_agent2.conf)に「AllowKey=system.run[*]」を追加し、「Zabbix Agent 2」サービスを再起動する必要があることもお伝えしておきましょう。system.run[]キーは、Zabbixエージェント(パッシブエージェント)でもサポートされるようです。その場合は、「zabbix_agentd.conf」に「AllowKey=system.run[*]」を追加します。ちなみに、Zabbixサーバー上でスクリプトを実行可能にするには(例えば、ホストへの「Ping」スクリプトの実行など)、Zabbixサーバー側でまた別の設定が必要です(「/etc/zabbix/zabbix_server.conf」に「EnableGrobalScripts=1」を追加してサービス再起動)。

 

 BOM for Windowsは、標準機能としてWindows UpdateやWindows Server Update Services(WSUS)の監視機能を提供しています。例えば、監視項目「Windows Update監視」を使用すれば、監視対象にインストールされている更新プログラムのリストを取得することができます(画面7)。また、「WSUS状態レポート」を使用すれば、WSUSクライアントのセキュリティパッチの適用状態やWSUSのリソース状況の監視レポートを作成することができます。

 

画面7
画面7 標準の監視項目「Windows Update監視」で収集されたインストール済み更新プログラム

 カスタム監視を活用すればさらに詳細な監視が可能です。

 

 システムの運用管理やサーバー監視に必要な機能を突き詰めれば、監視ツールとジョブ管理ツールの組み合わせに行きつくと考えています。Zabbixは監視ツールであり、運用管理のためにはジョブ管理ツールによる機能の補完が欠かせません。その点、弊社は、監視ツールの「BOM for Windows」に加え、ジョブ管理ツール「Job Director」をラインアップしています。製品コラムにおいて、Windows Update関連の監視例、自動化例を検証の上、公開しているので参考にしてください。

Windows Updateの更新履歴を毎日監視-BOM 8.0 SR1活用例: おじさんブログと連動|製品コラム
Windows Updateの更新を自動化し、再起動を保留-BOM 8.0 SR1活用例: おじさんブログと連動|製品コラム
Windows Updateの更新を全自動化-Job Director R16活用例: おじさんのブログと連動|製品コラム

blog_subscribe

blog_comment

最新記事