はじめに
個人的に GCP の無料枠で立ててるサーバを、Datadog の Free Plan で監視して Slack に通知してみたので、その際の設定メモを記載する
※自宅との VPN/BGP (こっちは有料) もしているのでそちらの監視もやってみた
Datadog も Slack も初心者なので間違いあればご容赦・ご指摘ください
記載内容は 2020.10.31 時点の状況
DataDog 無料枠
料金は公式ドキュメントから Free Plan を抜粋して記載(2020.10.31時点) (公式リンク)
項目 | 無料枠 |
---|---|
メトリクス | 1日 |
ホスト数 | 5 |
利用可能な機能 | ・400+ Integrations ・Host and Container Maps ・その他色々 |
14日間はフル機能を無料で試せて、15日目以降は上記の無料枠のプランになる
GCP は無料枠範囲であればホスト 1 台なので行けそう (GCP その他メトリクスもやってみたら取れたがどこが Free の上限か不明)
Free Plan の Alerts にチェックが入っていないので今後できなくなるかも? (下記の通り、今いまできている)
前提
Datadog
Datadog Free Trial 14日過ぎていて Free Plan になっているもの
Datadog GCP 連携
下記図・別記事に書いた通り Monitoring の連携済み
Qiita: Datadog の登録から始めて GCP のメトリクス・ログ投入まで
※ただし、ログは上記通り実施すると量がすごく、GCPの Egress トラフィック課金が出るので切っている
Slack
個人で無料で使っている Slack , Workspace
ここの例では「HomeLab」というワークスペースを作成して実施している
実施手順
- Datadog と Slack の連携
- Datadog でのモニタリング追加 (Slackへ通知)
- 発報試験
1. Datadog と Slack の連携
[Slack] 下記通りワークスペースの URL をメモする
[Slack] 連携するワークスペース内に Datadog から通知を受けるチャンネルを作成する
[Datadog] Datadog で Integrations
> Integrations
を選択し、Slack
を選択する
https://app.datadoghq.com/account/settings#integrations/slack
[Datadog] 上記画面の Connect Slack Account
をクリックしてワークスペースへコネクトする
[Datadog] 下記画面に遷移するので Slack へログインする
[Slack] slack アカウントの認証をする
[Slack] 認証が成功すると、下記でアクセス権限付与になるので 許可する
をクリックする
[Datadog] 下記画面に戻り、アカウント連携ができたことを確認できる
[Datadog] また、下記 URL で連携した Slack アカウントが確認可能
https://app.datadoghq.com/auth/integration/slack/connect-account
[Datadog] チャンネル登録を下記で実施する
[Slack] 上記完了すると、自動で Datadog アプリが Slack チャンネルに連携される
以上で、Datadog と Slack の連携が完了
2. Datadog でのモニタリング追加 (Slackへ通知)
ホスト監視
GCP の VM インスタンスに Datadog エージェント入れてないパターンで試してみた。(低スペックなので)
下記画面になるので、設定する
- Say what's happening
- Alert の通知内容が記載できる
- 例としては下記
- Title
- 例
- Monitor Host {{host.name}}
- 上記通りにすることで、ホスト名がタイトルに追加できる
- 例
- Message
- 例
- {{#is_alert}} Host Down {{/is_alert}}
- {{#is_alert_recovery}} Host Up {{/is_alert_recovery}}
- @slack-HomeLab-datadog-monitoring
- #で通知するタイミングでメッセージ内容を変えられる
- @で通知先を記載できる
- 今回は Slack なので
@slack
-[ワークスペース名]-[チャンネル名] で指定できる
- 今回は Slack なので
- 例
- Title
BGP 監視
GCP の BGP 監視も Integration
から作成してみる
VPN の監視もできるが、VPN 上でやっている BGP のセッション数を監視することにした
- Say what's happening
- Alert の通知内容が記載できる
- 例としては下記
- Title
- 例
- GCP BGP Session State Change Project Name [ {{project_id}} ]
- 上記通りにすることで、GCP のプロジェクト名がタイトルに出せる
- 例
- Message
- 例
- {{#is_alert}} BGP Neighbor down {{/is_alert}}
- {{#is_alert_recovery}} BGP Neighbor Up {{/is_alert_recovery}}
- @slack-HomeLab-datadog-monitoring
- 例
- Title
モニタリング確認
Monitors
> Manage Monitors
で下記画面にてモニタリング状況を確認できる
試しにホスト監視の状況を確認すると下記の通り時系列で状況がみれる (発報試験をした後にキャプチャしたので断が多い画像になっている)
3. 発報試験
ホスト監視
試しに VM インスタンスを poweroff / on して、下記発報を確認した
レスポンス悪く5分くらいしないと障害・復旧出なかったので、レスポンスよくするにはエージェント入れたほうがよさそうだった
BGP 監視
オンプレ側のルータで VPN インターフェース (VTI) を落として、下記発報を確認した
こちらも検知に 10 分くらいかかった。個人的なラボなんでこれでいいが商用環境とかでやるには別の方法が良さそう
おわりに
GCP を Datadog の Free Plan でモニタリングして Slack 通知を可能にした
Datadog の Free Plan の Alerts がずっと使えるのか?上限が有るのか?…ドキュメント見つからずわからない
できれば個人試験目的なので無料でやっていきたい
・今後
Slack 通知したグラフ画像が UTC で JST から9時間ずれたので修正方法を確認したい
他にも Datadog 初心者なので色々と試していきたい