TrueNAS (旧: FreeNAS) のアラートをWebhookでDiscordと連携する方法
自宅に設置しているNASのOSに TrueNAS (旧: FreeNAS) を使用しているが、システム異常時にアラートを送信してくれる機能がある。
メールでのアラートは設定しているのもの、埋もれてしまうこともあり、すぐ対処できなかったことがあるので、個人用Discordサーバのチャンネルに投げるようにする方法を備忘録として書く。
故障の前兆を見逃さないの大切。
環境
OS: TrueNAS CORE
OSバージョン: TrueNAS-12.0-RELEASE
Discordに投げる方法を考える
Slack連携機能が実装されているらしい
TrueNASがサポートしているアラート送信方法を確認していると、Slack
の文字を発見した。
TrueNASがサポートしているアラート送信方法
Slack
を選択してみる。
Slack
を選択
WebhookのURLを要求しているので、求めているモノに近いがSlack用であり、Discordにはそのまま使えない。
プログラムを書くとしても、TrueNASに組み込むのはアップデートで動かなくなったりする可能性があるので出来るだけ避けたいところ。
DiscordのWebhookにはSlack互換機能がある
いい情報がないかなと Discord開発者向けドキュメント/Webhook を見てみると、Slack互換機能 というものを発見。これはウレシイ…!!
やり方
DiscordのWebhook URLを発行する
- Discordで目的のサーバを表示
-
サーバ設定
>連携サービス
>ウェブフック
>ウェブフックを作成
- Botの
名前
や投稿用チャンネル
、アイコン
を設定して保存 -
ウェブフックURLをコピー
をクリック
https://discordapp.com/api/webhooks/{webhook.id}/{webhook.token}
というWebhook URLがクリップボードにコピーされる
DiscordのWebhookのSlack互換機能を使う
発行されたWebhook URLの末尾に /slack
をつけるだけ。
つまり、https://discordapp.com/api/webhooks/{webhook.id}/{webhook.token}/slack
というWebhook URLが出来上がる。
TrueNASのSlack連携機能に登録する
- TrueNASのWeb UIにログイン
-
システム
>アラートサービス
>ADD
-
Name
に任意の名前、Type
をSlack
に設定 - DiscordのWebhookのSlack互換機能を使う で作ったWebhook URLを入力
- アラートするレベルはお好みで設定
こんな感じ
テストする
SEND TEST ALERT
をクリック。
Succeeded
Succeeded
とTrueNASが言ってきたら成功。
もちろん、Discord側にアラートが届いている。
This is a test alert
設定の適用
TrueNASのWeb UI側で SUBMIT
をクリックすることで初めて適用されるので忘れない。
あとがき
DiscordのWebhookのSlack互換機能めっちゃ便利だなと思いつつ、逆 (SlackのWebhookのDiscord互換機能) はないのか調べてみたが、見つけられず。
互換機能って割と助かる。ありがたい。
一家に一台TrueNASは良いぞ💪
Discussion