search
LoginSignup
0
Help us understand the problem. What are the problem?

posted at

updated at

Zabbix⇒Amazon SNS連携手順

1 はじめに

 Zabbix⇒Amazon SNSの連携手順を書いていきます。
※ほとんど自分用の記事ですが、何かの参考になれば。

AWS EC2
CentOS8 Stream
Zabbix 5.0.13
MySQL / Apache + PHP

2 AWSまわりの設定

2-1 IAMの作成・設定


WS0022.JPG

WS0023.JPG

WS0024.JPG

WS0025.JPG

WS0026.JPG
※権限については、より制限したい場合は変更してください。


WS0027.JPG
※タグは自由に


WS0028.JPG

WS0029.JPG
※CSVはダウンロードしてください。

2-2 Amazon SNSのトピック作成・設定


WS0030.JPG

WS0031.JPG

WS0032.JPG

WS0033.JPG

WS0034.JPG

WS0035.JPG

WS0036.JPG

WS0037.JPG

a.jpg

⑩こんな感じのメールが届きます。
WS0039.JPG

WS0040.JPG

WS0041.JPG

3 Zabbixまわりの設定

3-1 スクリプト作成

①スクリプトを作成します

vi /usr/lib/zabbix/alertscripts/awssns.sh
/usr/lib/zabbix/alertscripts/awssns.sh
#!/bin/sh

TOPIC_ARN=$1
SUBJECT=$2
MESSAGE=$3

echo "`date` $TOPIC_ARN $SUBJECT" >> /var/log/zabbix/awssns.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 755 /usr/lib/zabbix/alertscripts/awssns.sh
chown zabbix:zabbix /usr/lib/zabbix/alertscripts/awssns.sh

3-2 AWS連携設定

①AWSコマンドをインストール

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
aws --version

②Zabbixユーザー用の連携設定の作成

mkdir /var/lib/zabbix
mkdir /var/lib/zabbix/.aws
touch /var/lib/zabbix/.aws/credentials
touch /var/lib/zabbix/.aws/config
chmod 755 /var/lib/zabbix/.aws/c*
chown zabbix:zabbix /var/lib/zabbix/.aws/c*

③AWS連携設定

aws configure
root/awsconfigure
AWS Access Key ID : 2-1⑧を入力
AWS Secret Access Key : 2-1⑧を入力
Default region name : ap-northeast-1
Default output format : json
cat /etc/passwd | grep zabbix
su -s /bin/bash - zabbix
aws configure
zabbix/awsconfigure
AWS Access Key ID : 2-1⑧を入力
AWS Secret Access Key : 2-1⑧を入力
Default region name : ap-northeast-1
Default output format : json
aws configure list

3-3 メディアタイプの設定


WS0042.JPG

WS0043.JPG

WS0044.JPG

名前:Amazon SNS
スクリプト名:awssns.sh
パラメータ:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}


WS0063.JPG

WS0061.JPG

■障害
件名:【障害連絡】{HOST.NAME1} {EVENT.NAME}
メッセージ:
Zabbixから障害イベントが通知されました。
発生日時:{EVENT.DATE} {EVENT.TIME}
ホスト名:{HOST.NAME1}
障害の深刻度:{TRIGGER.SEVERITY}
アラート名:{EVENT.NAME}
最新データ値:{ITEM.LASTVALUE1}
■障害復旧
件名:【復旧連絡】{HOST.NAME1} {EVENT.RECOVERY.NAME}
メッセージ:
Zabbixから復旧イベントが通知されました。
復旧日時:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
ホスト名:{HOST.NAME1}
アラート名:{EVENT.RECOVERY.NAME}
障害継続時間:{EVENT.DURATION}
最新データ値:{ITEM.LASTVALUE1}


WS0062.JPG

3-4 ユーザーの設定


WS0045.JPG


WS0046.JPG


WS0047.JPG
2-2⑥を入力


WS0052.JPG

3-5 アクションの設定

WS0049.JPG
WS0057.JPG
WS0050.JPG
※名前は任意
※実行条件は任意
WS0051.JPG
WS0055.JPG
WS0056.JPG

4 参考文献(偉大なる先人たち)

https://hacknote.jp/archives/6587/
https://qiita.com/shin1x1/items/0350db7a8c2752b99e5c
https://qiita.com/akikinyan/items/94c2a9dbe37fc90b2658
https://qiita.com/t-yasukawa/items/ae0386d028afea5cfb7a

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
What you can do with signing up
0
Help us understand the problem. What are the problem?