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

セキュリティーに関する考慮事項

  1. 認証 :操作 tacmd を行う際は、常に安全な認証情報を使用してください
  2. 暗号化 :エージェントとTEMS間の通信が暗号化されていることを確認する
  3. アクセス制御 :エージェントの更新を実行できるユーザーを制限する
  4. 監査証跡 :すべての更新操作を記録する
  5. 検証 :配布前にエージェントイメージの整合性を確認する

パフォーマンスの考慮事項

  1. ネットワーク帯域幅 :エージェントの画像サイズが大きいと、ネットワークに負荷がかかる可能性があります
  2. 同時更新 :同時更新の数を制限する
  3. 保管容量 :複数のバージョンに対応できる十分な保管スペースを確保する
  4. エージェントの停止時間 :更新中に短時間のサービス中断が発生する可能性がありますので、あらかじめご了承ください

文書化の要件

以下の事項に関する文書を整備する:

  • XML 設定の変更
  • エージェントのバージョン履歴
  • 配布スケジュールと結果
  • ロールバック手順
  • 既知の問題と解決策。