こんにちは
モンハンワイルズよりもウマ娘の新シナリオを周回しているマヌルネコです
先日Datadogを使い始めたのですが、やっぱり面白いですね
なので、練習がてらDatadogでサーバーのリソース監視(CPU使用率など)と外形監視を設定してみます
※触りたてホヤホヤなので、もし間違えていたら教えていただけますと幸いです
■対応の流れ
1. リソース監視(CPU使用率など)の設定
2. 外形監視の設定 (※freeプランでは利用できないためご注意ください)
■実際にやってみた
1. リソース監視(CPU使用率など)の設定
1.1. 設定画面まで遷移
Monitors > New Monitor > Metric Monitor
1.2. CPU使用率のメトリクスとアラート設定
まずはサーバーのCPU使用率が80%を超えた場合に、アラートが発生するように設定してみます
こんな感じで設定してみました
※下記以外はデフォルトのままです
Choose the detection method:Threshold Alert
→閾値を超過した場合にアラートが発生するようにします
Define the metric:avg:system.cpu.system{host:ホスト名}
→監視対象ホストのCPU使用率を指定します
Evaluation Details:maximum, last 5minutes
→5分間の最大値を対象にしています
Alert threshold:80 ※今回は Warning threshold を設定していません
→80%を超過した場合にアラートを発生させます
Configure notifications & automations:
CPU utilization is high on {{host.name}}
@アラート通知先のメールアドレス
Site URL : https://xxxxx.com
<!--StartFragment-->
{{#is_alert}}
The alert has occurred
See Datadog Monitoring
https://Datadogモニタリング画面のURL
{{/is_alert}}
{{^is_alert}}
The alert has recoverd
Check if the site is working well
{{/is_alert}}
<!--EndFragment-->
→{{host.name}} はDatadog側で用意されている変数であり、サーバーのホスト名が格納されます
@の後ろにアラート通知先のメールアドレスを記載することで、そのメールアドレス宛にアラートが通知されます

1.3. 通知テスト
作成画面右下の Test Notificationを押下し、 通知テストをしてみます

Alert と Alert Recovery にチェックを入れて Run test を押下すると、@アラート通知先のメールアドレス に2通の通知メールが届いていればOKです
1.4. 実メモリ使用率のメトリクスとアラート設定
1.2. とほとんど同じ要領でメモリ使用率も設定してみます
差分のみ下記に記載します
Define the metric:(system.mem.used{host:*, host:ホスト名} – system.mem.cached{host:*, host:ホスト名})
→キャッシュを除いた実メモリ使用率を指定しています
system.mem.used のメトリクスだけでは、キャッシュを含めた値になるそうなので、全体のメモリ使用率からキャッシュ分を引いた値にしています
Alert threshold:1932735283.2 (1.8 GiB)
→全体が2GiBと仮定して、1.8GiBを超過した際にアラートとします
多分ここは80%などで設定できると思うので、後々調整したいと思います
Configure notifications & automations:
Used Memory is high on {{host.name}}
→アラート名のみメモリ使用率とわかるものへ変更しました
1.5. 作成後確認
作成後、Monitorsの画面に遷移し、各STATUSがOKになっていることを確認します
これとほぼ同じ要領で Load average や ディスク使用率の監視も入れていきます
2. 外形監視の設定
2.1. 設定画面まで遷移
Digital Experience > New tests > API Test > Start from Scratch
2.2. 外形監視の設定
こんな感じで設定しました
※こちらも下記以外はデフォルトのままです
Request Typ:HTTP
→外形監視なので、HTTPを選択
URL:https:// 監視対象のURL
→https://から監視対象のURLを記載
Name:HTTP_URL_Monitoring
→これもいい感じの名前を思いつかなかったので、英単語を並べました
Locations:Oregon (AWS)、Tokyo (AWS)
→なんでもOKですが、Tokyoは入れといたほうがいいと思います
Monitor:
サイト名 URL is down
@アラート通知先のメールアドレス
<!--StartFragment-->
{{#is_alert}} サイト名 URL is down.
See Datadog Monitoring
https://DatdogモニタリングのURL&
{{/is_alert}}
`{{^is_alert}}
blog.quick-infra.net URL has recoverd.
Check if the Site is working well
{{/is_alert}}`
!--EndFragment-->
→リソース監視と同じように最低限の情報のみ記載しました
2.3. 通知テスト
こちらも同様に通知テストをしてみます
Simulate Notifications を押下し、Alert と Alert Recovery にチェックを入れて Send Notifications を押下すると、@アラート通知先のメールアドレス に2通のテスト通知メールが届きます

2.4. 作成後確認
作成後、Synthetic Monitoring & Testing 画面でSTATUSがOKになっていることを確認します
いかがでしたでしょうか?
まだまだ触りたててわからないことばかりでしたが、最低限の監視設定は入ったような気がします
ただ、もっといい監視の方法があると思うので、少しずつ勉強していこうかなと思います
また次の機会お会いしましょう
※参考サイト
https://docs.datadoghq.com/metrics/guide/calculating-the-system-mem-used-metric/