目次

Datadogを利用した、無料で利用できる自宅サーバ監視と非監視時間の設定


はじめに

Datadogとは、SaaSのログ監視サービスのこと。最低価格が1ホストあたり$15/Month (2021.04.25時点)という価格設定で個人ではとてもじゃないが利用できない、かと思いきや、5台まではFreeプランで利用できる。

また、現在のところ、モニター(Slack連携や外部メトリック通知)などに関してはFreeプランの範囲内とも範囲外とも記載がない。記載がないが、現在のところ利用できる。こちらを利用して自宅サーバの監視とSlack連携をした。

特にモニターの設定やアラートの中に動的にホスト名を入れる方法等、いくつかハマった点があるので、今後のためにハマりどころをメモ。

価格体型

料金のページに記載があるが、この料金体型を読み解くのがなかなか難しい。ざっくりいうと、基準となるサービスがあるというわけではなく、それぞれのサービス、それぞれの価格体型を組み合わせたものがDatadogのサービスとなる。

例えば、おうちk8sのノードが3つあって、そこでコンテナが10個稼働している。ログを保存したくはないが、ログをDatadogにあげて、エラー時に検知させたい、という使い方であれば、

  • ホスト:$45 ($15*3)
  • ログ: $0.01 * ログ/GB

がかかってくる計算となる。

Agentとその設定について

各種データをDatadogに上げるにあたっては、Agentが必要となる。このAgentを1つインストールすればそれで済む、ということではない。

Agentを導入した時点で収集されるデータはホストのメトリックとなっている。例えば、ログを上げるためには追加でログ用のAgentを設定を追加(多くはコメントアウトされているので、有効化)する。

14日間のトライアル中は全ての機能が利用できるものの、ログ検索はFreeプランには含まれていないので、今回は設定しないでおく。

Datadogを利用したモニター(アラート)設定

Slack連携

USサイトのDatadogを利用している場合、Slack連携はGUIにそって、DatadogのIntegrationsからSlackにログインすることで完了する。WebhookのURLを発行する必要もない。

Datadogを始めてみましょう

Datadog のアラートとグラフをチームの Slack チャンネルに送信。

連携テスト

Monitorを作成すると、その設定画面の右下に「Test Alert」が表示される。

よく考えられていて、アラートしか設定していなければ「Test Alert」しか通知できないが、アラートの設定の中で、Warning設定や、(アラート後の)復旧設定を行なっておくと、Warning、Recoveringのテスト通知をすることもできる。

一つ気になるのは、DatadogのSlackアプリからアラートが通知されると、「Declare Incident」(インシデント作成)ができること。

2020年内は「Incident」は無料であったが、2021年に入ってからはこの機能は「更新アカウント数(参照だけであれば無料)毎に課金」という料金体型が発表されている。

Slack通知からインシデントを作成すると、もしかしたら課金対象となるのかもしれない。(やったことないのでわからない)

復旧アラートの非通知

デフォルトだと、復旧時に都度Slack通知が発生する。少し悩んだのだが、最終的に以下のようにすれば、通知されなくなった。

要は、Slack通知自体をアラート発生時だけの条件式の中に入れてしまう、ということ。

{{#is_alert}}
 @slack通知先
{{/is_alert}}

夜間のアラート停止

Downtimeの設定

特定の期間だけ、特定のSlack通知を停止したい、といったケースにはDowntimeの機能を利用する。

DowntimeはMonitorを指定するか、Monitorに設定したTagに対して設定することができる。

特に後者をうまく利用することで、1つのDowntimeルールに対して複数のMonitorを適用させることができるので、共通して無効化したいMonitorには共通したTagをうまくつけるように考える必要がある。

Downtimeは繰り返し(Recurring)機能があるため、毎日21時から翌朝6時まで停止、という事も可能。

ただ少し痒いのが、平日(Weekly)といった概念や祝日の概念がないため、祝祭日は手動で設定する必要があることと、平日、月曜から金曜21時〜明朝6時までは無効化、土日のみ24時間無効化、といったことをしたい場合は、

  • 月曜から金曜は9時PMから9時間無効化
  • 土曜と日曜は6時AMから24時間無効化

という2つのDowntimeスケジュールを登録する必要がある。