ITMカスタムエージェントのSDAサポート(パブリックプレビュー)
Agent Builder またはAgent Factoryの XML ファイルに特定の XML 設定要素を追加することで、ITMカスタムエージェント向けのSDA(Self Describing Agent)コンテンツ生成を有効にします。
概要
ITMカスタムエージェントがSDA(自己記述エージェント)コンテンツを提供できるようにするには、 Agent Builder またはAgent Factory XML の設定に、特定の XML 要素を追加する必要があります。
SDAをサポートするために必要な XML 要素
SDAコンテンツの生成を有効にするには、エージェント設定ファイル XML に次の行を追加してください:
<SelfDescribing enabled="true"/>
この要素を 要素 <FORMAL_PRODUCT> の子要素として追加してください。
以下はサンプル・コードの一部です。
<FORMAL_PRODUCT>
<PRODUCT_SERVICE_NAME service_name="Test1"/>
<FORMAL_PRODUCT_NAME product_name="Test1"/>
<PRODUCT_CODE product_code="K01"/>
<COPYRIGHT copyright="This is a test demo agent"/>
<BUILD_COUNTER build_counter="1"/>
<AFFINITY_DEF_LIST>
<AFFINITY_DEF id="%IBM.K01" text="Test1"/>
</AFFINITY_DEF_LIST>
<AGENT_AFFINITY agent_affinity_tag="%IBM.K01" agent_affinity_value="%IBM.K01"/>
<PRODUCT_VERSION initial_product_version="100" product_version="100"/>
<AGENT_VERSION value="1"/>
<AGENT_TO_FACTORY_VERSION_CORRELATION_LIST>
<AGENT_TO_FACTORY_VERSION_CORRELATION agent_version="1" performance_object_status_version="2"/>
<AGENT_TO_FACTORY_VERSION_CORRELATION agent_version="1" thread_pool_status_version="1"/>
<AGENT_TO_FACTORY_VERSION_CORRELATION actions_version="1" agent_version="1"/>
</AGENT_TO_FACTORY_VERSION_CORRELATION_LIST>
<MULTIPLE_INSTANCE_SUPPORT multi_instance_support="false"/>
<USERS_GUIDE_DOC_ID value="0000-0000-00"/>
<SelfDescribing enabled="true"/>
<FORMAL_APPLICATION_NAME value=""/>
...
SDA対応のエージェントを構築する
SDAに対応したエージェントを構築するには、以下の手順に従ってください:
- 手順 1: エージェントを更新する XML
- 前述のSDA設定例に示すように、エージェントの XML 設定ファイルにSDAセクションを追加してください。
- ステップ 2: エージェントイメージを作成する
cd $CANDLEHOME/bin # Build the agent with SDA support ./itmcmd agent build -p KMQ -v 063700000 -x /path/to/mq_agent_with_sda.xml- ステップ3:SDAの機能を確認する
ビルド後、エージェントにSDA機能が含まれていることを確認してください:
# Check agent capabilities ./itmcmd agent -o KMQ capabilities # Expected output should include: # SITUATIONS=true # SDA=true # REFLEX_AUTOMATION=true
SDA対応エージェントの配布
SDA 対応のエージェントイメージを構築したら、以下のセクションで説明されている方法に従って、そのイメージを配布してください。
ITMカスタムエージェントのイメージ配布
カスタムITMエージェントファクトリまたは Agent Builder エージェントの XML 設定を変更する場合は、更新されたエージェントイメージをエンドポイントに配布する際、体系的なアプローチを採用してください。
この tacmd agentUpdate コマンドは、カスタムITMエージェントイメージを一元的に配布するための方法を提供します。 適切な計画、テスト、監視を行うことで、大規模なITM環境全体においてエージェントの更新を効率的に管理することができます。
流通手法
使用 tacmd agentUpdate (推奨)
この tacmd agentUpdate コマンドは、ITM環境においてエージェントの更新プログラムを配布するための主要な方法です。
前提条件
- TEMS( Tivoli Enterprise Monitoring Server)が実行されている必要があります
- エージェント・デポを設定し、アクセス可能にする必要があります
- コマンド tacmd を実行するための十分な権限
- TEMSとターゲットエージェント間のネットワーク接続
基本構文
tacmd agentUpdate -t <product_code> -v <version> [-n <node_list>] [-m <managed_system_list>]
エージェントの更新プロセスフロー
┌─────────────────────────────────────────────────────────────┐
│ 1. Build Custom Agent Image │
│ - Modify XML configuration │
│ - Use Agent Builder to generate agent image │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 2. Deploy to Agent Depot │
│ - Copy agent image to TEMS depot directory │
│ - Register with depot using tacmd addBundles │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 3. Distribute to Target Agents │
│ - Use tacmd agentUpdate to push updates │
│ - Agents download and install automatically │
└─────────────────────┬───────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 4. Verify and Restart │
│ - Verify installation status │
│ - Restart agents if required │
└─────────────────────────────────────────────────────────────┘
詳細な実施手順
ステップ 1: カスタムエージェントイメージを作成する
XML の設定を変更した後(例: MQ エージェントの場合):
# Navigate to Agent Builder directory
cd $CANDLEHOME/bin
# Build the agent image
./itmcmd agent build -p <product_code> -v <version>
カスタムエージェントファクトリエージェントの場合:
# Example for custom MQ agent (KMQ)
./itmcmd agent build -p KMQ -v 063700000
ステップ 2: エージェントイメージをデポに追加する
# Login to TEMS
tacmd login -s <tems_hostname> -u <username> -p <password>
# Add the agent bundle to depot
tacmd addBundles -t <product_code> -v <version> -p <path_to_agent_image>
# Example for custom MQ agent
tacmd addBundles -t KMQ -v 063700000 -p /opt/IBM/ITM/InstallITM/images/KMQ_063700000.tar
ステップ3:エージェントの更新を配布する
オプションA:ノード名で特定のエージェントを更新する。
tacmd agentUpdate -t KMQ -v 063700000 -n "node1:KMQ node2:KMQ node3:KMQ"
オプション B:管理対象システム一覧による更新。
tacmd agentUpdate -t KMQ -v 063700000 -m "MQAGENT01 MQAGENT02 MQAGENT03"
オプション C :特定のタイプのすべてのエージェントを更新します。
# First, get list of all agents
tacmd listSystems -t KMQ > kmq_agents.txt
# Then update all
tacmd agentUpdate -t KMQ -v 063700000 -a
オプション D:強制的に更新する(既存のバージョンを上書きする)。
tacmd agentUpdate -t KMQ -v 063700000 -n "node1:KMQ" -f
ステップ4:アップデートの状況を確認する
# Check update status
tacmd getAgentUpdateStatus -t KMQ
# View detailed status for specific node
tacmd getAgentUpdateStatus -t KMQ -n "node1:KMQ"
手順 5: エージェントを再起動する(必要な場合)
# Restart specific agent
tacmd executeCommand -m MQAGENT01 -o -r -l -c "restart"
# Or use itmcmd on the agent system
./itmcmd agent -o <product_code> restart
高度な配信シナリオ
シナリオ1:段階的な導入
大規模な環境では、段階的なアプローチを採用してください:
# Phase 1: Test environment
tacmd agentUpdate -t KMQ -v 063700000 -n "test-node1:KMQ test-node2:KMQ"
# Wait and verify (24-48 hours)
tacmd getAgentUpdateStatus -t KMQ -n "test-node1:KMQ"
# Phase 2: Production subset
tacmd agentUpdate -t KMQ -v 063700000 -n "prod-node1:KMQ prod-node2:KMQ"
# Phase 3: Full production rollout
tacmd agentUpdate -t KMQ -v 063700000 -a
シナリオ 2: エージェント更新ポリシーの使用
更新ポリシーファイルを作成します (agent_update_policy.xml):
<?xml version="1.0" encoding="UTF-8"?>
<AgentUpdatePolicy>
<ProductCode>KMQ</ProductCode>
<Version>063700000</Version>
<Schedule>
<StartTime>2026-03-30T22:00:00</StartTime>
<EndTime>2026-03-31T06:00:00</EndTime>
</Schedule>
<TargetAgents>
<Agent>node1:KMQ</Agent>
<Agent>node2:KMQ</Agent>
</TargetAgents>
<Options>
<AutoRestart>true</AutoRestart>
<Rollback>true</Rollback>
</Options>
</AgentUpdatePolicy>
ポリシーを適用する:
tacmd applyAgentUpdatePolicy -f agent_update_policy.xml
シナリオ3:自動配布スクリプト
自動配布用のシェルスクリプトを作成する:
#!/bin/bash
# distribute_custom_agent.sh
PRODUCT_CODE="KMQ"
VERSION="063700000"
TEMS_HOST="tems.example.com"
USERNAME="sysadmin"
AGENT_IMAGE="/opt/IBM/ITM/images/KMQ_063700000.tar"
LOG_FILE="/var/log/itm_agent_update_$(date +%Y%m%d_%H%M%S).log"
# Function to log messages
log_message() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
# Login to TEMS
log_message "Logging into TEMS..."
tacmd login -s "$TEMS_HOST" -u "$USERNAME" -p "$PASSWORD" >> "$LOG_FILE" 2>&1
if [ $? -ne 0 ]; then
log_message "ERROR: Failed to login to TEMS"
exit 1
fi
# Add bundle to depot
log_message "Adding agent bundle to depot..."
tacmd addBundles -t "$PRODUCT_CODE" -v "$VERSION" -p "$AGENT_IMAGE" >> "$LOG_FILE" 2>&1
if [ $? -ne 0 ]; then
log_message "ERROR: Failed to add bundle to depot"
exit 1
fi
# Get list of target agents
log_message "Retrieving list of target agents..."
tacmd listSystems -t "$PRODUCT_CODE" > /tmp/agent_list.txt
# Update agents
log_message "Starting agent update..."
tacmd agentUpdate -t "$PRODUCT_CODE" -v "$VERSION" -a >> "$LOG_FILE" 2>&1
if [ $? -ne 0 ]; then
log_message "ERROR: Agent update command failed"
exit 1
fi
# Monitor update status
log_message "Monitoring update status..."
sleep 60
tacmd getAgentUpdateStatus -t "$PRODUCT_CODE" >> "$LOG_FILE" 2>&1
log_message "Agent update process completed. Check log for details: $LOG_FILE"
# Logout
tacmd logout >> "$LOG_FILE" 2>&1
ベスト・プラクティス
配布前の確認リスト
- 開発環境で XML の設定変更をテストする
- エージェントイメージのビルドが正常に完了したことを確認する
- エージェント・デポに十分な空き容量があることを確認してください
- 現在のエージェント設定のバックアップを作成する
- XML の設定に加えられた変更を記録する
- ロールバック計画を策定する
配布に関するベストプラクティス
- テストを最優先:常に本番環境以外でテストを行う
- 段階的な展開:全面展開の前に、一部のユーザーを対象に展開する
- メンテナンス時間帯:アクセスが少ない時間帯に更新をスケジュールする
- 連絡:更新を行う前に関係者に通知する
- 監視:更新中および更新後のエージェントの状態を監視する
- ロールバックの準備完了:ロールバック手順を文書化し、テスト済み
配布後の検証
# Verify agent version
tacmd listSystems -t KMQ -d | grep -i version
# Check agent status
tacmd listSystems -t KMQ -s
# Verify data collection
tacmd viewDepot -t KMQ -n "node1:KMQ"
# Check for errors in agent logs
# On agent system:
tail -f $CANDLEHOME/logs/KMQ_*.log
一般的な問題のトラブルシューティング
問題:エージェントの更新に失敗しました。
# Check depot connectivity
tacmd listBundles -t KMQ
# Verify agent can reach TEMS
# On agent system:
ping <tems_hostname>
telnet <tems_hostname> 1918
# Check agent update logs
tail -f $CANDLEHOME/logs/agent_update.log
問題:アップデート後にエージェントが応答しなくなった。
# Check agent status
tacmd listSystems -t KMQ -n "node1:KMQ"
# Restart agent
tacmd executeCommand -m MQAGENT01 -o -r -l -c "restart"
# If still not responding, rollback
tacmd agentUpdate -t KMQ -v <previous_version> -n "node1:KMQ" -f
代替的な配布方法
方法 1:手動配布
集中管理型リポジトリがない環境の場合:
# 1. Copy agent image to target systems
scp KMQ_063700000.tar user@target-host:/tmp/
# 2. On each target system, install manually
cd $CANDLEHOME/bin
./itmcmd agent -o KMQ stop
tar -xvf /tmp/KMQ_063700000.tar -C $CANDLEHOME
./itmcmd agent -o KMQ start
方法 2:構成管理ツール
Ansible、Puppet、Chef などのツールを使用します:
# Ansible playbook example
---
- name: Update ITM Custom Agent
hosts: itm_agents
tasks:
- name: Stop agent
command: "{{ candlehome }}/bin/itmcmd agent -o KMQ stop"
- name: Copy agent image
copy:
src: /depot/KMQ_063700000.tar
dest: /tmp/KMQ_063700000.tar
- name: Extract agent image
unarchive:
src: /tmp/KMQ_063700000.tar
dest: "{{ candlehome }}"
remote_src: yes
- name: Start agent
command: "{{ candlehome }}/bin/itmcmd agent -o KMQ start"
- name: Verify agent status
command: "{{ candlehome }}/bin/itmcmd agent -o KMQ status"
register: agent_status
- name: Display status
debug:
var: agent_status.stdout
セキュリティーに関する考慮事項
- 認証 :操作 tacmd を行う際は、常に安全な認証情報を使用してください
- 暗号化 :エージェントとTEMS間の通信が暗号化されていることを確認する
- アクセス制御 :エージェントの更新を実行できるユーザーを制限する
- 監査証跡 :すべての更新操作を記録する
- 検証 :配布前にエージェントイメージの整合性を確認する
パフォーマンスの考慮事項
- ネットワーク帯域幅 :エージェントの画像サイズが大きいと、ネットワークに負荷がかかる可能性があります
- 同時更新 :同時更新の数を制限する
- 保管容量 :複数のバージョンに対応できる十分な保管スペースを確保する
- エージェントの停止時間 :更新中に短時間のサービス中断が発生する可能性がありますので、あらかじめご了承ください
文書化の要件
以下の事項に関する文書を整備する:
- XML 設定の変更
- エージェントのバージョン履歴
- 配布スケジュールと結果
- ロールバック手順
- 既知の問題と解決策。