AWSでアラートをSNSで使用していると、他のアラートもSNSに統一したくなります。
zabbixの管理画面で
メディアタイプ > メディアタイプの作成
名前: SNS-Alert タイプ: スクリプト スクリプト名: sns_send.sh
で作成します。
ユーザーの詳細画面 > メディア > 追加
タイプ: SNS-Alert 送信先: {SNSのARN}
で作成します。
ZabbixServerの方で
vim /usr/lib/zabbix/alertscripts/sns_send.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" --- chmod +x /usr/lib/zabbix/alertscripts/sns_send.sh
という形でスクリプトを配置し、awscliをzabbixユーザーから実行できるようにしておきます。
sudo -u zabbix aws configure --- access key, secret key など設定 ---
でSNSでアラートを飛ばすことができます。