Datadog APIを利用した監視設定情報の登録

投稿者: | 2018年11月6日

DatadogにAPIを利用して監視設定情報を登録します。

まず、DatadogAPIを使用する場合に先に準備としてアプリケーションキーを作成しておく必要があります。
アプリケーションキーはメニューのAPIsで開いた画面から作成することができます。

このアプリケーションキーとAPIのキーを使用してAPIを実行します。
監視の登録は下記の公式ドキュメントに記述している通り「/api/v1/monitor」に対して登録したい内容をbodyに指定することで可能です。
https://docs.datadoghq.com/api/?lang=bash#create-a-monitor

bodyの指定内容がやや分かりづらい(特にquery)ので画面から登録した内容をエクスポートして参考にするのが良さそうです。

今回は複数のホストに対してプロセス監視の設定を登録したので下記のようなスクリプトを作成しました。

#!/bin/sh

api_key=APIキー
app_key=アプリケーションキー
hosts=(host1 host2 host3 host4 host5)
targets=(crond systemd rsyslogd)
datadog_url="https://api.datadoghq.com/api/v1/monitor?api_key="$api_key"&application_key="$app_key

function create_process(){
  host=$1
  target=$2
  json=$(cat <<<"
  {
      \"type\": \"service check\",
      \"query\": \"\\\"process.up\\\".over(\\\"host:$host\\\",\\\"process:$target\\\").last(2).count_by_status()\",
      \"name\": \"check process $host $target\",
      \"message\": \"@xxxxx@gmail.com\",
      \"tags\": [],
      \"options\": {
          \"notify_no_data\": true,
          \"no_data_timeframe\": 20
      }
  }
  ")
  curl -k -H "Content-Type: application/json" --data "$json" $datadog_url
}

for host in ${hosts[@]}
  do
    for target in ${targets[@]}
      do
         create_process $host $target
      done
  done

DatadogはAPIが充実しているので、構築や運用設計をする際は全てスクリプト化ができそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA