ITM 커스텀 에이전트 SDA 지원 (공개 미리 보기)
Agent Builder 또는 Agent Factory XML 파일에 특정 XML 구성 요소를 추가하여 ITM 사용자 정의 에이전트에 대해 SDA(Self Describing Agent) 콘텐츠 생성을 활성화합니다.
개요
ITM 사용자 정의 에이전트가 SDA(Self Describing Agent) 콘텐츠를 제공할 수 있도록 하려면, 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 구성 예시와 같이 SDA 섹션을 에이전트 XML 의 구성 파일에 추가하십시오.
- 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 구성 변경 사항
- 에이전트 버전 기록
- 배포 일정 및 결과
- 롤백 절차
- 알려진 문제 및 해결 방법.