Datadog Agent についてのメモを。
Datadog Agent のリポジトリ
Dagadog Agent に関連する基本的なリポジトリとしては次の 3 種類があるのではないでしょうか。
Datadog Agent については datadog-agent から確認することができます。
Datadog Agent はインストールすると、デフォルトで様々なインテグレーションがインストールされていますが、初期状態でインストールされているインテグレーションは integrations-core に含まれているものがベースとなっているようです。
「agent integration freeze」を実行することでインストールされているインテグレーションを確認することができますが、初期状態でインストールされているのが integrations-core で管理されているインテグレーションとなっているかと。
integrations-extras はデフォルトではインストールされていないコミュニティ管理のインテグレーションとなり、こちらについては初期状態では含まれておらず「agent integration install -t datadog-fluentbit==1.0.2 -r」というようなコマンドでインストールする必要があります。
Integration は Python で作成されており、pip でインストールがされているようですので pip コマンドでインストールされているインテグレーションを確認することもできます。
Linux であれば「/opt/datadog-agent/embedded/lib/python3.11/site-packages」、Windows であれば「C:\Program Files\Datadog\Datadog Agent\embedded3\Lib\site-packages」からインストールされているパッケージのファイルを確認することもできるかと。
インテグレーションの情報をさらに確認したい場合には、インテグレーションの構築 を確認するとよさそうでした。
SQL Server ベースの環境向けのインテグレーションについては、Microsoft SQL Server Checkから、実装を確認することができます。
SQL Database 向けのエージェントをACI でコンテナーを起動することで利用
Datadog Agent はエージェント実行端末に、エージェントをインストールして利用するだけでなく、コンテナーで利用することも可能であり、コンテナーイメージ が提供されています。
Datadog の データベースモニタリング は SQL Server ベースの環境にも対応しており、Azure SQL Database のクエリ調査を行う際には強力な機能となります。
Azure で Datadog Agent を実行する場合、VM にエージェントをインストールして利用するほかに、Azure Container Instance でコンテナーとしてエージェントを実行することも検討することができます。
実際にコンテナーを起動する場合は次のようなコマンドで ACI を起動することができます。
az container create ` --resource-group rg-ACI ` --name ddagent ` --image datadog/agent:7.53.0 ` --cpu 1 --memory 1 ` --environment-variables ` "DD_API_KEY=<Datadog API Key>" ` "DD_HOSTNAME=ddagent" ` "DD_SERVER=<SQL DB Server Name>" ` "DD_DATABASE=<Database Name>" ` "DD_USER=<Database Login User>" ` "DD_USER_PASSWORD=<Database Login Password>" ` --azure-file-volume-account-name "<Storage Account Name>" ` --azure-file-volume-account-key "<Storage Access Key> ` --azure-file-volume-share-name "datadog" ` --azure-file-volume-mount-path "/etc/datadog-agent/conf.d/"
ACI で外部からファイルを連携する場合、Azure Files を使用することができます。
Azure Files として「datadog」というファイル共有を作成し、その共有の中に「sqlserver.d」というディレクトリを作成し、次のファイルを「conf.yaml」として配置することで、SQL Server のインテグレーションを使用して情報を取得することができます。
init_config: instances: - host: "%%env_DD_SERVER%%.database.windows.net" connector: "odbc" driver: "ODBC Driver 18 for SQL Server" database: "%%env_DD_DATABASE%%" username: "%%env_DD_USER%%" password: "%%env_DD_USER_PASSWORD%%" azure: deployment_type: "sql_database" fully_qualified_domain_name: "%%env_DD_SERVER%%-fg.database.windows.net" dbm: true
投稿時点で使用できるイメージのバージョンは「7.53.0」となりますが、このイメージには SQL Server の ODBC ドライバー が含まれた状態となっています。
「/opt/datadog-agent/embedded/msodbcsql」に 18.3 の ODBC ドライバーが含まれており、「/opt/datadog-agent/embedded/lib/python3.11/site-packages/datadog_checks/sqlserver/data/driver_
config\odbcinst.ini」から確認ができるのですが、ドライバーの設定が行われているため、conf.yaml では、このドライバー名を指定しています。(driver: "/opt/datadog-agent/embedded/msodbcsql/lib64/libmsodbcsql-18.3.so.2.1" という指定でも認識できるかと)
このような設定を使用することで、ACI を使用して Datadog Agent を実行することもできます。