最近Mackerelではなく、Datadogでの監視方法を勉強しまくっているのですが、なかなか理解不足と慣れないという言い訳により、かなりハマっております。今回はECS/Fargateのコンテナ監視を試してTerraform化をしたので、ブログします!


■Amazon Fargate – Datadog Docs

https://docs.datadoghq.com/ja/integrations/ecs_fargate/

Datadog で ECS Fargate タスクを監視するには、アプリケーションと同じタスク定義内のコンテナとして Agent を実行します

というわけで、現在動いているコンテナのタスク定義にdatadog-agentコンテナを動かすようにすればOK。


■Datadog

  • add integrations

  • add API Keys


■Terraform

  • files/task-definitions/app.json

 タスク定義に追加している部分は 40行目 です。タスクサイズのスペックcpu:1024memory:2048 で、各コンテナのスペックは以下のように調整しています。

・app

  • cpu:1014
  • memory:1792

・datadog-agent

  • cpu:10
  • memory:256

環境変数はドキュメントの通り1つと、メトリックス収集(DOGSTATSD/ライブプロセスモニタリング)のため2つ指定しており、 DD_API_KEY : API Key は手動で追加しています。

・ECS_FARGATE : true
・DD_PROCESS_AGENT_ENABLED : true
・DD_DOGSTATSD_NON_LOCAL_TRAFFIC : true

  • files/assume_role_policy/datadog-agent.json

  • iam.tf

タスクの実行ロールにdatadog用のポリシーを追加しましょう。 1行目と20行目 にポリシーをアタッチしています。


■確認

  • Infrastructure > Containers

  • Infrastructure > Processes

  • Dashboard

CPU、Memory、I/O、ネットワークトラフィック、プロセスが取れていればOK!!


■まとめ

datadog-agentコンテナ用のタスク定義を1つ作るのかと勘違いしてハマりましたが、Mackerelと同様にサービス1つに監視コンテナを作ればリソースが取れます。しかしドキュメントが見にくい….他にも細かくメトリックスが取れるので次回ブログします!



adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください