タイガー!タイガー!じれったいぞー!(SE編)

AS400, Java, JavaEE, JSF等の開発、習慣など。日々の気づきをまとめたブログ(備忘録)

ZabbixからのアラートがSlackに送信されない問題

Zabbixを使って、組織内のネットワーク機器やサーバ、アプリケーションの監視を行うようになって、もう6~7年になりますか。

導入当初から、障害発生アラートは「メール」ではなく「チャット」に通知させたいと思って、Slack に送信するようにしてきました。

この運用が実に最高で、いつどこにいても「アラートが来ていない」つまりは「保守対象の機器やアプリには異常がない!」という「安心」を手に入れることができるようになりました。

その反対に、エラーが起きると、夜中だろうが朝方だろうが、ただちにSlackに通知が来るので、連発して飛んでくると生きた心地がしないという「デメリット」もございます。

そんな中、今週はじめに、大画面のモニターには「Zabixアラート」が発生しているにもかかわらず、Slackに通知が届かないことが発覚しました!

環境はこちら。

  • CentOS 7.6(Docker 19.03.2)
  • Zabbix 3.4

f:id:no14141:20210521164751p:plain

Webコンソールで見てみると、送信済みにはなっているではないですか!

おかしい!

メニュー「管理」の「メディアタイプ」にある Slack のアクションテストで、送信テストを行ったら、きちんとチャットされるのですよ。。摩訶不思議!!

頻繁に障害が発生するわけではないので、いつから届かなくなっていたかは不明なのですが、おそらく4月下旬の時には、アラートが上がるはずが上がっていないことがわかったので、少なくても4月下旬以前より、Zabbix からの Slack送信 が行われない状況が続いていたと思われます。

まずい、これでは業務外時の安心感を失ってしまうぞぉ!!!

この原因調査をメンバーに託したところ、見事解決してくれました(感謝!)。

障害の原因

アラートメッセージの改行コードの問題だったようです。

下記が元々のメッセージ設定になります。

f:id:no14141:20210522113036j:plain

f:id:no14141:20210522113051j:plain

Slack側の仕様変更かがあったかは不明ですが、エスケープ文字を入力したことで、
無事にアラート通知、復旧通知のメッセージが届くようになりました。

新:デフォルト・メッセージ設定

// textarea 内で改行はしないこと。

Hostname: {HOST.NAME1}\nIP address: {HOST.IP1}\nDate: {EVENT.DATE}  {EVENT.TIME} \nDescription: {TRIGGER.NAME}\nSeverity: {TRIGGER.SEVERITY}\n\nItem values: {ITEM.NAME1}: {ITEM.VALUE1}

まとめ

さすがに定期的にアラート通知確認を行うのは厳しいかもしれません。

しかし、そんなことはございません。

サーバメンテナンスを行う際に、確実にアラートが上がる場面で、Slackのチャットをきちんと確認する。

手順にそれを追加するだけで、安心を手に入れられるでしょう。

まあ、復旧してよかったです。

アラートが発生しない世界が最高なのですが、モノなので壊れないわけがないですね。

OKでございまーす!!!