Zabbixでエージェント経由のリモートコマンドを実行する場合、Zabbixとエージェントが通信出来なければならない条件がありました。
DMZにZabbix Proxyを置いて監視をしているような環境だと標準ではリモートコマンドを実行出来ませんでしたが、Zabbix3.4から実装されたProxy経由でもリモートコマンドが実行出来るよう機能が追加になったので検証してみました。
検証概要
- Zabbix Server/Zabbix Proxy/監視VMの環境でアクティブ監視設定をする(環境構築手順は省く)
- Zabbixトラッパーのアイテムを作成してトリガー及びアクション(リモートコマンド)を設定する
- リモートコマンドは
echo
でファイルをリダイレクトさせる処理を設定する - zabbix_senderで値を送ってアラートを発生させアクションを実行する
- 結果を確認する
検証環境
環境図
今回の環境はアクティブ監視で構築してみました。
以下のような通信フローになります。
リモートコマンドを実行する場合は、エージェントと 10050
で通信出来るようにする必要があります。
Firewallは 10050
10051
は開けてあります。
ソフトウェア
項目 | バージョン |
---|---|
OS | CentOS7.4 |
Zabbix | 3.4-1 |
設定
アイテム
トリガー設定
アクション設定
検証
(1) 監視VMからzabbix_senderで値を送ります。
1 2 3 4 |
[root@tenant-centos ~]# zabbix_sender -z zbx_pro -s tenant-centos -k remote_command -o 60 info from server: "processed: 1; failed: 0; total: 1; seconds spent: 0.000078" sent: 1; skipped: 0; total: 1 |
(2) アクションが 終了
になっているのを確認します。
(3) 監視VMでファイルを確認します。
1 2 3 4 5 |
[root@tenant-centos ~]# ls /tmp/ hoge.txt [root@tenant-centos ~]# cat /tmp/hoge.txt hoge |
リモートコマンドが実行されました 🙂
今までは、使えなかったので別手段でやる必要がありましたが、今回から実装されたこの機能を使えば楽に出来そう 🙂