今回の目的は、ある特定のサービスをZabbixで監視し、停止または起動を検知した際に自動でLINEに通知するというもの。
もちろん、ZabbixからLINEへは直接通知できませんので、この2つの間にIFTTT(イフト)というWEBサービス連携を利用します。
IFTTTとLINE Notifyの準備
現在のIFTTTでは、LINEを使ったレシピを作成することができません。(昔はできてたような…)
そこで、まずは以下のサイトを参考にIFTTTとLINE Notifyと連携して、IFTTTでレシピを作成できるようにしておきましょう。
レシピの作成
早速作っていきます。
「Create」ボタンを押し、以下のように選択していきます。
- If This
- 「If This」の「Choose a service」で「Email」を選択。
「Choose a trigger」で「Send IFTTT any email」を選択。 - Then That
- 「Then That」の「Choose a service」で「LINE」を選択。
「Choose an action」は「Send message」しかありませんね。
これでレシピができました!
「My Applets」の中に
1 |
If Send trigger@applet.ifttt.com any email from sample@example.com, then Send message |
が追加されていると思います。
少しだけ説明すると、
1 |
sample@example.comからtrigger@applet.ifttt.comに対してメールを送信したら、そのメッセージをLINEに送信します |
という内容です。
Zabbixの設定
先程の説明をZabbix側で設定すると、
- メディアタイプに送信元メールアドレスとして「sample@example.com」を追加
- ユーザーのメディアに送信先メールアドレスとして「trigger@applet.ifttt.com」を追加
あとは、アクションの実行内容で使用するメディアに、上記で追加したメディアを指定してあげれば完了です。
この辺りは、以前送信元のメールアドレスとしてGmailの設定をした際の記事が参考になると思います。
これで、Zabbixで障害を検知したらLINEに通知されるはずですのでお試しください。
IFTTTのLINE設定について補足
IFTTTで設定するLINEの「Send message」には3種類の設定項目があります。
- Recipient
- Message
- Photo URL
実は、通知先は1対1だけでなく、LINEグループを指定することでグループ全員に同時に通知することもできます。
通知したいグループにLINE Notifyを追加し、「Recipient」でそのグループをしていするだけです。また、Zabbixのアクションで件名やメッセージを決めるのですが、通知する際にLINEが勝手に改行やURLなど、メッセージのフォーマットを変えてしまいます。
そこで「Message」の設定で、以下のように生メッセージを通知させるように設定することをお勧めします。
1 2 |
<pre>{{Subject}} {{Body}}</pre> |
最後の「Photo URL」は不要ですね。。
画像があるとブランド感が出てカッコイイかなと思ったのですが、無駄にスクロールしなくちゃならないので、ここは空にしました。以上で完了です!
お疲れ様でした。
コメント