
概要
このチェックは、Datadog Agent を通じて IBM Db2 を監視します。
セットアップ
インストール
IBM Db2 チェックは Datadog Agent パッケージに含まれています。
依存関係
ibm_db クライアントライブラリが必要です。これをインストールするには、コンパイラーが用意されていることを確認し、次を実行します。
Unix
sudo -Hu dd-agent /opt/datadog-agent/embedded/bin/pip install ibm_db==3.2.3
注: Python 2 が動作する Agent をお使いの場合は、ibm_db=3.1.0
の代わりに ibm_db==3.0.1
を使用してください。
Windows
Agent バージョン < 6.11 の場合
"C:\Program Files\Datadog\Datadog Agent\embedded\python.exe" -m pip install ibm_db==3.0.1
Agent バージョン >= 6.12 および < 7.0 の場合
"C:\Program Files\Datadog\Datadog Agent\embedded<PYTHON_MAJOR_VERSION>\python.exe" -m pip install ibm_db==3.0.1
Agent バージョン 7.0 以上 7.58 未満の場合
"C:\Program Files\Datadog\Datadog Agent\embedded3\python.exe" -m pip install ibm_db==3.1.4
Agent バージョン 7.58 以上の場合
"C:\Program Files\Datadog\Datadog Agent\embedded3\python.exe" -m pip install ibm_db==3.2.3
Linux では、XML 機能が必要になる場合があります。ビルドプロセス中にエラーが発生した場合は、
libxslt-dev
(RPM では libxslt-devel
) をインストールしてください。
モニタリングを有効にする
IBM Db2 インテグレーションは、以下のテーブル関数を使用してデータを取り出します。
MON_GET_TABLESPACE
MON_GET_TRANSACTION_LOG
MON_GET_BUFFERPOOL
MON_GET_DATABASE
MON_GET_INSTANCE
これらのテーブル関数の詳細については、IBM 公式ドキュメントを参照してください。
Db2 インスタンスを監視するには、上記の 5 つのテーブル関数に EXECUTE
権限を持つ Db2 ユーザーを作成するか、Db2 ユーザーに以下のロールのいずれかを付与します。
DATAACCESS
権限DBADM
権限SQLADM
権限
インスタンス、関連するデータベース、およびデータベースオブジェクトの状態を監視するには、監視対象とするオブジェクトごとにデータベースシステムモニタスイッチを有効にします。
インスタンスマスターユーザーに切り替えて、db2
プロンプトで以下のコマンドを実行します。
update dbm cfg using HEALTH_MON on
update dbm cfg using DFT_MON_STMT on
update dbm cfg using DFT_MON_LOCK on
update dbm cfg using DFT_MON_TABLE on
update dbm cfg using DFT_MON_BUFPOOL on
次に、get dbm cfg
を実行すると、以下のように表示されるはずです。
Default database monitor switches
Buffer pool (DFT_MON_BUFPOOL) = ON
Lock (DFT_MON_LOCK) = ON
Sort (DFT_MON_SORT) = OFF
Statement (DFT_MON_STMT) = ON
Table (DFT_MON_TABLE) = ON
Timestamp (DFT_MON_TIMESTAMP) = ON
Unit of work (DFT_MON_UOW) = OFF
Monitor health of instance and databases (HEALTH_MON) = ON
構成
ホスト
ホストで実行中の Agent に対してこのチェックを構成するには
メトリクスの収集
ibm_db2
のパフォーマンスデータの収集を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/
フォルダーの ibm_db2.d/conf.yaml
ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル ibm_db2.d/conf.yaml を参照してください。
Agent を再起動します。
ログ収集
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml
ファイルでこれを有効にします。
IBM Db2 のログの収集を開始するには、次の構成ブロックを ibm_db2.d/conf.yaml
ファイルに追加します。
logs:
- type: file
path: /home/db2inst1/sqllib/db2dump/db2diag.log
source: ibm_db2
service: db2sysc
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: \d{4}\-(0?[1-9]|[12][0-9]|3[01])\-(0?[1-9]|1[012])
Agent を再起動します。
コンテナ化
コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。
メトリクスの収集
パラメーター | 値 |
---|
<INTEGRATION_NAME> | ibm_db2 |
<INIT_CONFIG> | 空白または {} |
<INSTANCE_CONFIG> | {"db": "<DB_NAME>", "username":"<USERNAME>", "password":"<PASSWORD>", "host":"%%host%%", "port":"%%port%%"} |
ログ収集
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。
パラメーター | 値 |
---|
<LOG_CONFIG> | `{“source”: “ibm_db2”, “service”: “<SERVICE_NAME>”, “log_processing_rules”: {“type”:“multi_line”,“name”:“new_log_start_with_date”, “pattern”:"\d{4}-(0?[1-9] |
検証
Agent の status サブコマンドを実行し、Checks セクションで ibm_db2
を探します。
収集データ
メトリクス
イベント
- テーブルスペースの状態が変化するたびに、
ibm_db2.tablespace_state_change
がトリガーされます。
サービスチェック
トラブルシューティング
CLI Driver SQL1531N エラー
以下のようなエラーログが表示される問題が発生した場合
2023-08-10 23:34:47 UTC | CORE | ERROR | (pkg/collector/python/datadog_agent.go:129 in LogMessage) | ibm_db2:c051131490335a94 | (ibm_db2.py:563) | Unable to connect to database `datadog` as user `db2inst1`: [IBM][CLI Driver] SQL1531N The connection failed because the name specified with the DSN connection string keyword could not be found in either the db2dsdriver.cfg configuration file or the db2cli.ini configuration file. Data source name specified in the connection string: "DATADOG". SQLCODE=-1531
その場合、以下のシナリオのいずれかが原因である可能性が高いです。
- 構成 (conf.yaml) にホストとポートの構成がない
db2cli.ini
と db2dsdriver.cfg
が存在しないため、CLI Driver がデータベースを検索できない
Agent はデータベースに正しく接続する場所を決定するために、上記の両方の情報を必要とします。この問題を解決するには、この問題が発生している ibm_db2
チェックのすべてのインスタンスにホストとポートのパラメーターを含めるようにします。あるいは、db2cli.ini
または db2dsdriver.cfg
ファイルで定義された DSN を使用したい場合は、これらのファイルを Agent が使用する clidriver
ディレクトリにコピーします。通常、このディレクトリは Linux の場合 /opt/datadog-agent/embedded/lib/python3.9/site-packages/clidriver/cfg
にあります。
オフラインで ibm_db
クライアントライブラリをインストールする
エアギャップ環境、または制限されたネットワーク上で pip install ibm_db==x.y.z
(x.y.z
はバージョン番号) を実行できない場合、以下の方法で ibm_db
をインストールすることが可能です。
ネットワークにアクセスできるマシンで、ibm_db
ライブラリと ODBC と CLI のソース tarball をダウンロードします。ODBC と CLI は ibm_db
ライブラリが必要とするため、別途ダウンロードする必要がありますが、pip
経由ではダウンロードできません。以下のスクリプトは ibm_db==x.y.z
(x.y.z
はバージョン番号) のアーカイブファイルを Linux マシンにインストールします。
curl -Lo ibm_db.tar.gz https://github.com/ibmdb/python-ibmdb/archive/refs/tags/vx.y.z.tar.gz
curl -Lo linuxx64_odbc_cli.tar.gz https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz
制限されたホストに 2 つのファイルを転送し、アーカイブを展開します。
tar -xvf ibm_db.tar.gz
tar -xvf linuxx64_odbc_cli.tar.gz
環境変数 IBM_DB_HOME
に /clidriver
が linuxx64_odbc_cli.tar.gz
から展開された場所を設定します。これにより、ibm_db
ライブラリが新しいバージョンの ODBC と CLI をインストールするのを防ぐことができます (これは失敗するため)。
export IBM_DB_HOME=/path/to/clidriver
Agent に組み込まれた pip
を使用して、ibm_db
ライブラリをローカルにインストールします。このライブラリのファイルは ibm_db.tar.gz
から展開された python-ibmdb-x.y.z
にコンテナとして含まれています。
/opt/datadog-agent/embedded/bin/pip install --no-index --no-deps --no-build-isolation /path/to/python-ibmdb-x.y.z/IBM_DB/ibm_db/
以下のエラーが発生した場合
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
| exit code: 1
-> [8 lines of output]
Detected 64-bit Python
Detected platform = linux, uname = x86_64
Downloading https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz
Downloading DSDriver from url = https://public.dhe.ibm.com/ibmdl/export/pub/software/data/db2/drivers/odbc_cli/linuxx64_odbc_cli.tar.gz
Pre-requisite check [which gcc] : Failed
No Gcc installation detected.
Please install gcc and continue with the installation of the ibm_db.
[end of output]
gcc
をインストールする必要があるかもしれません。
ご不明な点は、Datadog のサポートチームまでお問合せください。
その他の参考資料
お役に立つドキュメント、リンクや記事: