EKS に Datadog Agent をインストールして監視してみた

EKS(on EC2) を Datadog で監視する際の使用感を見てみたかったので、Agent をインストールして各種ダッシュボードを見てみました。あわせてログも取り込んでみました。

インストールしてみる

Integrations > Agent > Kubernetes に記載の手順で helm を利用してインストールすることが可能です。

API Key は Select API Keys から選択することで、コピペ用のコマンドに埋め込まれました。楽ちんですね。

Datadog は 2023 年 4 月に日本リージョンが追加されたので、今回はそちらを利用してみました。

下記リンク先のサイトパラメータを指定することで、利用リージョンを指定可能です。

実際にインストールしていきます。

helm repo add datadog https://helm.datadoghq.com
helm repo update
curl -O https://raw.githubusercontent.com/DataDog/helm-charts/master/charts/datadog/values.yaml

ログも取り込みたかったので、下記パラメータをデフォルト値から true に変更します。

datadog:
  logs:
    enabled: true
    containerCollectAll: true

helm install を実行します。

helm install datadog -f values.yaml --set datadog.site='ap1.datadoghq.com' --set datadog.apiKey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX datadog/datadog

正しくインストールできると、Service Mgmt > Event Management に Datadog agent (v. xxx) started on xxx と表示されます。

各 Node の情報を確認してみます。

Node のリソースをどのコンテナが消費しているかも簡単に確認可能です。

Pod ごとのダッシュボードも最初から利用できました。
CPU 使用率やメモリ使用率、CrashLoopBackOff や Container OOM Killed の数などとりあえず見たい情報はすぐに確認できて良い感じです。

ログも取り込みできていました。
エラーログの数も視覚的にわかって便利です。

今回は Amazon EBS CSI ドライバーがスナップショット機能を使用する際に利用する Snapshotter がインストールされていないことでエラーになっていたので、external-snapshotter をインストールして解消しました。

まとめ

簡単にインストールできて、すぐに監視できるのは本当に良いですね。
できることが多く、やれることを全然把握できていないので今後も触ってみます。