NetWorker: RabbitMQ 디버깅 활성화 방법
Summary: 이 KB는 RabbitMQ 서비스, 관련 로그 파일 및 적용할 수 있는 추가 디버깅에 대한 개요입니다.
Instructions
RabbitMQ
NetWorker Server는 RabbitMQ를 메시지 브로커 에이전트 서비스로 사용합니다. NetWorker Server 프로세스(nsrd)와 NetWorker에서 사용되는 기타 서비스 간에 다음과 같은 메시지 대기열 메커니즘을 제공합니다. AUTHC, NMC(NetWorker Management Console), NWUI(NetWorker Web User Interface) 등 RabbitMQ 서비스 문제로 인해 NetWorker 서버 서비스가 종료되고 일반 메시지가 NetWorker 서버의 daemon.raw에 기록됩니다.
- Linux:
/nsr/logs/daemon.raw - Windows(기본값):
C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw137911 YYYY-MM-DD HH:mm:SS AM/PM 5 5 0 313919296 1615791 0 NW_SERVER-NAME nsrctld NSR critical Aborting startup sequence: Process /opt/nsr/rabbitmq-server-3.8.18/bin/rabbitmq-server exited in less than 10 seconds at startup: exit code 0 127108 YYYY-MM-DD HH:mm:SS AM/PM 5 5 0 313919296 1615791 0 NW_SERVER-NAME nsrctld NSR critical Failed to start all daemons; shutting down...
- daemon.raw 렌더링하는 방법: NetWorker: nsr_render_log 사용하여 .raw 로그 파일을 렌더링하는 방법
로그 파일:
로그 경로는 사용하는 rabbitmq-server 버전에 따라 다릅니다. NetWorker 버전에는 RabbitMQ의 최신 버전이 포함될 수 있습니다. 버전별 세부 정보는 다음 주소의 NetWorker Installation 및 NetWorker Administration Guide에서 확인할 수 있습니다. NetWorker 지원 | 매뉴얼 및 문서
/nsr/logs/daemon.raw |
NetWorker 서비스 로그 |
/opt/nsr/rabbitmq-server*/var/log/rabbitmq/log/crash.log |
RabbitMQ 충돌 로그. 이 디렉토리에는 로그 순환에 따라 crash.log#가 포함되어 있습니다. |
/opt/nsr/rabbitmq-server*/var/log/rabbitmq/rabbit@localhost.log |
RabbitMQ 일반 로그 |
/opt/nsr/rabbitmq-server*/var/log/rabbitmq/rabbit@localhost_upgrade.log |
RabbitMQ 업그레이드 로그 |
/nsr/tmp/rabbitmq/cores/erl_crash.dump |
충돌 스택 추적 로그 |
C:\Program Files\EMC NetWorker\nsr\logs\daemon.raw |
NetWorker 서비스 로그 |
C:\Program Files\EMC NetWorker\nsr\tmp\RabbitMQ\log\log\crash.log |
RabbitMQ 충돌 로그. 이 디렉토리에는 로그 순환에 따라 crash.log#가 포함되어 있습니다. |
C:\Program Files\EMC NetWorker\nsr\tmp\RabbitMQ\log\rabbit@HOSTNAME.log |
RabbitMQ 일반 로그 |
C:\Program Files\EMC NetWorker\nsr\tmp\RabbitMQ\log\rabbit@HOSTNAME_upgrade.log |
RabbitMQ 업그레이드 로그 |
C:\Program Files\EMC NetWorker\nsr\tmp\RabbitMQ\cores\erl_crash.dump |
충돌 스택 추적 로그 |
디버깅:
- 원본 rabbitmq.config의 복사본을 만듭니다.
- Linux:
/opt/nsr/rabbitmq-server-#.#.#/etc/rabbitmq/rabbitmq.config - Windows(기본값):
C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-#.#.#\etc\rabbitmq.config
- 다음 줄을 포함하도록 rabbitmq.config 파일을 편집합니다.
Linux:
%% {log_levels, [{channel, info}, {connection, info}, {federation, info}, {mirroring, info}]},
{log_levels, [{connection, debug}, {queue, debug}]},
{log,
[{file, [{level, debug}]},
{categories,
[{connection,
[{level, debug}]
},
{queue,
[{level, debug}]
}
]
}]
},
파일 맨 위에 강조 표시된 다음 행을 추가합니다.
[
{rabbit,
[{tcp_listeners, []},
{log_levels, [{connection, debug}, {queue, debug}]},
{log,
[{file, [{level, debug}]},
{categories,
[{connection,
[{level, debug}]
},
{queue,
[{level, debug}]
}
]
}]
},
{ssl_listeners, [5671]},
- NetWorker 서비스 시작 시도:
- Linux:
systemctl restart networker - Windows(PowerShell):
net stop nsrd /y ; net start nsrd
- rabbit@localhost.log(Linux의 경우), rabbit@NODE.log(Windows의 경우)를 모니터링하고 RabbitMQ 시작을 방해할 수 있는 오류가 있는지 crash.log합니다.
RabbitMQ가 실행 중인 경우 NetWorker 서버에 포트 5671(SSL) 수신 기능이 있어야 합니다.
nsrports -t localhost -p 5671
5671에서 수신하는 프로세스의 PID(Process ID)를 얻으려면 다음 명령을 사용할 수 있습니다. 포트 5671과 연결된 프로세스는 rabbitmq-server에서 가져와야 합니다.
Linux:
netstat -apno | grep 5671
또는
ss -tanp 'sport = :5671'
beam.smp 프로세스의 PID를 사용하여 RabbitMq인지 확인합니다.
ps -ef | grep PID
RabbitMQ가 실행 중인 경우 beam.smp 포트 5671에서 수신 대기하는 프로세스입니다.
예제:
nve:~ # netstat -apno | grep :5671
tcp 0 0 :::5671 :::* LISTEN 31393/beam.smp off (0.00/0/0)
tcp 0 0 192.168.0.4:50612 192.168.0.4:5671 ESTABLISHED 13960/java off (0.00/0/0)
tcp 0 0 ::1:5671 ::1:36464 ESTABLISHED 31393/beam.smp off (0.00/0/0)
tcp 0 0 192.168.0.4:50596 192.168.0.4:5671 ESTABLISHED 13960/java off (0.00/0/0)
tcp 0 0 ::1:36464 ::1:5671 ESTABLISHED 31927/nsrjobd keepalive (6849.54/0/0)
tcp 0 0 ::1:56715 ::1:8695 TIME_WAIT - timewait (0.24/0/0)
tcp 0 0 192.168.0.4:5671 192.168.0.4:50612 ESTABLISHED 31393/beam.smp off (0.00/0/0)
tcp 0 0 ::1:56711 ::1:9436 TIME_WAIT - timewait (23.09/0/0)
tcp 0 0 ::1:56717 ::1:7937 TIME_WAIT - timewait (21.02/0/0)
tcp 0 0 ::1:56719 ::1:9436 TIME_WAIT - timewait (23.09/0/0)
tcp 0 0 192.168.0.4:5671 192.168.0.4:50596 ESTABLISHED 31393/beam.smp off (0.00/0/0)
nve:~ # ps -ef | grep 31393
root 12207 15447 0 23:09 pts/0 00:00:00 grep --color=auto 31393
root 31393 31385 1 23:01 ? 00:00:05 /opt/nsr/rabbitmq-server-4.1.1/erts-14.2.5.11/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -pc unicode -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdcpu none -sbwtdio none -B i -- -root /opt/nsr/rabbitmq-server-4.1.1 -bindir /opt/nsr/rabbitmq-server-4.1.1/erts-14.2.5.11/bin -progname erl -- -home /nsr/rabbitmq -- -pa -noshell -noinput -s rabbit boot -boot start_sasl -syslog logger [] -syslog syslog_error_logger false -kernel prevent_overlapping_partitions false
root 31408 31393 0 23:01 ? 00:00:00 erl_child_setup 1024
Windows(PowerShell):
Get-NetTCPConnection -LocalPort 5671 |
Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State,
@{Name='PID';Expression={$_.OwningProcess}},
@{Name='ExecutablePath';Expression={
(Get-CimInstance Win32_Process -Filter "ProcessId = $($_.OwningProcess)" -ErrorAction SilentlyContinue).ExecutablePath
}}
예:
PS C:\Users\Administrator.NETWORKER> Get-NetTCPConnection -LocalPort 5671 |
>> Select-Object LocalAddress, LocalPort, RemoteAddress, RemotePort, State,
>> @{Name='PID';Expression={$_.OwningProcess}},
>> @{Name='ExecutablePath';Expression={
>> (Get-CimInstance Win32_Process -Filter "ProcessId = $($_.OwningProcess)" -ErrorAction SilentlyContinue).ExecutablePath
>> }}
LocalAddress : fe80::d3e7:121a:e342:3332%4
LocalPort : 5671
RemoteAddress : fe80::d3e7:121a:e342:3332%4
RemotePort : 52085
State : Established
PID : 7720
ExecutablePath : C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-3.12.14\bin\erl.exe
LocalAddress : fe80::d3e7:121a:e342:3332%4
LocalPort : 5671
RemoteAddress : fe80::d3e7:121a:e342:3332%4
RemotePort : 51582
State : Established
PID : 7720
ExecutablePath : C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-3.12.14\bin\erl.exe
LocalAddress : ::1
LocalPort : 5671
RemoteAddress : ::1
RemotePort : 51813
State : Established
PID : 7720
ExecutablePath : C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-3.12.14\bin\erl.exe
LocalAddress : ::
LocalPort : 5671
RemoteAddress : ::
RemotePort : 0
State : Listen
PID : 7720
ExecutablePath : C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-3.12.14\bin\erl.exe
LocalAddress : 0.0.0.0
LocalPort : 5671
RemoteAddress : 0.0.0.0
RemotePort : 0
State : Listen
PID : 7720
ExecutablePath : C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-3.12.14\bin\erl.exe
Windows(명령 프롬프트)
netstat -ano | findstr 5671 wmic process where "ProcessID='PID'" get ProcessID,ExecutablePath
예:
PS C:\Users\Administrator.AMER> netstat -ano | findstr 5671 TCP 0.0.0.0:5671 0.0.0.0:0 LISTENING 356 TCP 192.168.9.123:5671 192.168.9.123:63097 ESTABLISHED 356 TCP 192.168.9.123:5671 192.168.9.123:63098 ESTABLISHED 356 TCP 192.168.9.123:63097 192.168.9.123:5671 ESTABLISHED 6324 TCP 192.168.9.123:63098 192.168.9.123:5671 ESTABLISHED 6324 TCP [::]:5671 [::]:0 LISTENING 356 TCP [::1]:5671 [::1]:63105 ESTABLISHED 356 TCP [::1]:5671 [::1]:63106 ESTABLISHED 356 TCP [::1]:63105 [::1]:5671 ESTABLISHED 4676 TCP [::1]:63106 [::1]:5671 ESTABLISHED 776 PS C:\Users\Administrator.AMER> wmic process where "ProcessID='356'" get ProcessID,ExecutablePath ExecutablePath ProcessId C:\Program Files\EMC NetWorker\nsr\rabbitmq-server-3.8.18\bin\erl.exe 356
Additional Information
NetWorker: 문제 해결을 위해 AUTHC DEBUG를 활성화하는 방법
Networker: REST API 디버깅
을 활성화하는 방법NWUI(NetWorker Management Web UI): 분류 및 문제 해결 가이드