- はじめに
- エージェント
- インテグレーション
- Watchdog
- イベント
- ダッシュボード
- モバイルアプリケーション
- インフラストラクチャー
- サーバーレス
- メトリクス
- ノートブック
- アラート設定
- APM & Continuous Profiler
- CI Visibility
- RUM & セッションリプレイ
- データベース モニタリング
- ログ管理
- セキュリティプラットフォーム
- Synthetic モニタリング
- ネットワークモニタリング
- 開発者
- API
- アカウントの管理
- データセキュリティ
- ヘルプ
データベースモニタリングは、クエリメトリクス、クエリサンプル、実行計画、データベースの状態、フェイルオーバー、イベントを公開することで、Microsoft SQL Server データベースを詳細に可視化します。
データベースでデータベースモニタリングを有効にするには、以下の手順を実行します。
Datadog Agent が統計やクエリを収集するためには、データベースサーバーへの読み取り専用のアクセスが必要となります。
Cloud SQL インスタンスに datadog
ユーザーを作成します。
Agent の読み取り専用アクセスを維持するために、デフォルトの CustomerDbRootRole
から datadog
ユーザーを削除してください。その代わりに、Agent が必要とする明示的な権限のみを付与します。
GRANT VIEW SERVER STATE to datadog as CustomerDbRootRole;
GRANT VIEW ANY DEFINITION to datadog as CustomerDbRootRole;
ALTER SERVER ROLE CustomerDbRootRole DROP member datadog;
追加した各アプリケーションデータベースに datadog
ユーザーを作成します。
USE [database_name];
CREATE USER datadog FOR LOGIN datadog;
これは、Google Cloud SQL が CONNECT ANY DATABASE
の付与を許可していないため、必要です。Datadog Agent は、データベース固有のファイル I/O 統計情報を収集するために、各データベースに接続する必要があります。
GCP はホストへの直接アクセスを許可しません。つまり、Datadog Agent は SQL Server ホストと通信可能な別のホストにインストールする必要があります。Agent のインストールと実行には、いくつかのオプションがあります。
SQL Server テレメトリーの収集を開始するには、まず Datadog Agent をインストールします。
SQL Server Agent のコンフィギュレーションファイル C:\ProgramData\Datadog\conf.d\sqlserver.d\conf.yaml
を作成します。使用可能なすべての構成オプションは、サンプルコンフィギュレーションファイルを参照してください。
init_config:
instances:
- dbm: true
host: '<HOSTNAME>,<SQL_PORT>'
username: datadog
password: '<PASSWORD>'
connector: adodbapi
provider: MSOLEDBSQL
tags: # オプション
- 'service:<CUSTOM_SERVICE>'
- 'env:<CUSTOM_ENV>'
# プロジェクトとインスタンスを追加した後、CPU、メモリなどの追加のクラウドデータをプルするために Datadog GCP インテグレーションを構成します。
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
project_id
と instance_id
フィールドの設定に関する追加情報は、SQL Server インテグレーション仕様を参照してください。
Windows 認証を利用する場合は、connection_string: "Trusted_Connection=yes"
と設定し、username
と password
フィールドを省略します。
service
と env
タグを使用して、共通のタグ付けスキームでデータベースのテレメトリーを他のテレメトリーにリンクします。これらのタグが Datadog 全体でどのように使用されるかについては、統合サービスタグ付けを参照してください。
推奨する ADO プロバイダーは、Microsoft OLE DB Driver です。Agent が動作しているホストにドライバーがインストールされていることを確認してください。
connector: adodbapi
provider: MSOLEDBSQL
他の 2 つのプロバイダー、SQLOLEDB
と SQLNCLI
は、Microsoft によって非推奨とされており、もはや使用するべきではありません。
推奨する ODBC ドライバーは、Microsoft ODBC Driver です。Agent が動作しているホストにドライバーがインストールされていることを確認してください。
connector: odbc
driver: '{ODBC Driver 17 for SQL Server}'
すべての Agent の構成が完了したら、Datadog Agent を再起動します。
Agent の status サブコマンドを実行し、Checks セクションで sqlserver
を探します。Datadog のデータベースのページへ移動して開始します。
SQL Server テレメトリーの収集を開始するには、まず Datadog Agent をインストールします。
Linux では、Datadog Agent の他に、ODBC SQL Server ドライバー (例えば、Microsoft ODBC ドライバー) がインストールされていることが必須となります。ODBC SQL Server がインストールされたら、odbc.ini
と odbcinst.ini
ファイルを /opt/datadog-agent/embedded/etc
フォルダーにコピーします。
odbc
コネクターを使用し、odbcinst.ini
ファイルに示されているように、適切なドライバーを指定します。
SQL Server Agent のコンフィギュレーションファイル /etc/datadog-agent/conf.d/sqlserver.d/conf.yaml
を作成します。使用可能なすべての構成オプションは、サンプルコンフィギュレーションファイルを参照してください。
init_config:
instances:
- dbm: true
host: '<HOSTNAME>,<SQL_PORT>'
username: datadog
password: '<PASSWORD>'
connector: odbc
driver: '<Driver from the `odbcinst.ini` file>'
tags: # オプション
- 'service:<CUSTOM_SERVICE>'
- 'env:<CUSTOM_ENV>'
# プロジェクトとインスタンスを追加した後、CPU、メモリなどの追加のクラウドデータをプルするために Datadog GCP インテグレーションを構成します。
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
project_id
と instance_id
フィールドの設定に関する追加情報は、SQL Server インテグレーション仕様を参照してください。
service
と env
タグを使用して、共通のタグ付けスキームでデータベースのテレメトリーを他のテレメトリーにリンクします。これらのタグが Datadog 全体でどのように使用されるかについては、統合サービスタグ付けを参照してください。
すべての Agent の構成が完了したら、Datadog Agent を再起動します。
Agent の status サブコマンドを実行し、Checks セクションで sqlserver
を探します。Datadog のデータベースのページへ移動して開始します。
Docker コンテナで動作するデータベースモニタリング Agent を設定するには、Agent コンテナの Docker ラベルとしてオートディスカバリーのインテグレーションテンプレートを設定します。
注: ラベルのオートディスカバリーを機能させるためには、Agent にDocker ソケットに対する読み取り権限が与えられている必要があります。
アカウントや環境に合わせて、値を置き換えます。利用可能なすべての構成オプションについては、サンプルコンフィギュレーションファイルを参照してください。
export DD_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
export DD_AGENT_VERSION=7.35.0
docker run -e "DD_API_KEY=${DD_API_KEY}" \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-l com.datadoghq.ad.check_names='["sqlserver"]' \
-l com.datadoghq.ad.init_configs='[{}]' \
-l com.datadoghq.ad.instances='[{
"dbm": true,
"host": "<HOSTNAME>",
"port": <SQL_PORT>,
"connector": "odbc",
"driver": "FreeTDS",
"username": "datadog",
"password": "<PASSWORD>",
"tags": [
"service:<CUSTOM_SERVICE>"
"env:<CUSTOM_ENV>"
],
"gcp": {
"project_id": "<PROJECT_ID>",
"instance_id": "<INSTANCE_ID>"
}
}]' \
datadoghq/agent:${DD_AGENT_VERSION}
project_id
と instance_id
フィールドの設定に関する追加情報は、SQL Server インテグレーション仕様を参照してください。
service
と env
タグを使用して、共通のタグ付けスキームでデータベースのテレメトリーを他のテレメトリーにリンクします。これらのタグが Datadog 全体でどのように使用されるかについては、統合サービスタグ付けを参照してください。
Agent の status サブコマンドを実行し、Checks セクションで sqlserver
を探します。または、Datadog のデータベースのページへ移動して開始します。
Kubernetes クラスターをお使いの場合は、データベースモニタリング用の Datadog Cluster Agent をご利用ください。
Kubernetes クラスターでクラスターチェックがまだ有効になっていない場合は、指示に従ってクラスターチェックを有効化します。Cluster Agent の構成は、Cluster Agent コンテナにマウントされた静的ファイル、または Kubernetes サービスアノテーションのいずれかを使用することができます。
以下の Helm コマンドを実行して、Kubernetes クラスターに Datadog Cluster Agent をインストールします。お使いのアカウントや環境に合わせて値を変更してください。
helm repo add datadog https://helm.datadoghq.com
helm repo update
helm install <RELEASE_NAME> \
--set 'datadog.apiKey=<DATADOG_API_KEY>' \
--set 'clusterAgent.enabled=true' \
--set "clusterAgent.confd.sqlserver\.yaml=cluster_check: true
init_config:
instances:
- dbm: true
host: <HOSTNAME>
port: 1433
username: datadog
password: '<PASSWORD>'
connector: 'odbc'
driver: 'FreeTDS'
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>' \
datadog/datadog"
マウントされたコンフィギュレーションファイルを使ってクラスターチェックを構成するには、コンフィギュレーションファイルを Cluster Agent コンテナのパス /conf.d/sqlserver.yaml
にマウントします。
cluster_check: true # このフラグを必ず入れてください
init_config:
instances:
- dbm: true
host: '<HOSTNAME>'
port: <SQL_PORT>
username: datadog
password: '<PASSWORD>'
connector: "odbc"
driver: "FreeTDS"
# プロジェクトとインスタンスを追加した後、CPU、メモリなどの追加のクラウドデータをプルするために Datadog GCP インテグレーションを構成します。
gcp:
project_id: '<PROJECT_ID>'
instance_id: '<INSTANCE_ID>'
ファイルをマウントせずに、インスタンスのコンフィギュレーションを Kubernetes サービスとして宣言することができます。Kubernetes 上で動作する Agent にこのチェックを設定するには、Datadog Cluster Agent と同じネームスペースにサービスを作成します。
apiVersion: v1
kind: Service
metadata:
name: sqlserver-datadog-check-instances
annotations:
ad.datadoghq.com/service.check_names: '["sqlserver"]'
ad.datadoghq.com/service.init_configs: '[{}]'
ad.datadoghq.com/service.instances: |
[
{
"dbm": true,
"host": "<HOSTNAME>",
"port": <SQL_PORT>,
"username": "datadog",
"password": "<PASSWORD>",
"connector": "odbc",
"driver": "FreeTDS",
"gcp": {
"project_id": "<PROJECT_ID>",
"instance_id": "<INSTANCE_ID>"
}
}
]
spec:
ports:
- port: 1433
protocol: TCP
targetPort: 1433
name: sqlserver
project_id
と instance_id
フィールドの設定に関する追加情報は、SQL Server インテグレーション仕様を参照してください。
Cluster Agent は自動的にこのコンフィギュレーションを登録し、SQL Server チェックを開始します。
datadog
ユーザーのパスワードをプレーンテキストで公開しないよう、Agent のシークレット管理パッケージを使用し、ENC[]
構文を使ってパスワードを宣言します。
Google Cloud SQL からより包括的なデータベースメトリクスを収集するには、Google Cloud SQL インテグレーションをインストールします。
お役に立つドキュメント、リンクや記事: