今までslackとchatworkにしてたんですけど新たにMicrosoftがやってるTearmsというのを導入することになったので障害通知を飛ばしてみました。
とりあえずzabbixに配置するスクリプトは以下。
#!/bin/bash # Teams incoming web-hook URL url='https://outlook.office.com/webhook/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' curlheader='-H "Content-Type: application/json"' agent='-A "zabbix-teams-alertscript / https://github.com/ericoc/zabbix-slack-alertscript"' curlmaxtime='-m 60' #zabbixのスクリプトパラメータから取得 subject="$1" #Subjectが障害発生か復旧か判断 # echo $1 |grep 障害 if [[ "$?" -eq 1 ]]; then #復旧時は緑 THEMECOLOR='43EA00' else #障害時は赤 THEMECOLOR='EA4300' fi #zabbixのスクリプトパラメータから取得 message="${subject}: $2" payload=\""{\\\"title\\\": \\\"${status} \\\", \\\"text\\\": \\\"${message} \\\", \\\"themeColor\\\": \\\"${THEMECOLOR}\\\"}"\" curldata=$(echo -d "$payload") eval curl $curlmaxtime $curlheader $curldata $url $agent
zabbix側ではスクリプトパラメータで {ALERT.SUBJECT} {ALERT.MESSAGE} を設定。
スクリプトパラメータで直接{{TRIGGER.STATUS} を受け取りたかったけどできない模様。 そのためSubjectから障害or復旧を判断する(2byte文字なのがイケてない)
最終的にこんな漢字でポストされる
まとめ
slackみたいにアイコンまで変えたい
以上