- はじめに
- Datadog Agent のインストール
- あとがき
- 参考
はじめに
Sreake事業部の槌田です。
普段はSREとして設計、構築、監視まで業務をこなしています。
最近、監視業務でDatadogを使うことが多くなってきて興味を持ち始めたので検証や知見を書いていく予定です!
先日案件でECS on FargateにDatadog Agentを入れたのでインストール方法や知見を書いていきます。
Datadog Agent のインストール
DatadogをFargateで使うためのステップ
① DatadogにAWSアカウントを連携する(前提)
② ECS on Fargateのtask definitionにDatadogの環境変数を追加する
③ DatadogのインテグレーションでECSをインストールする
④ ダッシュボードでFargateのメトリクスを確認する
早速本題です。
① DatadogにAWSアカウントを連携する※
ステップ①は前提なので、設定してない場合はDatadog公式のAWSを参照してください。
②ECS on Fargateのtask definitionにDatadogの環境変数を追加する
ECS on FargateをDatadogで監視するためにtask definitionで使用した設定は下記になります。
{ "name": "datadog-agent", "image": "datadog/agent:latest", "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "${log_group}", "awslogs-region": "ap-northeast-1", "awslogs-stream-prefix": "datadog" } }, "cpu": 10, "memory": 256, "essential": true, "mountPoints": [], "portMappings": [ { "hostPort": 8126, "protocol": "tcp", "containerPort": 8126 } ], "environment": [ { "name": "ECS_FARGATE", "value": "true" }, { "name": "DD_PROCESS_AGENT_ENABLED", "value": "true" }, { "name": "DD_DOGSTATSD_NON_LOCAL_TRAFFIC", "value": "true" }, { "name": "DD_APM_ENABLED", "value": "true" }, { "name": "DD_APM_NON_LOCAL_TRAFFIC", "value": "true" } ], "secrets": [ { "name": "DD_API_KEY", "valueFrom": "${dd_api_key}" } ], "networkMode": "awsvpc" }
今回のECS on Fargateはterraformで作成する予定でした。なので、同じものを使いまわせるように一部環境変数にしています。
上記の設定を監視したいtask definitionに追記してコンテナを作成します。
③ DatadogのインテグレーションでECSをインストールする
DatadogのインテグレーションでECSをインストールされているか確認しましょう。
インストールされてない場合はインストールし、下記のようにインストールされているか確認します。
④ ダッシュボードでFargateのメトリクスを確認する
デフォルトで準備されているECSのダッシュボードでメトリクスを取得できていれば導入完了です。
ここからは設定などの細かな話をしていきます。
まずはDatadogのAPI Keyの管理方法です。
冒頭でも記載しましたが今回の環境はTerraformでコード化しているのですべてGitで管理しています。
なのでシークレット情報を直書きするのはよくないですよね?
それを解決してくれたのがAWS Secret Manager※です。このサービスを使うことによりAPI Keyの管理、保護を容易にできるようになりました。
secrets情報を記載する際はsecretsブロックを下記のように記述しましょう。
"secrets": [ { "name": "", "valueFrom": " " } ]
次にFargateに必要なenviromentについてです。Fargateの場合はdatadog.yamlでカスタマイズできないので、enviromentsで指定します。Fargateでは実装できない環境変数もあるのであらかじめ確認しましょう。※
APM設定の話はcoming soon
あとがき
Datadogの導入もECS on Fargate使うのも初めてでしたが、今回で理解が強くなったと思います。
Fargate自体もかなり構築しやすくDatadogの導入も容易なので皆さんもぜひ使ってみてください。
今後はもっとDatadogを使って情報を発信していきます!
SrekeではDatadogの導入支援サービスも提供しております。ぜひお気軽にお問い合わせください。
Datadogの導入、活用ついてのご質問・ご相談などお気軽にお問い合わせください
場所や規模に関係なく、あらゆるスタック/アプリケーションの内部を監視できるDataDogの導入、構築を支援いたします。
参考
- (AWS)[https://docs.datadoghq.com/ja/integrations/amazon_web_services/?tab=roledelegation]
- (docker アプリケーションのトレース)[https://docs.datadoghq.com/ja/agent/docker/apm/?tab=linux]
- (Amazon Fargate)[https://docs.datadoghq.com/ja/integrations/ecs_fargate/?tab=fluentbitandfirelens]
- (AWS Secret Manager)[https://aws.amazon.com/jp/secrets-manager/]
Sreake事業部 Tsuchida Soichiroです
主にAWS、GCPを触ってるインフラエンジニアです