0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【docker+VMware】zabbixでアラート発報時にgmailを送信する

Last updated at Posted at 2026-01-06

始めに

今回は自分のzabbix学習のスタートとして、以下の図の構成でメール送信テストを行います。

zab1.png

まず、windowsマシン上でZabbix-AgentとZabbix-Serverを起動させます。Zabbix-Serverはdockerから起動し、監視対象から送られてくる統計情報を受け取ります。また、VMwareから起動したUbuntuにはZabbix-Agentをインストールし、Zabbix-Serverに対して統計情報を送信します。

Zabbix-ServerがZabbix-Agentから統計情報を受け取り、「Ubuntu上でのCPU使用率が高くなっている」と判断すると、Zabbix-Serverはアラーム通知用のgmailアカウントにログインして、システム管理者にgmailを送信します。

このシナリオを実際に作成し、gmailが正常に送信されることを確認します。

Zabbix Serverの導入

windowsにdockerを導入後、あらかじめ公式で用意されているdokcer composeを用いてサクッとZabbix Serverを建てます。

git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker
docker compose -f docker-compose_v3_centos_mysql_latest.yaml up -d

コンテナが立ち上がったら、http://localhost:80/ からWeb Interfaceにアクセスしてみます。ログイン画面が表示されればOKです。

正常にログイン画面が表示されたら、usernameをAdmin、passwordをzabbixでログインしてみましょう。

Zabbix Agentの導入

VMWare Workstation ProでUbuntuの仮想マシンを作成し、以下のコマンドを用いてZabbix agentをインストールします。

wget https://repo.zabbix.com/zabbix/6.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.4-1+ubuntu22.04_all.deb
dpkg -i zabbix-release_6.4-1+ubuntu22.04_all.deb
apt update
apt install zabbix-agent2

正常にインストールできたら、/etc/zabbix/zabbix_agent2.confの中を編集し、ServerとServerActiveのパラメータを0.0.0.0/0に設定してしまいます(横着してます)。また、Hostnameが「Zabbix Server」であることを確認します。

ここまでの設定・確認が終わったら、以下のコマンドでプロセスを再起動しましょう。

systemctl restart zabbix-agent2

また、後でAgent側のIPアドレスが必要になるので、「ip a」コマンドで控えておきましょう。

VMwareとdockerを共存させる際の注意点

Windows上でVMwareとdockerの両方を用いている場合、VMware側の仮想マシンが正常にDHCPからIPアドレスを受け取れない場合があります。これは、VMware側で接続しようとするNWが、通常(普段)使用しているNW(wifi等)ではなく、dockerで生み出された仮想的なNW構成側と接続することが原因らしいです(詳しいことはわかりませんが、、、)。

このような現象が発生すると、仮想NICにIPアドレスが割り振られないので外部と通信できなくなり、この後のgmail・シナリオテストができなくなります。これを防ぐためにVMWare上で、特定のネットワークと接続するように設定をする必要があります。

設定手順は以下になります。

  1. 「編集」→「仮想ネットワークエディタ」を選択
  2. 「設定の変更」を選択し、管理者権限を付与
  3. ブリッジ先を普段使っていそうなアダプタに変更
  4. 「適応」→「OK」

これにより、VMware側でも正常にIPアドレスが割り当てられます。

Zabbix Serverの設定

Zabbix ServerがZabbix Agentに対して監視統計情報をリクエストできるように、web Interfaceから設定を行います。「Data collection」メニューから「Hosts」を選択し、ページ中央あたりに出ている「Zabbix server」ホストを選択します。

zab2.png

設定画面が表示されるので、「interfaces」に先ほど控えたAgentのIPを入力して適用します。Hostsの画面上でAvailabilityの欄が緑色になればOKです(多少時間がかかるので何度かれフレッシュしましょう)。

Server/Agent間の疎通確認

ここまでで、Zabbix Serverとzabbix Agentの通信が可能となったはずなのでテストをしてみます。ここでは、Ubuntu仮想マシンのCPU使用率を意図的に上昇させることにより、Zabbix Serverでアラームが発報されることを確認します。

まずは、Zabbix Server上でアラームの発報頻度が上がるように設定を行います。「Data collection」メニューから「Templates」を選択します。表示されるページで「Name」の欄に"load"と入力し、「Apply」ボタンをクリックします。以下の画面のように表示されるはずです。

zab6.png

ここで、「Linux by Zabbix agent」の列が表示されると思います。この「Linux by Zabbix agent」テンプレートは、すでに先ほど設定した「Zabbix server」ホストと紐づいているので、このテンプレートの編集を行っていきましょう。

「Linux by Zabbix agent」の列の「items」をクリックします。その後表示される画面で「Name」の欄に"load"と入力し、「Apply」ボタンをクリックします。以下の画面のように、「Load average」の項目が表示されているはずです。

zab4.png

このうち、一番上に表示されている「Load average(1m avg)」をクリックし、「Update interval」を"10s"に設定します。また、Triggersをクリックすることで表示されるポップアップウィンドウから「Linux: load average is too high」をクリックします。これがCPU使用率によってアラーム発報させるためのトリガーとなります。

zab5.png

設定画面が表示されるので、Expressionの欄に以下のスクリプトを入力し、更新します。

min(/Linux by Zabbix agent/system.cpu.load[all,avg1],10s)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN} 

これで、発報頻度を上げることができました。

さて、実際にアラーム発報テストをしてみましょう。Ubuntu仮想マシンで以下のコマンドを何回か実行し、CPUの負荷を上昇させます。

yes > /dev/null &

数十秒待つとZabbix Web Interfaceにてアラームが発報されます。

zab7.png

これで、Server/Agent間の疎通確認ができました。先ほど負荷試験に使ったプロセスはkillしておきましょう。

Gmailテスト

次にZabbixサーバとGmailのつなぎこみを行いますが、このためにはGmailのアプリパスワードを取得する必要があります。https://myaccount.google.com/apppasswords から、任意のgoogleアカウントにログインし、アプリパスワードを控えておきましょう。ここからは、Zabbix Web Interfaceでの操作になります。「Alert」メニューから「Media Type」を選択します。表示された画面の「Email」列からStatusを「enable」にし、「Email」をクリックして設定画面に移ります。

zab8.png

設定画面では「Email propider」を「Gmail」にし、「Email」に先ほどログインしたアカウント、「Password」には控えたアプリパスワードを入力します。設定更新後、「Email」列の「Test」をクリックし、「Send to」にメール送信先を設定して、テストメールを送ってみましょう。

実際にメールを受信できれば、ZabbixサーバとGmailのつなぎこみは完了となります。

シナリオテストの設定

ここまでで、以下の図の赤枠・青枠で囲った部分の設定が完了しました。

zab9.png

そして、シナリオテストを行うためには「アラーム発報時にGmailを送信する」部分の設定を行う必要があります。まず、「Alerts」→「Actions」→「Trigger actions」から、「Report problems to Zabbix administrators」のステータスをenableにします。次に、「Users」→「Users」のadminをクリックし、「Media」の設定画面に移ります。

zab10.png

本設定画面で、「Send to」にメール送信先を設定し、設定を更新します。これで、すべての設定が完了しました!最後にシナリオテストを行ってみましょう。

シナリオテスト

以下のコマンドを数回実行してCPUに負荷をかけ、Zabbixでアラート発報したらGmail送信が行われることを確認します。

yes > /dev/null &

「Problem: Linux: Load average is too high (per CPU load over 1.5 for 5m)」みたいなメールが来ればOKです。これで、zabbixをちょっとだけ使えるようになりました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?