Datadogでのリソース監視

作業概要

モニターを作成してメトリック定義だのアラート条件を設定等を設定していく。※エージェントインストール済を想定しています
モニターのタイプは下記のようにいろいろ設定できるようだが、基本的なリソース監視(CPUやらメモリやらディスク使用率)したい場合は”Metric”でよいかと思う。
モニターのタイプ一覧は公式ドキュメントを参照ください。
https://docs.datadoghq.com/ja/monitors/monitor_types/

作業記録~モニター作成(Load監視用)~

①Choose the detection method

項目設定解説
検出方法を選択します。Threshold Aleartメトリックがしきい値を超えるとアラートがトリガー

②Define the metric

項目設定解説
Metricsystem.load.1
fromeverywhere送信元の定義。
excludingnoneタグの除外。除外したいホストを指定したりする。
集計の指定max by※他にavg by, min by, sum byが選択可能
グループ化hostホスト単位での計測
アラートのグループ化 Multi Alert

③Set alert conditions

項目設定解説
アラートの条件は、どの検出方法を選ぶかabove or equal toabove(より大きい)、above or equal to(以上)、below(より小さい)、below or equal to(以下)
しきい値at least once生成された系列内の値がいずれか 1 つでもしきい値から外れている場合に、アラートがトリガーされる。
期間1 minute最長で24hとかもある。負荷テストでアラートを早く発生させたいので意図的に1分にしている。本番では適宜変更。
しきい値
Alert threshold:>=1.2アラートの通知のトリガーに使用される値
Warning threshold:>=1.1警告の通知のトリガーに使用される値
Alert recovery threshold:<1アラートのリカバリに対する追加条件を示すしきい値 (任意)
Warning recovery threshold:<1警告のリカバリに対する追加条件を示すしきい値 (任意)
Data windowDo not requireモニターは認識されるとすぐに評価される。わたしはシビアに監視したいのでアラートは多くでてしまってもよい。
No DataNotify 10「データなし」を通知したい。
Auto ResolveNeverアラートをトリガーされた状態から解決するタイミング。●時間経過後に勝手にアラートが解決されては困るのでNever。
Evaluation Delay0評価を遅らせる時間。サービスプロバイダーがバックフィルを行うクラウドメトリクスとか特殊な場合に設定すると役に立つようだ。

④Say what’s happening

項目設定解説
タイトルsytem.load.1モニタータイトル。わたしの場合、metric、計算式にしている。
メッセージ@<メールアドレス>いろいろできるのだろうが今は通知のみでよい。改行@<メールアドレス>で複数通知可。
再通知Every 10 minutes解決されていない場合は10分ごとに再通知。不要ならNever。
Escalation message@<メールアドレス>通知のみ。

⑤Notify your team

項目設定解説
変更Do not notifyモニターが作成、変更、無音、または削除されるたびに通知するかどうか。今回はしない。
制限の編集Do not restrictモニター編集を制限するかどうか。今回はしない。

テスト

下記コマンドでサーバに負荷をかければよい。

/dev/null < $(yes)

モニター作成(CPU、メモリ、ディスク、トラフィック用)

Load以外のモニター作成メモ。
Loadとの差分のみまとめておきます。
閾値はサーバごとに適宜調整してください。

・CPU使用率
Metric:system.cpu.user from:everywhere excluding:(none) max by host
・メモリ使用率
Metric:system.mem.free from:everywhere excluding:(none) max by host
Metric:system.mem.buffered from:everywhere excluding:(none) max by host
Metric:system.mem.cached from:everywhere excluding:(none) max by host
Metric:system.mem.total from:everywhere excluding:(none) max by host
Express these queries as ( a + b + c ) / d
・ディスク使用率
Metric:system.disk.in_use from:everywhere excluding:(none) max by host,device_name
・受信トラフィック
Metric:system.net.bytes_rcvd from:everywhere excluding:(none) sum by host,device
・送信トラフィック
Metric:system.net.bytes_sent from:everywhere excluding:(none) sum by host,device
Express these queries as 0 - a

前の記事

CloudWatchでのEC2監視

次の記事

Datadogでの死活監視