概要
このチェックは IBM MQ バージョン 9.1 以降を監視します。
セットアップ
インストール
IBM MQ チェックは Datadog Agent パッケージに含まれています。
IBM MQ チェックを使用するには、IBM MQ クライアントバージョン 9.1+ がインストールされていることを確認してください (Agent ホストに互換バージョンの IBM MQ サーバーがすでにインストールされている場合を除く)。例えば、9.3 再頒布可能クライアントです。現在、IBM MQ チェックは z/OS 上の IBM MQ サーバーへの接続をサポートしていません。
Linux の場合
ライブラリの場所を含めるために LD_LIBRARY_PATH
を更新してください。この環境変数がまだ存在しない場合は作成してください。
例えば、クライアントを /opt
の下にインストールした場合
export LD_LIBRARY_PATH=/opt/mqm/lib64:/opt/mqm/lib:$LD_LIBRARY_PATH
注: Agent v6 以上は、upstart
、systemd
、または launchd
を使用して datadog-agent サービスをオーケストレーションします。場合によっては、サービス構成ファイルに環境変数を追加する必要があります。サービス構成ファイルのデフォルトの場所は、以下の通りです。
- Upstart (Linux):
/etc/init/datadog-agent.conf
- Systemd (Linux):
/lib/systemd/system/datadog-agent.service
- Launchd (MacOS):
~/Library/LaunchAgents/com.datadoghq.agent.plist
以下は、systemd
の構成の例です。
[Unit]
Description="Datadog Agent"
After=network.target
Wants=datadog-agent-trace.service datadog-agent-process.service
StartLimitIntervalSec=10
StartLimitBurst=5
[Service]
Type=simple
PIDFile=/opt/datadog-agent/run/agent.pid
Environment="LD_LIBRARY_PATH=/opt/mqm/lib64:/opt/mqm/lib:$LD_LIBRARY_PATH"
User=dd-agent
Restart=on-failure
ExecStart=/opt/datadog-agent/bin/agent/agent run -p /opt/datadog-agent/run/agent.pid
[Install]
WantedBy=multi-user.target
以下は、upstart
の構成の例です。
description "Datadog Agent"
start on started networking
stop on runlevel [!2345]
respawn
respawn limit 10 5
normal exit 0
console log
env DD_LOG_TO_CONSOLE=false
env LD_LIBRARY_PATH=/opt/mqm/lib64:/opt/mqm/lib:$LD_LIBRARY_PATH
setuid dd-agent
script
exec /opt/datadog-agent/bin/agent/agent start -p /opt/datadog-agent/run/agent.pid
end script
post-stop script
rm -f /opt/datadog-agent/run/agent.pid
end script
```Agent
以下は、`launchd` の構成の例です。
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<false/>
</dict>
<key>Label</key>
<string>com.datadoghq.agent</string>
<key>EnvironmentVariables</key>
<dict>
<key>DD_LOG_TO_CONSOLE</key>
<string>false</string>
<key>LD_LIBRARY_PATH</key>
<string>/opt/mqm/lib64:/opt/mqm/lib</string>
</dict>
<key>ProgramArguments</key>
<array>
<string>/opt/datadog-agent/bin/agent/agent</string>
<string>run</string>
</array>
<key>StandardOutPath</key>
<string>/var/log/datadog/launchd.log</string>
<key>StandardErrorPath</key>
<string>/var/log/datadog/launchd.log</string>
<key>ExitTimeOut</key>
<integer>10</integer>
</dict>
</plist>
Agent が更新されるたびに、これらのファイルは消去されるため、再更新する必要があります。
または、Linux を使用している場合は、MQ クライアントのインストール後に、ランタイムリンカがライブラリを見つけることができることを確認します。たとえば、ldconfig を使用します。
ld 構成ファイルにライブラリの場所を追加します。
sudo sh -c "echo /opt/mqm/lib64 > /etc/ld.so.conf.d/mqm64.conf"
sudo sh -c "echo /opt/mqm/lib > /etc/ld.so.conf.d/mqm.conf"
バインディングを更新します。
Windows の場合
IBM MQ のデータディレクトリに mqclient.ini
というファイルがあります。通常は C:\ProgramData\IBM\MQ
です。
環境変数 MQ_FILE_PATH
を構成し、データディレクトリを指すようにします。
アクセス許可と認証
IBM MQ で権限を設定する方法はたくさんあります。セットアップの方法にもよりますが、MQ 内に datadog
ユーザーを作成して、読み取り専用権限と、オプションで +chg
権限を設定します。+chg
権限は、リセットキュー統計 (MQCMD_RESET_Q_STATS
) のメトリクスを収集するために必要です。これらのメトリクスを収集したくない場合は、構成で collect_reset_queue_metrics
を無効にできます。リセットキュー統計のパフォーマンスデータを収集すると、パフォーマンスデータもリセットされます。
注: MQ サーバーで “Queue Monitoring” を有効にして、少なくとも “Medium” に設定する必要があります。これは、サーバーのホストで MQ UI または mqsc
コマンドを使用して実行できます。
> /opt/mqm/bin/runmqsc
5724-H72 (C) Copyright IBM Corp. 1994, 2018.
Starting MQSC for queue manager datadog.
ALTER QMGR MONQ(MEDIUM) MONCHL(MEDIUM)
1 : ALTER QMGR MONQ(MEDIUM) MONCHL(MEDIUM)
AMQ8005I: IBM MQ queue manager changed.
:
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
構成
ホスト
ホストで実行中の Agent に対してこのチェックを構成するには
メトリクスの収集
IBM MQ のパフォーマンスデータを収集するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/
フォルダーの ibm_mq.d/conf.yaml
ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションについては、サンプル ibm_mq.d/conf.yaml を参照してください。
IBM MQ を構成するオプションはいくつもあり、使用方法によって構成は変わります。
channel
: IBM MQ チャンネルqueue_manager
: 指定されたキューマネージャーhost
: IBM MQ が実行されているホストport
: IBM MQ が公開しているポートconvert_endianness
: MQ サーバーが AIX または IBM i で動作している場合、これを有効にする必要があります
ユーザー名とパスワードのセットアップを使用している場合、username
と password
を設定できます。ユーザー名が設定されていない場合、Agent プロセスの所有者 (dd-agent
) が使用されます。
注: このチェックは、queues
パラメーターで設定したキューのみを監視します
queues:
- APP.QUEUE.1
- ADMIN.QUEUE.1
Agent を再起動します。
ログ収集
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml
ファイルでこれを有効にします。
次に、構成ファイルで適切な MQ ログファイルを指定します。MQ インテグレーションの構成ファイルの下部にある行のコメントを解除し、適宜修正してください。
logs:
- type: file
path: '/var/mqm/log/<APPNAME>/active/AMQERR01.LOG'
service: '<APPNAME>'
source: ibm_mq
log_processing_rules:
- type: multi_line
name: new_log_start_with_date
pattern: "\d{2}/\d{2}/\d{4}"
Agent を再起動します。
コンテナ化
コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。
メトリクスの収集
パラメーター | 値 |
---|
<INTEGRATION_NAME> | ibm_mq |
<INIT_CONFIG> | 空白または {} |
<INSTANCE_CONFIG> | {"channel": "DEV.ADMIN.SVRCONN", "queue_manager": "datadog", "host":"%%host%%", "port":"%%port%%", "queues":["<キュー名>"]} |
ログ収集
Agent バージョン 6.0 以降で利用可能
Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。
パラメーター | 値 |
---|
<LOG_CONFIG> | {"source": "ibm_mq", "service": "<サービス名>", "log_processing_rules": {"type":"multi_line","name":"new_log_start_with_date", "pattern":"\d{2}/\d{2}/\d{4}"}} |
検証
Agent の status サブコマンドを実行し、Checks セクションで ibm_mq
を探します。
収集データ
メトリクス
イベント
IBM MQ には、イベントは含まれません。
サービスチェック
トラブルシューティング
リセットキュー統計 MQRC_NOT_AUTHORIZED 権限の警告
以下の警告が表示される場合
Warning: Error getting pcf queue reset metrics for SAMPLE.QUEUE.1: MQI Error. Comp: 2, Reason 2035: FAILED: MQRC_NOT_AUTHORIZED
これは、datadog
ユーザーがリセットキューのメトリクスを収集するための +chg
権限を持っていないことが原因です。これを解決するには、datadog
ユーザーに +chg
権限を与えて setmqaut
キューのリセットメトリクスを収集するか、あるいは collect_reset_queue_metrics
を無効にしてください。
collect_reset_queue_metrics: false
高いリソース利用率
IBM MQ チェックはサーバー上でクエリを実行しますが、これらのクエリが高価になり、チェックに劣化をもたらすことがあります。
チェックの実行に時間がかかったり、ホスト上で多くのリソースを消費していることが確認された場合、以下を試してチェックの範囲を縮小できる可能性があります。
auto_discover_queues
を使用している場合は、代わりに queue_patterns
や queue_regex
を使用して、特定のキューのみを検出するようにしてください。これは、システムが動的なキューを生成している場合に特に有効です。queue_patterns
や queue_regex
を使用してキューを自動検出する場合は、パターンや正規表現を絞り込んで、より少ないキューにしかマッチしないようにしてみてください。- チャンネル数が多すぎる場合は
auto_discover_channels
を無効にしてください。 collect_statistics_metrics
を無効にします。
ログのエラー
Unpack for type ((67108864,)) not implemented
: このようなエラーが発生し、MQ サーバーが IBM OS で動作している場合は、convert_endianness
を有効にして Agent を再起動します。
ログに表示される警告
Error getting [...]: MQI Error. Comp: 2, Reason 2085: FAILED: MQRC_UNKNOWN_OBJECT_NAME
: このようなメッセージが表示される場合、インテグレーションが存在しないキューからメトリクスを収集しようとしていることが原因です。これは、構成ミスか、auto_discover_queues
を使用している場合、インテグレーションがダイナミックキューを発見して、メトリクスを収集しようとしたときに、そのキューがもはや存在しないことが原因です。この場合、より厳格な queue_patterns
や queue_regex
を指定して問題を軽減するか、あるいは警告を無視することができます。
その他
ご不明な点は、Datadog のサポートチームまでお問合せください。
その他の参考資料
お役に立つドキュメント、リンクや記事: