zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

zabbixのアラートをslackに飛ばせなかった→自分自身にhttp(s)アクセス許可したら解決したメモ

【問題解決サマリ】

bageljp/zabbix-slack
https://github.com/bageljp/zabbix-slack/blob/master/slack.sh
を使ってzabbixのアラートをslackに飛ばそうとしたところ、shは叩かれているがタイムアウトした。
自分自身にhttp(s)アクセス許可したら解決した

【問題詳細】

Zabbixがalertを飛ばすタイミングで以下のようにプロセス自体はできているが、最終的にメッセージが飛んでいない状態だった

zabbix    8952  0.0  0.0 115224  3092 ?        S    17:18   0:00 /bin/bash -x /usr/lib/zabbix/alertscripts/slack.sh #alerttest ** alerttest_NG: Too many processes running on...

zabbixserverが自分自身にhttpsリクエストできないのが問題だった。
AWS EC2インスタンスで動作させていたため、セキュリティグループで自身のIPからの接続を許可したところ問題なくslackへのalertが届いた

【インストールメモ】

【参考手順】

https://qiita.com/wapa5pow/items/2327561493015a833c97
https://github.com/bageljp/zabbix-slack
https://qiita.com/tdkaoru/items/7ad9e28cf592f10849df

# アラートスクリプトの置き場所を確認する

grep AlertScripts /etc/zabbix/zabbix_server.conf
→AlertScriptsPath=/usr/lib/zabbix/alertscripts

# インストール

cd /usr/local/share/zabbix/alertscripts
wget https://raw.githubusercontent.com/bageljp/zabbix-slack/master/slack.sh
chmod a+x slack.sh

# slackのwebhookURLを用意
slackのアカウント、チャンネルをご用意いただいた上で
https://my.slack.com/services/new/incoming-webhook
でwebhookURLを取得しておきます。

# slack.shを編集

slack_url='https://hooks.slack.com/services/XXX/XXXX/XXXXX'
zabbix_baseurl="http://zabbix.example.com"
zabbix_username="yourzabbixusername"
zabbix_password="zabbixpassword"

# Zabbixがスクリプトを利用してアラートを通知するように設定する
(以下省略、上記参考手順をご確認下さい)