監視サーバーをAWS上で構築し、CML上のネットワーク機器/サーバーを監視します。監視ソフトウェアはZabbixを利用します。
【前回】AWS上での監視サーバー(Zabbix)構築【8.監視登録(SNMP Trap)】
【次回】AWS上での監視サーバー(Zabbix)構築【10.メール通知(SES)】
ネットワーク構成
下記のネットワーク環境を構築し、AWS上のEC2(Zabbixサーバー)から、CML上のネットワーク機器/サーバーを監視できるようにしていきます。
![ネットワーク構成](https://infrastructure-engineer.com/wp-content/uploads/2021/08/000-3-1024x239.png)
Zabbixからのメール通知(AWSのSNSを利用)
AWS上のZabbixからメールを送信する場合、SNSやSES等のAWSのサービスを利用する方法があります。今回は、SNSを利用したメール送信方法を説明します。
【AWS】SNSのトピック作成
SNSの「トピックの作成」をクリックします。
![SNSのトピックの作成開始](https://infrastructure-engineer.com/wp-content/uploads/2021/10/001-1-1024x541.jpg)
タイプは、「スタンダード」を選択します。名前は、「Zabbix-Alert-Notification」としています。
![トピックの作成](https://infrastructure-engineer.com/wp-content/uploads/2021/10/002-3-1024x465.jpg)
その他オプションは、そのままで大丈夫です。「トピックの作成」をクリックします。
![トピックの作成](https://infrastructure-engineer.com/wp-content/uploads/2021/10/003-1-1024x449.jpg)
トピックが作成されたことを確認します。※表示される”ARN”をメモしておきます。
![トピックの作成確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/004-1-1024x541.jpg)
【AWS】SNSのサブスクリプション作成
SNSの「サブスクリプションの作成」をクリックします。
![SNSのサブスクリプション作成開始](https://infrastructure-engineer.com/wp-content/uploads/2021/10/005-1024x541.jpg)
下記の通り入力し、「サブスクリプションの作成」をクリックします。
トピックARN:先ほど作成したトピックを選択
プロトコル:Eメールを選択
エンドポイント:送信先のメールアドレスを入力
![SNSのサブスクリプション作成](https://infrastructure-engineer.com/wp-content/uploads/2021/10/006-1024x469.jpg)
![](https://infrastructure-engineer.com/wp-content/uploads/2021/10/007-1024x214.jpg)
サブスクリプションの作成後はステータスが「保留中の確認」となっています。
![SNSのサブスクリプション作成直後](https://infrastructure-engineer.com/wp-content/uploads/2021/10/008-1024x541.jpg)
指定したメールアドレス宛に確認のメールが送信されるので、「Confirm subscription」をクリックします。
![SNSのサブスクリプションの認証メール確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/009-1024x303.jpg)
以下の画面が表示されれば、メールアドレスの確認は完了です。
![SNSのサブスクリプションの認証完了](https://infrastructure-engineer.com/wp-content/uploads/2021/10/010-1024x459.jpg)
サブスクリプションのステータスも、「確認済み」に変わります。
![SNSのサブスクリプション作成完了](https://infrastructure-engineer.com/wp-content/uploads/2021/10/011-1024x541.jpg)
【AWS】メッセージ発行のテスト
作成したトピックの「メッセージの発行」をクリックします。
![メッセージの発行テスト開始](https://infrastructure-engineer.com/wp-content/uploads/2021/10/012-1024x567.jpg)
件名とメッセージ本文を入力し、「メッセージの発行」をクリックします。
![メッセージの発行テスト](https://infrastructure-engineer.com/wp-content/uploads/2021/10/013-1024x333.jpg)
![メッセージの発行テスト](https://infrastructure-engineer.com/wp-content/uploads/2021/10/014-1024x458.jpg)
![](https://infrastructure-engineer.com/wp-content/uploads/2021/10/015-1024x245.jpg)
下記のようなメールが送信されることを確認します。
![メッセージの発行テストのメール確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/016-1024x290.jpg)
【Zabbix】メディアタイプの作成
Zabbixの「管理」→「メディアタイプ」から、「メディアタイプの作成」をクリックします。
![Zabbixのメディアタイプの作成開始](https://infrastructure-engineer.com/wp-content/uploads/2021/10/017-1-1024x271.jpg)
下記の通り入力し、「追加」をクリックします。
名前:SNS-Alert-Notification ※任意の名前
タイプ:スクリプトを選択
スクリプト名:sns_notification.sh ※任意の名前
スクリプトパラメータ:下記の3つを追加
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
![Zabbixのメディアタイプの作成](https://infrastructure-engineer.com/wp-content/uploads/2021/10/018-1-1024x596.jpg)
メディアタイプが追加されたことを確認します。
![Zabbixのメディアタイプの作成確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/019-1-1024x325.jpg)
【Zabbix】スクリプトの作成
メディアタイプから実行するスクリプトを作成します。
ZabbixをインストールしたEC2にSSHログインし、下記を実行します。
cd /usr/lib/zabbix/alertscripts/
sudo vi sns_notification.sh
下記を記述します。
#!/bin/sh
TOPIC_ARN=$1
SUBJECT=$2
MESSAGE=$3
echo "`date` $TOPIC_ARN $SUBJECT" >> /tmp/zabbix-sns.log
if [ "$SUBJECT" = "" -o "$TOPIC_ARN" = "" ]; then
echo "usage: $0 {ARN SUBJECT MESSAGE}"
exit 1
fi
if [ "$MESSAGE" = "" ]; then
MESSAGE=$SUBJECT
fi
aws sns publish --topic-arn $TOPIC_ARN --subject "$SUBJECT" --message "$MESSAGE"
作成したスクリプトに実行権限を付与します。
sudo chmod +x sns_notification.sh
ログ保存用のファイルを作成し書き込み権限を付与します。
touch /tmp/zabbix-sns.log
sudo chmod 666 /tmp/zabbix-sns.log
【Zabbix】スクリプトのテスト
作成したスクリプトが問題なく動作することを確認します。※XXX部分は作成したSNSのARNを入力します。
./sns_notification.sh arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:Zabbix-Alert-Notification "TEST - scripts" "test - scripts"
[ec2-user@ip-10-0-0-100 alertscripts]$ ./sns_notification.sh arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:Zabbix-Alert-Notification "TEST - scripts" "test - scripts"
{
"MessageId": "f4a7b962-25c3-5e7b-a1e1-e0b74a47122c"
}
[ec2-user@ip-10-0-0-100 alertscripts]$
下記のようなメールが送信されることを確認します。
![](https://infrastructure-engineer.com/wp-content/uploads/2021/10/020-1024x281.jpg)
ログに出力されていることを確認します。
cat /tmp/zabbix-sns.log
[ec2-user@ip-10-0-0-100 alertscripts]$ cat /tmp/zabbix-sns.log
XXXX年 XX月 X日 X曜日 XX:XX:XX JST arn:aws:sns:ap-northeast-1:XXXXXXXXXXXX:Zabbix-Alert-Notification TEST - scripts
【Zabbix】メディアタイプのテスト
作成したメディアタイプの「テスト」をクリックします。
![Zabbixのメディアタイプのテスト開始](https://infrastructure-engineer.com/wp-content/uploads/2021/10/021-1024x302.jpg)
下記の通り入力し、「テスト」をクリックします。
送信先:トピックのARNを入力
件名:任意の内容を入力
メッセージ:任意の内容を入力
![Zabbixのメディアタイプのテスト](https://infrastructure-engineer.com/wp-content/uploads/2021/10/022-1024x598.jpg)
「メディアタイプのテストに成功しました。」と表示されれば、テストは成功です。
![ZabbixのメディアタイプのテストOK](https://infrastructure-engineer.com/wp-content/uploads/2021/10/023-1-1024x598.jpg)
下記のようなメールが送信されることを確認します。
![Zabbixのメディアタイプのテストのメール確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/024-1024x286.jpg)
「メディアタイプのテストに失敗しました。」と表示される場合は、下記を参照してください。
メディアタイプのテストに失敗しました。
– You must specify a region. You can also configure your region by running “aws configure”.
![ZabbixのメディアタイプのテストNG](https://infrastructure-engineer.com/wp-content/uploads/2021/10/025-1-1024x598.jpg)
【Zabbix】ユーザーのメディアに登録
「管理」→「ユーザー」から、「Admin」をクリックします。
![Zabbixのユーザーのメディア登録](https://infrastructure-engineer.com/wp-content/uploads/2021/10/026-1-1024x327.jpg)
「メディア」をクリックします。
![Zabbixのユーザーのメディア登録](https://infrastructure-engineer.com/wp-content/uploads/2021/10/027-1024x494.jpg)
「追加」をクリックします。
![Zabbixのユーザーのメディア登録](https://infrastructure-engineer.com/wp-content/uploads/2021/10/028-1024x227.jpg)
下記の通り入力し、「追加」をクリックします。
タイプ:作成したメディアタイプを選択
送信先:トピックのARNを入力
有効な時間帯:任意入力
指定した深刻度の時に利用:任意でチェック
有効:チェックを入れる
![Zabbixのユーザーのメディア登録](https://infrastructure-engineer.com/wp-content/uploads/2021/10/029-1024x598.jpg)
メディアに追加されていることを確認し、「更新」をクリックします。
![](https://infrastructure-engineer.com/wp-content/uploads/2021/10/030-1-1024x241.jpg)
【Zabbix】アクションの作成
ここでは、ServerへのICMPノード監視で障害を検知した場合に、メールが送信されるようにします。
「設定」→「アクション」から、イベントソースで「トリガー」を選択し、「アクションの作成」をクリックします。
![Zabbixのアクションの作成開始](https://infrastructure-engineer.com/wp-content/uploads/2021/10/031-1024x305.jpg)
任意の名前を入力します。ここでは、「SNS-Alert-Action」としています。
![Zabbixのアクションの名前入力](https://infrastructure-engineer.com/wp-content/uploads/2021/10/032-1024x345.jpg)
新規条件で「トリガー」を選択し、”unavailable by icmp ping”と入力し、「Server: Unavailable by ICMP ping」を選択します。
![Zabbixのアクションの実行条件選択](https://infrastructure-engineer.com/wp-content/uploads/2021/10/033-1024x598.jpg)
対象のトリガーが選択されたことを確認し、「追加」をクリックします。
![Zabbixのアクションの実行条件の追加](https://infrastructure-engineer.com/wp-content/uploads/2021/10/034-1024x360.jpg)
実行条件に追加されたことを確認します。
![Zabbixのアクションの実行条件の追加確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/035-1024x363.jpg)
「実行内容」を選択し、「新規」をクリックします。
![Zabbixのアクションの実行内容の追加](https://infrastructure-engineer.com/wp-content/uploads/2021/10/036-1024x404.jpg)
「ユーザーに送信」の「追加」をクリックします。
![Zabbixのアクションの実行内容のユーザー追加](https://infrastructure-engineer.com/wp-content/uploads/2021/10/037-1024x598.jpg)
「Admin」にチェックを入れ、「選択」をクリックします。
![Zabbixのアクションの実行内容のユーザー追加](https://infrastructure-engineer.com/wp-content/uploads/2021/10/038-1024x598.jpg)
「次のメディアのみ使用」で、作成したメディアタイプを選択します。
![Zabbixのアクションの実行内容のメディアの選択](https://infrastructure-engineer.com/wp-content/uploads/2021/10/039-1024x598.jpg)
選択した「ユーザーに送信」と「次のメディアのみ使用」を確認し、「追加」をクリックします。
![Zabbixのアクションの実行内容の追加](https://infrastructure-engineer.com/wp-content/uploads/2021/10/040-1024x598.jpg)
実行内容に追加されたことを確認し、「追加」をクリックします。
![Zabbixのアクションの実行内容の追加](https://infrastructure-engineer.com/wp-content/uploads/2021/10/041-1024x427.jpg)
アクションが追加されたことを確認します。
![Zabbixのアクションの作成確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/042-1024x363.jpg)
障害検知の確認
ICMPノード監視の登録方法は下記を参照してください。
AWS上での監視サーバー(Zabbix)構築【6.監視登録(ICMPノード監視)】
Router1のGi0/1をshutdownし、Serverへの疎通が通らないようにします。
int Gi0/1
shut
Zabbix上で、Serverの障害が検知されることを確認します。
![Serverの障害検知](https://infrastructure-engineer.com/wp-content/uploads/2021/10/043-1024x220.jpg)
アクションにマウスカーソルを当てると、アクションが実行されていることが分かります。
![](https://infrastructure-engineer.com/wp-content/uploads/2021/10/044-2-1024x265.jpg)
下記のようなメールが送信されることを確認します。メール本文に対象のホスト名等が表記されます。
![Serverの障害検知のメール確認](https://infrastructure-engineer.com/wp-content/uploads/2021/10/045-1024x409.jpg)
以上で、AWS上での監視サーバー(Zabbix)構築【9.メール通知(SNS)】の説明は完了です!
【前回】AWS上での監視サーバー(Zabbix)構築【8.監視登録(SNMP Trap)】
【次回】AWS上での監視サーバー(Zabbix)構築【10.メール通知(SES)】