ITMと V6 の統合に向けた TLS または HTTPS の設定(パブリックプレビュー)
IBM Tivoli Monitoring および V6 エージェントと Instana ホストエージェント間の、 TLS または HTTPS による安全な通信を設定する方法について説明します。
概要
デフォルトでは、ITMエージェントは、ポート42699(ITMエージェントと Instana 間の通信におけるデフォルトポート)の HTTP 経由で、 Instana ホストエージェントと通信します。 安全な通信を行うために、ITMエージェントと Instana ホストエージェント間の TLS / HTTPS 接続を設定できます。
HTTPS を設定するには、双方で証明書の設定を行う必要があります:
- Instana ホストエージェント側: TLS の証明書(
.crtおよび.keyファイル)を設定し、ポート42699で HTTPS を有効にします。 - ITMエージェント側: Instana ホストエージェントの証明書を信頼するように、 IBM のGSK(Global Security Kit)キーリングファイルを設定します。
Instana のホストエージェントは、標準的なテキスト形式の証明書ファイル(.crt および .key)を使用しますが、ITMエージェントは IBM のGSKキーリングデータベースファイル(.kdb および .sth)を必要とします。 このガイドでは、両方の証明書形式の作成および設定手順を順を追って説明します。
前提条件
作業を開始する前に、以下の要件を満たしていることを確認してください:
- Instana のホストエージェントをインストールして実行します。
- ITM V6 エージェントがバージョン またはそれ以降
6.3.0.7-TIV-ITM_TEMA-IF0008に更新されていること。 HTTPS をサポートするには、このバージョンが必要です。 - 証明書を生成するシステムに OpenSSL をインストールしてください。
- IBM のGSKitコマンドが利用可能であることを確認してください(通常、ITMのインストールに含まれています)。
- ITM「 V6 」設定パックをダウンロードして解凍してください。
手順 1: Instana ホストエージェントで TLS を設定する
まず、 Instana ホストエージェントで TLS を有効にし、ポート42699での HTTPS 接続を受け入れるように設定します。
TLS 証明書の作成
自己署名証明書を作成するか、認証局(CA)から証明書を取得することができます。
オプションA:自己署名証明書を作成する
自己署名証明書を作成するには、次のコマンドを使用します:
# Create a private key
openssl genrsa -out tls.key 2048
# Create a certificate signing request (CSR)
# Replace 'instana.example.com' with your Instana host agent's hostname
openssl req -new -key tls.key -out tls.csr -subj "/CN=instana.example.com"
# Create a self-signed certificate valid for 365 days
openssl x509 -req -days 365 -in tls.csr -signkey tls.key -out tls.crt
オプションB:自社のCAが発行した証明書を使用する
すでに認証局(CA)から証明書を取得している場合は:
- 証明書ファイル(
.crtまたは.pem)と秘密鍵ファイル(.key)の両方が用意されていることを確認してください。ファイル.pemとファイル.crtはどちらもテキスト形式の証明書であり、互換性があります。 - 証明書の共通名(CN)が、 Instana のホストエージェントのホスト名と一致していることを確認してください:
openssl x509 -in your-cert.crt -noout -subject
Instana ホストエージェントへの証明書のインストール
- 証明書ファイルを Instana のホストエージェントにコピーします:
- <agent_installation>/etc/certs/tls.crt
- <agent_installation>/etc/certs/tls.key
- 証明書を追加したら、エージェントを再起動してネットワーク接続を初期化してください。
- エージェントが HTTPS でリスニングしていることを確認してください:
# This should show a TLS handshake openssl s_client -connect localhost:42699 -showcerts出力には証明書チェーンと、接続が正常に確立されたことが表示されます。
Instana ホストエージェントにおける TLS の設定に関する詳細については、 「エージェントエンドポイントの TLS 暗号化の設定」 を参照してください。
ステップ 2: ITM エージェント用の「 IBM 」GSK キーリング ファイルを作成する
ITMエージェントは、証明書に IBM Global Security Kit (GSK) 形式を使用します。これには、キーリングデータベース (.kdb) とスタッシュファイル (.sth) の作成が必要です。
IBM のGSKitコマンドの場所
IBM GSKitは通常、ITMのインストールに含まれています。 以下の例では、 Linux のパスを使用しています。 その他の Unix 類似システム( AIX )については、お使いのITMのインストール環境に合わせてパスを調整してください。
GSKit コマンドの一般的な配置場所:
- Linux: /opt/IBM/ITM/<arch>/gs/bin/gsk8capicmd_64
- Windows : C:\IBM\ITM\GSK8_x64\bin\gsk8capicmd_64.exe (32ビットシステムの場合は、の代わりに
GSK8GSK8_x64を使用してください)
Linux でGSKitコマンドを使用する前に、ライブラリのパスを設定してください:
export LD_LIBRARY_PATH=/opt/IBM/ITM/<arch>/gs/lib64:$LD_LIBRARY_PATH
LIBPATHLD_LIBRARY_PATH を使用してください。GSKit コマンドが利用可能かどうかを確認してください:
/opt/IBM/ITM/<arch>/gs/bin/gsk8capicmd_64 -help
キーリングファイルの作成
- 設定パック内に
keyfilesディレクトリを作成します:cd /path/to/instana-v6-configuration-pack mkdir keyfiles cd keyfiles - GSKit コマンドへのパスを設定します(お使いの ITM のインストール環境に合わせて調整してください):
GSK_CMD=/opt/IBM/ITM/<arch>/gs/bin/gsk8capicmd_64 - スタッシュファイルを使用して新しいキーリングデータベースを作成します:
$GSK_CMD -keydb -create -db keyfile.kdb -pw password -type cms -stash重要: 「password」を強固なパスワードに置き換えてください。 stashファイルはこのパスワードを暗号化しますが、組織のセキュリティポリシーに従って、安全なパスワードを設定してください。注: この-stashオプションを指定すると、パスワードを暗号化された形式で保存するスタッシュファイルkeyfile.sthが作成されます。 これにより、ITMエージェントはパスワードの入力を求められずにキーリングにアクセスできるようになります。 - ステップ1で作成した Instana ホストエージェントの証明書を、現在のディレクトリにコピーします。 Instana のホストエージェントシステムから、キーリングファイルを作成するシステムへ、その
tls.crtファイルを転送する必要があります:# Example: Copy the certificate from the Instana host agent # name the file instana-host-agent.crt - Instana ホストエージェントの証明書を、信頼されたCA証明書としてキーリングにインポートします:
$GSK_CMD -cert -add -db keyfile.kdb -pw password -label "Instana_Host_Agent_Cert" -file instana-host-agent.crt -format ascii -trust enable注: インポートに失敗した場合は、証明書ファイルの形式がASCIIまたは PEM であること、およびファイルパスが正しいことを確認してください。注: この-trust enableフラグを設定すると、この証明書が信頼済みとしてマークされ、ITMエージェントが Instana ホストエージェントからの接続を受け入れるようになります。 - キーリングの内容を確認してください:
$GSK_CMD -cert -list -db keyfile.kdb -pw password出力には、キーリング内の証明書(「Instana_Host_Agent_Cert」を含む)が一覧表示されます。
- (オプション)インポート後に証明書ファイルを削除する:
rm instana-host-agent.crt注: 証明書がキーリングにインポートされると、元の証明書ファイルは不要となるため、セキュリティ上の理由から削除しても構いません。 - keyfiles ディレクトリに、少なくとも以下のファイルが含まれていることを確認してください:
keyfile.kdb- キーリング・データベースkeyfile.sth- パスワードが暗号化されたスタッシュファイルkeyfile.rdb- リクエストデータベース(自動生成)
注: GSKitによって自動的に作成される「Certificate Revocation List」というkeyfile.crlファイルが表示される場合がありますが、 TLS の基本機能を利用するには、このファイルは必須ではありません。
ステップ 3: ITM エージェントが HTTPS を使用するように設定する
キーリングファイルの作成が完了したので、ITMエージェントが HTTPS を使用するように設定してください。
- 設定パック内のファイルを
env.properties更新してください:protocol=https hostname=instana.example.com tenantid=id-mycluster-account port=42699重要: ホスト名が、 Instana ホストエージェントの証明書に記載されている共通名(CN)と一致していることを確認してください。 不一致がある場合、ITMエージェントはセキュアな接続を確立できません。 - ディレクトリ
keyfiles構造を確認してください:ls -la keyfiles/ディレクトリーの内容は、以下のとおりです。
keyfile.kdb keyfile.sth keyfile.rdb - 「 IBM ITM V6 との統合 」に記載されている手順に従って、設定スクリプトを実行してください:
ローカル設定:
./agent2server_itm.sh -i /opt/IBM/ITM -c dual -e env.propertiesリモート設定:
# First, transfer the keyfiles directory to the remote system tacmd putfile -m kvm-011235:LZ -s /path/to/configpack/keyfiles/keyfile.kdb -d /tmp/configpack/keyfiles/keyfile.kdb tacmd putfile -m kvm-011235:LZ -s /path/to/configpack/keyfiles/keyfile.sth -d /tmp/configpack/keyfiles/keyfile.sth tacmd putfile -m kvm-011235:LZ -s /path/to/configpack/keyfiles/keyfile.rdb -d /tmp/configpack/keyfiles/keyfile.rdb # Then run the configuration script tacmd executecommand -m kvm-011235:LZ -c "nohup /bin/sh -c 'sleep 10; /tmp/configpack/agent2server_itm.sh -i /opt/IBM/ITM -c dual -e /tmp/configpack/env.properties > /tmp/output' &" -w /tmp/configpackこのスクリプトは、ディレクトリにあるキーリングファイルを、
keyfilesITMエージェントシステム $CANDLEHOME/keyfiles_icam/ 上のディレクトリに自動的にデプロイします。
ITMエージェントが HTTPS を使用していることを確認する
HTTPS 用に ITM エージェントを設定した後、エージェントが実際にセキュア接続を使用していることを確認してください:
ITMエージェントの設定ファイルを確認し、プロトコルの設定を検証してください:
# Check the agent's environment file for the protocol setting
grep -i "https" $CANDLEHOME/config/*.environment
出力には、 HTTPS プロトコルを示すエントリが表示されています。 また、接続確立中にITMエージェントのログを確認し、「 SSL 」または「 TLS 」に関連するメッセージがないか確認してください。
HTTPS 接続のトラブルシューティング
ITMエージェントが HTTPS 経由で接続できない場合は、以下のトラブルシューティング手順を実行してください:
証明書のホスト名不一致
症状: ITMエージェントが接続に失敗し、ログに「 SSL 」または「 TLS 」というエラーが表示される。
解決策: のホスト名が、 env.propertiesInstana ホストエージェントの証明書に記載されている共通名(CN)と一致していることを確認してください:
# Check the CN in the certificate
openssl x509 -in /opt/instana/agent/etc/certs/tls.crt -noout -subject
# Compare with the hostname in env.properties
grep hostname env.properties
証明書の信頼性に関する問題
症状: ITMエージェントが証明書の検証エラーを報告する。
解決策:Instana のホストエージェントの証明書が、ITMキーリングに正しくインポートされていることを確認してください:
$GSK_CMD -cert -list -db keyfile.kdb -pw password
このリストには「Instana_Host_Agent_Cert」が含まれています。 そうでない場合は、手順2に従って証明書を再インポートしてください。
ITMエージェントのログエラー
症状: 明確なエラーメッセージが表示されないまま接続に失敗する。
解決策: ITMエージェントのログで、 SSL または TLS のエラーがないか確認してください:
# Linux/AIX
tail -f $CANDLEHOME/logs/<short_hostname>_<product_code>_*.log
# Windows
type %CANDLEHOME%\TMAITM6_x64\logs\<short_hostname>_<product_code>_*.log
「 SSL 」、「 TLS 」、「certificate」、または「handshake」という単語が含まれるメッセージを探してください。
Instana ホストエージェントの TLS 設定をテストする
症状:Instana のホストエージェントが、 TLS 用に正しく設定されているか不明です。
解決策:OpenSSL を使用して、 Instana ホストエージェントの TLS 設定を確認します
openssl s_client -connect instana.example.com:42699 -showcerts
接続に成功すると、次のように表示されます:
- 証明書チェーン
- 自己署名証明書の場合、「検証リターンコード:0(OK)」または「検証リターンコード:18(自己署名証明書)」と表示されます
- 「 SSL ハンドシェイクの受信」というメッセージ
キーリングのファイル権限
症状: ITMエージェントがキーリングファイルを読み込めない。
解決策: キーリングファイルがITMエージェントのユーザーによって読み取り可能であることを確認してください:
ls -l $CANDLEHOME/keyfiles_icam/
ファイルには、ITMエージェントユーザーに対して少なくとも読み取り権限が設定されている必要があります。 そうでない場合は、権限を調整してください:
chmod 644 $CANDLEHOME/keyfiles_icam/keyfile.kdb
chmod 644 $CANDLEHOME/keyfiles_icam/keyfile.sth
chmod 644 $CANDLEHOME/keyfiles_icam/keyfile.rdb
ネットワーク接続
症状: 接続タイムアウトまたは「接続拒否」エラーが発生する。
解決策: ネットワーク接続とファイアウォールのルールを確認してください:
# Test connectivity to the Instana host agent
telnet instana.example.com 42699
# Or use nc (netcat)
nc -zv instana.example.com 42699
以下の点を確認してください。
- Instana のホストエージェントシステムでは、ポート42699が開いています。
- ファイアウォールルールにより、ITMエージェントシステムから Instana ホストエージェントへのポート42699での通信が許可されます。
- DNS ホスト名に対して、この設定は正常に機能しています。