最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。
Zabbixとは
Zabbix はアレクセイ・ウラジシェフ(Alexei Vladishev)によって作られた、ネットワーク管理ソフトウェアである。様々なネットワークサービス、サーバ 、その他のネットワークハードウェアのステータスを監視・追跡できる
オープンソースの監視プロダクトとして国内国外問わず、シェアNo.1だと思います。
構成としてはサーバ、プロキシ、エージェント、フロントエンドの4つに分かれてます。
プロキシは必ず必要というわけではなく、最低限サーバ、エージェント、フロントエンドの3つがあれば監視を行うことができます。
- サーバ: 中央としてエージェント、プロキシを管理する
- プロキシ: (必要に応じて)サーバとエージェント間で文字通りプロキシする
- エージェント: 監視対象のサーバにインストールしてサーバ(プロキシ)とデータ交換をする
- フロントエンド: サーバの設定などGUIでわかりやすく操作することができる
Zabbixサーバとプロキシのバージョンの重要性
サーバとプロキシのバージョンはマイナーバージョンはずれていてもいいんですがメジャーバージョンが揃っている必要があります。
Zabbix 4.0.x server can only work with Zabbix 4.0.x proxies. Zabbix 4.0.x proxies can only work with Zabbix 4.0.x server.
(訳: Zabbix 4.0.xサーバは、Zabbix 4.0.xプロキシでのみ機能します。Zabix 4.0.xプロキシは、Zabbix 4.0.xサーバでのみ機能します。)
監視する方法
監視するというか、バージョンを確認できるようにする、という意味でZabbixにアイテムを追加します。
エージェントだったらデフォルトで監視アイテムがある(agent.version
)のですが、サーバ、プロキシには該当するアイテムがありません。
なので、スクリプトを作って、ユーザーパラメータでアイテムキーを追加します。
通常、サーバとプロキシが両方が同時に使われることはないので、同じアイテムキーで設定できるようにしてみました。
スクリプトを作成
Zabbixエージェントの設定ディレクトリ (/etc/zabbix/zabbix_agentd.d
) にbashスクリプトを作成します。
1 2 3 4 5 6 7 8 9 10 11 |
#!/bin/bash if [ -x /usr/sbin/zabbix_proxy ]; then VERSION=`/usr/sbin/zabbix_proxy -V | head -1 | awk -F ' ' '{print $3}'` fi if [ -x /usr/sbin/zabbix_server ]; then VERSION=`/usr/sbin/zabbix_server -V | head -1 | awk -F ' ' '{print $3}'` fi echo "${VERSION}" |
作成したスクリプトは実行できるように権限を設定しておきます。
chmod +x check_zabbix_server_proxy_version.sh
スクリプトの説明
- 3~5行: Zabbixプロキシの実行ファイルがある場合はそのバージョンを取得する。
zabbix_proxy -V
のコマンドでZabbixプロキシのバージョン情報が取得できるので、その1行目(head -1
)を空白で分割したうちの3つ目を取得(awk -F ' ' '{print $3}'
)。 - 7~9行: Zabbixサーバの実行ファイルがある場合はそのバージョンを取得する。
コマンドがzabbix_server
になるだけで、同じようにheadとawkを使ってバージョンだけ取得。 - 11行: 取得したバージョンを標準出力に出力する。
※ちなみに awk コマンドの -F ' '
は省略してもOKです。指定しないときは空白(半角スペース)が指定されたことになります。
UserParameterの設定
Zabbixでキーを追加したときにこのスクリプトが実行されるようにユーザーパラメータの設定をします。
※ここでは zabbix.version
というキーでアイテムを追加することを想定しています。
1 |
UserParameter=zabbix.version,/etc/zabbix/zabbix_agentd.d/check_zabbix_server_proxy_version.sh |
Zabbixエージェントの再起動
追加したユーザーパラメータを読み込むためにZabbixエージェントのサービスを再起動します。
$ service zabbix-agent restart
※必要に応じて sudo
をつけるとかしてください。
Zabbixサーバでアイテムの追加
ZabbixのWebフロントエンドからアイテムを追加しますが、今回はテンプレート(Template App Zabbix Server)に追加します。
- 名前: Version of zabbix_server running
- タイプ: Zabbixエージェント
- キー: zabbix.version
- データ型: 文字列
- 更新間隔(秒): 300
- アプリケーション: Zabbix server
しばらく(更新間隔によります)すると監視項目が反映され最新データで表示されるようになります。
※表示されるのを確認できたらアイテムの設定で「更新間隔(秒)」を 86400(1日)
などに変更するとよいです。バージョンなんてそう頻繁に変わるものではないですしね。
トリガーの追加
もしバージョンが変わったことを検知したい場合はトリガーを設定したらいいと思います。
- 名前: Version of zabbix_server was changed on {HOST.NAME}
- 深刻度: 情報
- 条件式: {Template App Zabbix Server:zabbix.version.diff(0)}>1