소개
이 문서에서는 NSO에서 사용할 수 있는 다양한 로그, 로그 사용 용도 및 로그 사용 방법에 대해 설명합니다.
사전 요구 사항
요구 사항
로그를 보고, 활성화하고, 설정하려면 사용자가 NSO 서비스를 실행하는 호스트 환경에 대한 액세스 권한과 NSO CLI 및 NSO IPC 포트에 대한 액세스 권한이 있어야 합니다.
사용되는 구성 요소
Cisco Crosswork Network Service Orchestrator(NSO) 버전 6.4.1
이 문서는 NSO 6.4부터 제공되는 로깅 옵션을 위해 작성되었습니다. 이 문서의 대부분의 정보는 여러 버전에 적용되지만, 사용 중인 버전에 비해 일부 로그의 사용이 중단되거나 추가될 수 있습니다. 이 문서에서는 NSO 시스템 외부에서 로그를 내보내는 컨피그레이션을 다루지 않습니다.
이 문서에서 제공하는 명령은 기본 디렉토리 설정을 사용하는 시스템 설치 NSO로 가정합니다. 사용자 환경에서 특정 파일의 위치는 다를 수 있습니다.
- ncs.conf는 기본적으로 $NCS_CONFIG_DIR에서 찾을 수 있습니다. /etc/ncs/ncs.conf
- 로그는 기본적으로 $NCS_LOG_DIR에서 찾을 수 있습니다. /var/log/ncs/
- NSO는 기본적으로 $NCSDIR에 설치됩니다. /opt/ncs/
- NSO의 실행 디렉토리는 $NCS_RUN_DIR입니다. 기본적으로 /var/opt/ncs/
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
일반 로그 지침
로깅 영향
더 높은 세밀도에서 로그를 활성화하면 NSO 서버의 로드 및 디스크 공간 요구 사항이 증가할 수 있습니다. 이는 특히 devel.log와 같이 매우 활성화된 로그를 고려합니다. 트러블슈팅 중에 짧은 시간 동안 자세한 정보를 활성화하는 것은 일반적으로 문제가 되지 않지만, 더 긴 시간 동안 활성화할 때는 리소스와 디스크 공간을 고려해야 합니다.
기술 보고서 생성
To generate a tech report for NSO, run the script at /opt/ncs/current/bin/ncs-collect-tech-report.
옵션:
--install-dir
: 설치 프로그램에 대한 —install-dir 옵션과 같은 NCS 고정 파일의 설치 디렉토리를 지정합니다.
--full
: 시스템의 ncs-backup을 수집하여 Cisco 지원에서 더 쉽게 오류를 재현할 수 있도록 합니다.
--num-debug-dumps
: 기본값 1, debug-dump 스냅샷을 생성합니다. 메모리/파일 설명자 누수와 같은 리소스 누수를 추적하는 케이스의 경우 이 값을 3으로 설정합니다.
권장 옵션:
/opt/ncs/current/bin/ncs-collect-tech-report --num-debug-dumps 3
백업은 번들의 파일 크기를 제한하여 더 쉽게 업로드할 수 있도록 별도로 수집 및 제공할 수 있습니다.
기술 보고서는 스크립트가 실행되는 현재 디렉토리에 생성됩니다.
참고: 기술 보고서는 NSO 로그 디렉토리의 내용을 수집합니다. 새 기술 보고서를 생성하기 전에 이 디렉터리에 이전 기술 보고서 또는 백업이 포함되어 있지 않은지 확인하십시오.
백업 생성
/opt/ncs/current/bin/ncs-backup
백업은 /var/opt/ncs/backups/.
로그 파일이 생성되지 않음
로그 파일이 아카이브되거나 삭제되면 NSO는 새 파일을 생성해야 합니다. 일반적으로 이 작업은 자동으로 수행되지만 그렇지 않은 경우 다음 명령을 사용합니다.
/opt/ncs/current/bin/ncs_cmd -c reopen_logs
.
참고: 예를 들어 ncs.conf의 ipc-access 설정을 사용하여 IPC 포트에 대한 액세스를 제한할 때 필요한 변수를 cron 또는 anacron의 일부로 정의해야 매주 로그 순환이 로그를 제대로 다시 열 수 있습니다.
로그 개요
- NSO 내부 로그
- ncs.log: ncs 로그는 NSO의 주요 프로세스를 기록합니다. 심층적인 정보가 제한적이지만 종료, 시작, 패키지 로드 및 업그레이드와 관련된 문제에 사용할 수 있습니다.
- audit.log: 감사 로그는 API를 통해 NSO에서 인증하는 모든 사용자를 기록합니다. 또한 NSO CLI 및 낮은 세밀도의 노스바운드(northbound) 인터페이스에서 모든 활동을 기록합니다.
- audit-log-commit: 이 설정을 사용하면 audit.log가 향상됩니다. 자체 로그는 생성하지 않습니다. 커밋 및 동기화 시작 작업 중에 기본이 아닌 모든 변경 사항을 NSO CDB에 기록합니다.
- audit-log-commit-default: 이 설정을 사용하면 audit.log가 향상됩니다. 자체 로그는 생성하지 않습니다. 커밋 및 동기화 시작 작업 중에 모든 기본 변경 사항을 NSO CDB에 기록합니다.
- devel.log: 개발 로그는 NSO의 일반 작업 및 워크플로를 기록합니다.
- ncs-java-vm.log: java 로그는 모든 java-vm 관련 작업을 기록합니다. 특히 Java로 작성된 NED(Network Element Driver) 및 서비스 패키지가 있습니다. 모든 CLI NED는 java로 작성됩니다.
- ncs-python-vm.log: python 로그는 Python에 기록된 서비스 패키지와 관련된 활동을 기록합니다. python으로 작성된 각 서비스 패키지에 대해 별도의 python 로그가 생성됩니다. NED는 python으로 작성되지 않습니다.
- upgrade.log: 업그레이드 로그는 패키지를 다시 로드하는 동안 NSO 버전 업그레이드 및 NSO 패키지 업그레이드를 포함하여 NSO 업그레이드 과정에서 NSO 모델의 변경 사항을 기록합니다.
- raft.log: HA-Raft 기능을 활용하는 NSO 클러스터에 대한 로그
- xpath.trace: xpath 추적은 NSO가 수행하는 모든 xpath-evaluations를 기록합니다. 이 기능은 삭제 작업에 시간이 오래 걸리는 이유를 파악하는 데 유용합니다.
- ncserr.log: ncserr.log는 NCS 데몬의 내부 프로세스에 대한 오류를 기록하는 이진 로그입니다. 거의 모든 '내부 오류' 오류 메시지 및 충돌 시나리오에 대해 필수입니다.
- transerr.log: transaction-error log는 CDB 부팅 오류 또는 런타임 트랜잭션 실패로 이어지는 실패한 트랜잭션에 대한 정보를 수집하기 위한 로그입니다.
- progress.trace: 진행률 추적은 시스템의 트랜잭션 및 작업에서 내보낸 진행률 이벤트를 추적하는 데 사용됩니다. 내보낼 데이터가 /progress/trace에 구성되어 있습니다.
- ncs-smart-licensing.log: NSO 내의 라이센스 smart-agent에 대한 로그입니다.
- 노스바운드: 노스바운드 요소에서 NSO에 도착
- audit.log: audit log logs 명령은 NSO CLI에서 실행됩니다.
- localhost:8080.access/localhost:8888.access : 포함된 웹 서버에 대한 액세스 로그이며 HTTP 활동을 수집합니다. 이 파일은 Apache에서 정의한 일반 로그 형식을 준수합니다
- traffic.trace: 이 로그는 매우 높은 심각도 HTTP 트래픽을 수집합니다. Restconf 및 json-rpc API를 디버깅하는 데 사용합니다.
- netconf.log: netconf API 로그
- netconf-trace.log: 고밀도 netconf API에 대한 로그
- json-rpc.log: json-rpc.log API용 로그
- 사우스바운드: NSO에서 네트워크로 이동하는 통신을 로깅하는 중입니다.
- 디바이스 NED 추적: 각 디바이스는 자체 추적을 생성합니다. 장치 추적은 ned-<ned-id>-<devicename>.trace 또는 netconf-<devicename>.trace로 명명됩니다.
- audit-network.log: NSO에서 사우스바운드 디바이스로 전송한 컨피그레이션 명령을 기록합니다.
- 시스템 로그
- Linux 로그: 일반적으로 /var/log/에 있으며 메시지 또는 syslog와 같은 로그를 포함합니다. 호스트에 따라 다릅니다.
- ncs_crash.dump: 메모리 문제로 인해 NSO가 종료될 때 생성되는 NSO 시스템 덤프.
- 코어 덤프: 비메모리 이유로 NSO가 종료되면 Linux는 core.<PID>라는 코어 덤프를 생성할 수 있습니다.
Linux에서 코어 덤프를 생성하려면 특정 조건을 충족해야 합니다. ulimit 컨피그레이션은 덤프를 방지하는 가장 일반적인 설정입니다. 요구 사항의 전체 목록은 Linux Manual Page를 참조하십시오.
참고: 시스템 로그는 NCS 기술 보고서에서 수집되지 않지만 성능 및 충돌 관련 문제에 유용할 수 있습니다.
로그 활성화 및 세부 정보 설정
참고: ncs.conf 파일의 컨피그레이션 설정 변경은 명령을 실행하여 ncs --reload
적용합니다. ncs --reload, it
ncs.conf 파일에서 값을 다시 로드하고 실행 중인 시스템을 업데이트하는 것은 물론 모든 로깅 변경 사항이 적용되도록 모든 로그 파일을 닫았다가 다시 엽니다. 서비스를 중단하지 않습니다.
일반 지침
- ncs.conf 파일에 특정 컨피그레이션이 없는 경우 NSO는 파일에 지정된 대로 기본 동작을
/opt/ncs/current/src/ncs/ncs_config/tailf-ncs-config.yang
적용합니다.
- 로그를 기본적으로 enabled로 지정하면 로그를 활성화할 컨피그레이션이 없어도 로그가 활성화됩니다.
- 일부 로그는 기본적으로 비활성화되어 있지만, NSO를 처음 설치하는 동안 ncs.conf에는 로그를 활성화하는 특정 지침이 있습니다.
- ncs.conf 파일에 특정 컨피그레이션이 없는 경우, ncs.conf 파일에
logs container
및 사이
를 의미하
는 아래에 표시된 컨피그레이션을 추가할 수 있습니다.
내부
ncs.log
이 로그는 기본적으로 활성화되어 있습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf을 열고 <ncs-log>의 내용을 변경합니다.
true
${NCS_LOG_DIR}/ncs.log
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
audit.log
이 로그는 기본적으로 활성화되어 있습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf를 열고 <audit-log>의 내용을 변경하십시오.
true
${NCS_LOG_DIR}/audit.log
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
audit-log-commit 및 audit-log-commit-defaults
이 로그는 기본적으로 활성화되어 있지 않습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf을 열고 <audit-log> 다음에 내용을 추가하십시오.
true
${NCS_LOG_DIR}/audit.log
true
true
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
devel.log
이 로그는 INFO Verbosity에서 기본적으로 활성화되어 있습니다. 이 로그에 대한 자세한 내용을 활성화 및 변경하려면 /etc/ncs/ncs.conf을 열고 <developer-log>의 내용을 변경하십시오.
true
${NCS_LOG_DIR}/devel.log
true
trace
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
ncs-java-vm.log
이 로그는 INFO Verbosity에서 기본적으로 활성화되어 있습니다. java-vm으로 관리되는 개별 요소에 대한 자세한 정보를 설정할 수 있습니다. 자세한 내용은 SSH 또는 ncs_cli -C -noaaa를 통해 액세스할 수 있는 NSO CLI에서 변경됩니다.
com.tailf 아래의 모든 java 요소에 대한 자세한 정보를 보려면 다음을 수행합니다.
설정
java-vm java-logging logger com.tailf level-trace
no-networking 확인
특정 NED 패키지에 대한 자세한 내용을 보려면
설정
java-vm java-logging logger com.tailf.packages.ned.<NED-name> level-trace
no-networking 확인
Java NED 패키지에 사용되는 SSHJ 클라이언트의 세부 정보를 늘리려면 다음을 수행합니다.
설정
java-vm java-logging logger net.schmizz.sshj level-error
no-networking 확인
참고: SSHJ 클라이언트에 대한 로깅을 level-error로 설정하는 것이 좋습니다. 기본적으로 비활성화되어 있습니다.
특정 Java 요소에 대한 로깅을 되돌리려면
설정
java-vm java-logging logger com.tailf 없음
no-networking 확인
현재 java-vm 로깅 설정을 보려면
show running-config java-vm java-logging
ncs-python-vm.log
이 로그는 INFO Verbosity에서 기본적으로 활성화되어 있습니다. 자세한 내용은 SSH 또는 ncs_cli -C -noaaa를 통해 액세스할 수 있는 NSO CLI에서 변경됩니다.
모든 Python VM의 로그에 대한 자세한 정보를 설정합니다.
설정
python-vm 로깅 레벨 디버그
no-networking 확인
되돌리려면
설정
python-vm 로깅 레벨 디버그 없음
no-networking 확인
현재 python-vm 로깅 설정을 보려면
show running-config python-vm logging
upgrade.log
이 로그는 기본적으로 활성화되어 있습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf를 열고 <upgrade-log>의 내용을 변경하십시오.
true
${NCS_LOG_DIR}/upgrade.log
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
raft.log
이 로그는 INFO Verbosity에서 기본적으로 활성화되어 있습니다. 이 로그에 대한 자세한 정보를 활성화하고 설정하려면 /etc/ncs/ncs.conf를 열고 <raft-log>의 내용을 변경하십시오.
true
${NCS_LOG_DIR}/raft.log
true
trace
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
xpath.trace
이 로그는 기본적으로 활성화되어 있지 않습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf을 열고 <xpath-trace-log>의 내용을 변경하십시오.
true
${NCS_LOG_DIR}/xpath.trace
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
ncserr.log
이 로그는 제한된 양의 정보를 기록합니다. NSO는 기본적으로 최대 크기가 1MB인 5개의 오류 파일을 유지 관리합니다. 로그 데이터에 5MB 이상을 생성하는 문제가 발생하는 드문 상황에서는 최대 크기를 늘려야 합니다. 이 로그는 기본적으로 활성화되어 있습니다. 이 로그의 최대 크기를 파일당 10MB로 변경하려면 /etc/ncs/ncs.conf을 열고 <error-log>의 내용을 변경합니다.
true
${NCS_LOG_DIR}/ncserr.log
S10M
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
transerr.log
이 로그는 기본적으로 활성화되어 있지 않지만 ncs.conf에서 처음 설치할 때 활성화되어 있습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf를 열고 <transaction-error-log>의 내용을 변경합니다.
true
${NCS_LOG_DIR}/transerr.log
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
진행률
이 로그는 기본적으로 활성화되어 있지 않지만 ncs.conf에서 처음 설치할 때 활성화되어 있습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf를 열고 <progress-trace>의 내용을 변경하십시오.
true
${NCS_LOG_DIR}
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
ncs-smart-licensing.log
이 로그는 기본적으로 활성화되어 있지 않습니다. SSH 또는 ncs_cli -C -noaaa를 통해 액세스할 수 있는 NSO CLI에서 로그가 활성화됩니다. 이 로그를 사용하려면
설정
smart-license smart-agent stdout-capture 사용
no-networking 확인
로깅 변경 사항을 되돌리려면
설정
smart-license smart-agent stdout-capture가 활성화되지 않음
no-networking 확인
북행
localhost:xxxx.access
이 로그는 기본적으로 활성화되어 있습니다. 이 로그의 이름은 HTTP 포트에 따라 다릅니다. 기본적으로 8080 및 8888입니다. 이 로그를 활성화하려면 /etc/ncs/ncs.conf를 열고 <webui-access-log>의 내용을 변경합니다.
true
${NCS_LOG_DIR}
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
트래픽.추적
이 로그는 기본적으로 활성화되어 있지 않습니다. traffic.trace 로그는 /var/log/ncs/trace_20240628_010010/와 같은 디렉토리에 생성됩니다. 이 로그를 활성화하려면 /etc/ncs/ncs.conf를 열고 <webui-access-log>의 내용을 변경합니다.
true
${NCS_LOG_DIR}
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
netconf.log
이 로그는 기본적으로 활성화되어 있습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf을 열고 <netconf-log> 다음에 내용을 추가합니다.
true
${NCS_LOG_DIR}/netconf.log
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
추가 옵션: NSOtrue
가 rpc-reply 상태
를 "ok" 또는 "error"로 기록하도록 하려면 뒤에 삽입합니다.
netconf-trace.log
이 로그는 기본적으로 활성화되어 있지 않습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf를 열고 <netconf-trace-log>의 내용을 변경합니다.
true
${NCS_LOG_DIR}/netconf-trace.log
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
json-rpc.log
이 로그는 기본적으로 활성화되어 있지 않습니다. 이 로그를 활성화하려면 /etc/ncs/ncs.conf을 열고 <jsonrpc-log> 다음에 내용을 추가합니다.
true
${NCS_LOG_DIR}/json-rpc.log
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.
남행
디바이스 NED 추적
이 로그는 기본적으로 활성화되어 있지 않습니다. SSH 또는 ncs_cli -C -noaaa를 통해 액세스할 수 있는 NSO CLI에서 로그가 활성화됩니다.
디바이스에 대한 추적을 활성화하려면
설정
디바이스 디바이스 <devicename> trace raw
device<devicename> ned-setting <ned-id> 로거 수준 디버그
no-networking 확인
디바이스에 적용된 모든 로그 설정을 보려면 show devices device <devicename> active-settings를 사용합니다.
device-trace 파일의 내용을 지우려면 device <devicename> clear-trace를 사용합니다.
디바이스 추적을 비활성화하려면
설정
디바이스 <devicename> 추적 없음
no-networking 확인
audit-network.log
이 로그는 기본적으로 활성화되어 있지 않습니다. 이 로그를 사용하려면 /etc/ncs/ncs.conf을 열고 <audit-network-log> 다음에 내용을 추가합니다.
true
${NCS_LOG_DIR}/audit-network.log
true
ncs.conf를 수정한 후 ncs —reload를 실행합니다.