AmazonConnectによる自動電話通知(5.EC2/ZABBIXとの連携)

AmazonConnectによる自動電話通知(5.EC2/ZABBIXとの連携)

【前回】AmazonConnectによる自動電話通知(4.Lambdaによる起動)
【次回】AmazonConnectによる自動電話通知(6.ユーザー入力による応答確認)
【簡易版】AmazonConnectによる自動電話通知(まとめ)

監視サーバーで障害を検知した際に、自動で電話通知できるようにしていきます。ネットワークエンジニアも利用することの多い監視サーバー(Zabbix)で障害検知し、AWS上のAmazonConnectを利用し自動電話を発信します。

AmzonConnectでの自動電話発信イメージ
自動電話通知イメージ

EC2上でのZabbixの構築はこちらを参照してください。

AWS上での監視サーバー(Zabbix)構築

【Zabbix】メディアタイプの作成

Zabbixの「管理」→「メディアタイプ」から、「メディアタイプの作成」をクリックします。

メディアタイプの作成開始

下記の通り入力し、「追加」をクリックします。

名前:AmazonConnect-Alert-Notification ※任意の名前
タイプ:スクリプトを選択
スクリプト名:amazonconnect_notification.sh ※任意の名前

メディアタイプの作成

メディアタイプが追加されたことを確認します。

メディアタイプの作成確認

【Zabbix】スクリプトの作成

メディアタイプから実行するスクリプトを作成します。

ZabbixをインストールしたEC2にSSHログインし、下記を実行します。

cd /usr/lib/zabbix/alertscripts/
sudo vi amazonconnect_notification.sh

下記を記述します。

#!/bin/sh

echo "`date` Amazon Connect Notification" >> /tmp/zabbix-amazonconnect.log

aws lambda invoke --function-name AmazonConnectTest-001 --payload '' /usr/lib/zabbix/alertscripts/response.json

作成したスクリプトに実行権限を付与します。

sudo chmod +x amazonconnect_notification.sh

ログ保存用とレスポンス用のファイルを作成し書き込み権限を付与します。

touch /tmp/zabbix-amazonconnect.log
sudo chmod 666 /tmp/zabbix-amazonconnect.log

touch /usr/lib/zabbix/alertscripts/response.json
sudo chmod 666 /usr/lib/zabbix/alertscripts/response.json

【Zabbix】スクリプトのテスト

作成したスクリプトが問題なく動作することを確認します。※アンダーライン部分はメールアドレスを入力します。

./amazonconnect_notification.sh
[ec2-user@ip-10-0-0-100 alertscripts]$ ./amazonconnect_notification.sh 
{
    "ExecutedVersion": "$LATEST", 
    "StatusCode": 200
}

発信先の番号に着信があり、問い合わせフローで設定した音声が再生されることを確認します。

下記のようなエラーが出力される場合は、レスポンス用ファイル(response.json)の指定、作成、アクセス権限を確認してください。

[Errno 13] Permission denied: u’response.json’

ログに出力されていることを確認します。

cat /tmp/zabbix-amazonconnect.log
[ec2-user@ip-10-0-0-100 alertscripts]$ cat /tmp/zabbix-amazonconnect.log
XXXX年 XX月  X日 X曜日 XX:XX:XX JST Amazon Connect Notification

【Zabbix】メディアタイプのテスト

作成したメディアタイプの「テスト」をクリックします。

メディアタイプのテスト開始

下記の通り入力し、「テスト」をクリックします。※今回は、AmazonConnectで定型文を読み上げるだけのため、全て任意の文字列で大丈夫です。

送信先:AmazonConnect ※任意の文字列
件名:TEST – Amazonconnect – メディアタイプのテスト ※任意の文字列
メッセージ:test – AmazonConnect – メディアタイプのテスト ※任意の文字列

メディアタイプのテスト

「メディアタイプのテストに成功しました。」と表示されれば、テストは成功です。

メディアタイプのテストOK

発信先の番号に着信があり、問い合わせフローで設定した音声が再生されることを確認します。

【Zabbix】ユーザーのメディアに登録

「管理」→「ユーザー」から、「Admin」をクリックします。

メディアの登録開始

「メディア」をクリックします。

メディアの登録

「追加」をクリックします。

メディアの登録

下記の通り入力し、「追加」をクリックします。

タイプ:作成したメディアタイプを選択
送信先:AmazonConnect ※任意の文字列
有効な時間帯:任意入力
指定した深刻度の時に利用:任意でチェック
有効:チェックを入れる

メディアの登録

メディアに追加されていることを確認し、「更新」をクリックします。

メディアの登録

【Zabbix】アクションの作成

ここでは、ServerへのICMPノード監視で障害を検知した場合に、メールが送信されるようにします。

「設定」→「アクション」から、イベントソースで「トリガー」を選択し、「アクションの作成」をクリックします。

アクションの作成開始

任意の名前を入力します。ここでは、「AmazonConnect-Alert-Action」としています。

アクションの作成

新規条件で「トリガー」を選択し、”unavailable by icmp ping”と入力し、「Server: Unavailable by ICMP ping」を選択します。

アクションの作成

対象のトリガーが選択されたことを確認し、「追加」をクリックします。

アクションの作成

実行条件に追加されたことを確認します。

アクションの作成

「実行内容」を選択し、「新規」をクリックします。

アクションの作成

「ユーザーに送信」の「追加」をクリックします。

アクションの作成

「Admin」にチェックを入れ、「選択」をクリックします。

アクションの作成

「次のメディアのみ使用」で、作成したメディアタイプを選択します。

アクションの作成

選択した「ユーザーに送信」と「次のメディアのみ使用」を確認し、「追加」をクリックします。

アクションの作成

実行内容に追加されたことを確認し、「追加」をクリックします。

アクションの作成

アクションが追加されたことを確認します。

アクションの作成確認

障害検知の確認

ICMPノード監視の登録方法は下記を参照してください。
AWS上での監視サーバー(Zabbix)構築【6.監視登録(ICMPノード監視)】

ネットワーク構成

Router1のGi0/1をshutdownし、Serverへの疎通が通らないようにします。

Router1
int Gi0/1
shut

Zabbix上で、Serverの障害が検知されることを確認します。

障害検知

アクションにマウスカーソルを当てると、アクションが実行されていることが分かります。

発信先の番号に着信があり、問い合わせフローで設定した音声が再生されることを確認します。

以上で、AmazonConnectによる自動電話通知(5.EC2/ZABBIXとの連携)の説明は完了です!

【前回】AmazonConnectによる自動電話通知(4.Lambdaによる起動)
【次回】AmazonConnectによる自動電話通知(6.ユーザー入力による応答確認)
【簡易版】AmazonConnectによる自動電話通知(まとめ)

  • URLをコピーしました!
  • URLをコピーしました!
目次