2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DatadogのAWS Integrationでフィルタリングルールを使った話

Last updated at Posted at 2021-03-12

TL;DR

  • DatadogのAWS Integrationを利用する際に、AWSのタグを使ってフィルタリングすることが出来る
    • 例えば、Environment:production タグを持つAWSリソースだけ監視に追加することが出来ます
  • EC2やLambda以外のリソースはDatadogのGUI上からではフィルタリング設定できないので、APIを叩きましょう
  • terraformのバージョンを最新(2.21以上)にすればコード管理もできます

はじめに

DatadogのAWS Integrationを使ってAWS環境を監視する必要が発生しました。
しかし、該当のAWS環境では本番用のリソースとステージング用のリソースが稼働しています。

この状態で以下を達成しようとした結果を記載します。

  • DatadogのAWS Integrationだけでどうにか監視したい
  • 監視対象は本番用のリソースだけにしたい

2021年の1月末から対応していたのですが、その時はDatadog公式のドキュメントやインターネット上の資料を探しても
GUI上から設定できるEC2やLambdaリソースのフィルタリング方法しか見つけれなかった(そもそも機能としてなかった?)ため、メモとして記載しています。

やっていく

前提

以下を前提としています。

  • DatadogのAWS Integrationが有効になっていること
  • 各種AWSリソースには事前にタグが付与されていること
    • 例: Environment: production

curlで実行する場合

全てはDatadog公式に書いてあるとおりですが・・・

### Environment:productionタグを持つRDSを監視したい場合
$ curl -X POST "https://api.datadoghq.com/api/v1/integration/aws/filtering" \
-H "Content-Type: application/json" \
-H "DD-API-KEY: datadog-api-key" \
-H "DD-APPLICATION-KEY: datadog-application-key" \
-d @- << EOF
{
  "account_id": "YOUR_AWS_ACCOUNT_ID",
  "namespace": "rds",
  "tag_filter_str": "Environment:production"
}
EOF

複数のリソースに対して実行したい場合は、それぞれのリソースに対してPOSTしてあげてください。

Terraformで実行する場合

Terraformのドキュメントに書いてあるとおりですが・・・

###  Environment:productionタグを持つRDSを監視したい場合
resource "datadog_integration_aws_tag_filter" "rds" {
  account_id     = "YOUR_AWS_ACCOUNT_ID"
  namespace      = "rds"
  tag_filter_str = "Environment:production"
}

###  Environment:productionタグを持つALBを監視したい場合
resource "datadog_integration_aws_tag_filter" "alb" {
  account_id     = "YOUR_AWS_ACCOUNT_ID"
  namespace      = "applcation_elb"
  tag_filter_str = "Environment:production"
}

フィルタリングしたいAWSリソースの分だけ記載しましょう。

なお、datadog_integration_aws_tag_filter は2021/2/10にリリースされたv2.21から使えるようです。
忘れずに最新のバージョンを使うように指定しておきましょう。

例えば、以下のような感じです。

### main.tf
provider "datadog" {
  version = "~> 2.21.0"
}

さいごに

custom リソースも定義できるよ、とのことですが、こちらはまだ試せていません。
おそらく、 こちらに記載の無いecselasticache などをフィルタリングできるのかもしれません。

本記事は、自力で見つけたのではなくDatadogのサポートに問い合わせて教えてもらった内容になります。
Datadogのサポートさんにはお世話になりました・・・

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?