SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Datadog Agent についてのメモ

leave a comment

Datadog Agent についてのメモを。

Datadog Agent のリポジトリ

Dagadog Agent に関連する基本的なリポジトリとしては次の 3 種類があるのではないでしょうか。

Datadog Agent については datadog-agent から確認することができます。

Datadog Agent はインストールすると、デフォルトで様々なインテグレーションがインストールされていますが、初期状態でインストールされているインテグレーションは integrations-core に含まれているものがベースとなっているようです。

「agent integration freeze」を実行することでインストールされているインテグレーションを確認することができますが、初期状態でインストールされているのが integrations-core で管理されているインテグレーションとなっているかと。

image

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 のクエリ調査を行う際には強力な機能となります。

ACI を使用してエージェントを実行する方法

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/"

 

 

構成ファイルを Azure Files から読み込む

ACI で外部からファイルを連携する場合、Azure Files を使用することができ、上記の Az CLI でも 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

 

SQL Server 向けの ODBC ドライバーについて

投稿時点で使用できるイメージのバージョンは「7.53.0」となりますが、このイメージには SQL Server の ODBC ドライバー が含まれた状態となっています。

install-msodbcsql18-driver-for-dockerized-agent-a975e8498ef8d9d5.yaml に記載されていますが、現在の Datadog のコンテナーには、SQL Server の ODBC ドライバーがインストールされるようになりました。

omnibus/config/software/msodbcsql18.rb でどのようにして、ODBC ドライバーをインストールしているかを確認できます。

ODBC ドライバーについては、「/opt/datadog-agent/embedded/msodbcsql」に 18.3 のドライバーが含まれています。

ドライバーの設定については/opt/datadog-agent/embedded/lib/python3.11/site-packages/datadog_checks/sqlserver/data/driver_config/odbcinst.ini」から確認ができるのですが、conf.yaml では設定されているのドライバー名 (ODBC Driver 18 for SQL Server) を指定することができます。(「odbcinst -j」でodbcinst.ini / odbc.ini の指定がどのようになっているか確認できますが、これらは使用されておらず、utils.py の実装から drivers_config 配下のファイルを呼んでいることが確認できるかと)

「driver: "/opt/datadog-agent/embedded/msodbcsql/lib64/libmsodbcsql-18.3.so.2.1"」として、ドライバーをファイル名でフルパスで指定させることでも ODBC ドライバーを認識させることができます。

image

Share

Written by Masayuki.Ozawa

5月 8th, 2024 at 6:42 pm

Posted in Datadog

Tagged with

Leave a Reply