두 노드가 다 붙어 있습니다. 구별 방법과 명령 발송 방법을 정확히 설명하겠습니다. 지금 보이는 두 노드 registered_at 과 bytes_in 으로 어느 쪽이 어느 노드인지 추정할 수 있습니다: uuid bytes_in 추정 agent-7db039a6... 18,500 x280a — 오래 붙어서 모니터링 데이터 누적 agent-4d6c0b05... 20 x1a — 방금 재연결, HELLO 하나만 들어온 상태 하지만 추정 말고 정확히 어느 노드인지 확인 하려면, mihosocket의 노드 목록 API를 봐야 합니다 — 거기에 uuid와 hostname이 매핑돼 있습니다. uuid → hostname 확인 sh # 서버(7490fb)에서 — 전체 노드 목록 (uuid + hostname) curl -s http://10.8.0.105:8080/api/v1/agent \ -H "Authorization: Bearer <MS_ADMIN_API_KEY>" | jq '.[] | {uuid, hostname, status}' 응답 예: json { "uuid": "agent-7db039a6...", "hostname": "x280a", "status": "enrolled" } { "uuid": "agent-4d6c0b05...", "hostname": "x1a", "status": "enrolled" } 이렇게 uuid ↔ hostname 매핑이 됩니다. relay는 uuid만 알고, hostname은 mihosocket DB에 있습니다. MS_ADMIN_API_KEY 가 아직 없으면 먼저 설정: sh grep MS_ADMIN_API_KEY /etc/miho/mihosrc.env # 있는지 확인 # 없으면: echo "MS_ADMIN_API_KEY=$(openssl rand -hex 24)" | sudo tee -a /etc/miho/mihosrc.env # 서버 재기동 필요 특정 노드에 명령 보내기 uuid만 알면 됩니다 — target_node_uuid 에 그 uuid를 지정합니다. x280a에만 reboot 보내기: sh KEY="<MS_ADMIN_API_KEY>" BASE="http://10.8.0.105:8080" NODE="agent-7db039a6af86f8db96a175c8edf8a4f6" # x280a # 1) prepare RESP=$(curl -s -X POST $BASE/api/v1/command/prepare \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d "{\"target_node_uuid\":\"$NODE\",\"action\":\"system.reboot\"}") echo $RESP | jq # 2) execute CMD=$(echo $RESP | jq -r .command_id) TOK=$(echo $RESP | jq -r .confirm_token) HOST=$(echo $RESP | jq -r .hostname) curl -s -X POST $BASE/api/v1/command/execute \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d "{\"command_id\":\"$CMD\",\"confirm_token\":\"$TOK\",\"hostname_confirmation\":\"$HOST\"}" | jq x1a에 보내려면 NODE만 agent-4d6c0b05... 로 바꾸면 됩니다. bytes_out=0 문제 (아까 로그) 두 노드 모두 bytes_out=0 입니다 — relay가 에이전트에게 보낸 것이 없거나, bytes_out 카운터가 HELLO_ACK를 안 세는 것입니다. 에이전트가 실제로 HELLO_ACK를 받는지 확인: sh # x1a에서 grep -aE "HELLO_ACK|WSS connected" /var/log/mihosrcd.log | tail -5 HELLO_ACK가 찍히면 → bytes_out 카운터가 안 세는 것(코드 위치 문제, 기능엔 무관). 안 찍히면 → HELLO_ACK가 실제로 안 가는 것이라 수정 필요. 정리: uuid 구별 → /api/v1/agent (mihosocket)에 hostname 매핑 있음 특정 노드 명령 → target_node_uuid 에 해당 uuid 지정 relay는 uuid만 알고 hostname은 모름 — 둘을 연결하는 건 mihosocket DB /api/v1/agent 결과를 주시면 어느 uuid가 어느 노드인지 정확히 확인하겠습니다.