Linux 가상 머신 및 확장 집합의 Azure Monitor 에이전트에 대한 문제 해결 지침
Azure Monitor 에이전트 개요
더 읽기 전에 Azure Monitor 에이전트 및 데이터 수집 규칙에에 대해 잘 알고 있어야 합니다.
용어
이름 | 머리글자어 | 설명 |
---|---|---|
Azure Monitor 에이전트 | AMA | 새 Azure Monitor 에이전트 |
데이터 수집 규칙 | DCR | 에이전트에서 데이터 수집을 구성하는 규칙(예: 수집할 데이터, 보낼 위치 등) |
Azure Monitor 구성 서비스 | AMCS | Azure에서 호스트되는 지역 서비스는 이 에이전트 및 Azure Monitor의 다른 부분에 대한 데이터 수집을 제어합니다. 에이전트는 DCR을 가져오기 위해 이 서비스를 호출합니다. |
로그 엔드포인트 | -- | Log Analytics 작업 영역으로 데이터를 보내기 위한 엔드포인트 |
메트릭 엔드포인트 | -- | Azure Monitor 메트릭 데이터베이스로 데이터를 보내기 위한 엔드포인트입니다. |
Instance Metadata Service 및 하이브리드 | IMDS 및 HIMDS | 현재 실행 중인 가상 머신, 확장 집합(IMDS를 통해) 및 Arc 지원 서버(HIMDS를 통해)에 대한 정보를 각각 제공하는 Azure에서 호스트되는 서비스 |
Log Analytics 작업 영역 | LAW | 에이전트에서 수집한 로그를 보낼 수 있는 Azure Monitor의 대상 |
사용자 지정 메트릭 | -- | 에이전트에서 수집한 게스트 메트릭을 보낼 수 있는 Azure Monitor의 대상 |
기본 문제 해결 단계
아래 단계에 따라 Linux 가상 머신에서 실행되는 최신 버전의 Azure Monitor 에이전트 문제를 해결합니다.
여기에서 필수 구성 요소를 주의 깊게 검토합니다.
확장이 성공적으로 설치되고 프로비전되었는지 확인합니다. 이렇게 하면 머신에 에이전트 이진 파일이 설치됩니다.
- Azure Portal 열기 > 가상 머신 선택 > 설정 열기 : 왼쪽의 창에서 확장 + 애플리케이션 > 'AzureMonitorLinuxAgent'가 상태: '프로비저닝 성공'으로 표시되어야 합니다.
- 나열된 확장이 표시되지 않으면 머신이 Azure에 연결할 수 있는지 확인하고 아래 명령을 사용하여 설치할 확장을 찾습니다.
az vm extension image list-versions --location <machine-region> --name AzureMonitorLinuxAgent --publisher Microsoft.Azure.Monitor
- 확장 버전이 전환 상태일 수 있으므로 10-15분 동안 기다립니다. 여전히 위와 같이 표시되지 않으면 확장을 제거하고 다시 설치합니다.
- 머신의
/var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
에 있는 확장 로그에 오류가 표시되는지 확인합니다.
에이전트가 실행 중인지 확인:
- 에이전트가 아래 쿼리를 사용하여 Log Analytics 작업 영역에 하트비트 로그를 내보내고 있는지 확인합니다. DCR에서 '사용자 지정 메트릭'이 유일한 대상인 경우 건너뜁니다.
Heartbeat | where Category == "Azure Monitor Agent" and Computer == "<computer-name>" | take 10
- 에이전트 서비스가 실행 중인지 확인
systemctl status azuremonitoragent
- 머신의
/var/opt/microsoft/azuremonitoragent/log/mdsd.*
에 있는 핵심 에이전트 로그에 오류가 표시되는지 확인합니다.
- 에이전트가 아래 쿼리를 사용하여 Log Analytics 작업 영역에 하트비트 로그를 내보내고 있는지 확인합니다. DCR에서 '사용자 지정 메트릭'이 유일한 대상인 경우 건너뜁니다.
DCR이 존재하며 가상 머신과 연결되어 있는지 확인합니다.
- Log Analytics 작업 영역을 대상으로 사용하는 경우 DCR이 Log Analytics 작업 영역과 동일한 물리적 지역에 있는지 확인합니다.
- Azure Portal 열기 > 데이터 수집 규칙 선택 > 구성 열기 : 왼쪽의 창에서 리소스 > 여기에 나열된 가상 머신이 표시됩니다.
- 나열되지 않은 경우 '추가'를 클릭하고 리소스 선택기에서 가상 머신을 선택합니다. 모든 DCR에서 반복합니다.
에이전트가 AMCS 서비스에서 연결된 DCR을 다운로드할 수 있는지 확인합니다.
- 이 위치
/etc/opt/microsoft/azuremonitoragent/config-cache/configchunks/
에서 다운로드한 최신 DCR이 표시되는지 확인
- 이 위치
Syslog 수집 문제
Azure Monitor 에이전트의 syslog 문제를 해결하는 방법에 대한 자세한 내용은 여기를 참조하세요.
QoS(서비스 품질) 파일
/var/opt/microsoft/azuremonitoragent/log/mdsd.qos
는 처리된 이벤트의 CSV 형식 15분 집계를 제공하고 지정된 기간 동안 처리된 syslog 이벤트의 양에 대한 정보를 포함합니다. 이 파일은 Syslog 이벤트 수집 삭제를 추적하는 데 유용합니다.예를 들어 아래 조각은 2022-02-28T19:55:23.5432920Z 이전 15분 동안 에이전트가 시설 디먼 및 수준 정보가 포함된 77개의 syslog 이벤트를 수신하고 77개의 해당 이벤트를 업로드 작업으로 전송했음을 보여 줍니다. 또한 에이전트 업로드 작업은 77개의 daemon.info 메서드를 수신하고 이러한 77개의 모든 메시지를 성공적으로 업로드했습니다.
#Time: 2022-02-28T19:55:23.5432920Z #Fields: Operation,Object,TotalCount,SuccessCount,Retries,AverageDuration,AverageSize,AverageDelay,TotalSize,TotalRowsRead,TotalRowsSent ... MaRunTaskLocal,daemon.debug,15,15,0,60000,0,0,0,0,0 MaRunTaskLocal,daemon.info,15,15,0,60000,46.2,0,693,77,77 MaRunTaskLocal,daemon.notice,15,15,0,60000,0,0,0,0,0 MaRunTaskLocal,daemon.warning,15,15,0,60000,0,0,0,0,0 MaRunTaskLocal,daemon.error,15,15,0,60000,0,0,0,0,0 MaRunTaskLocal,daemon.critical,15,15,0,60000,0,0,0,0,0 MaRunTaskLocal,daemon.alert,15,15,0,60000,0,0,0,0,0 MaRunTaskLocal,daemon.emergency,15,15,0,60000,0,0,0,0,0 ... MaODSRequest,https://e73fd5e3-ea2b-4637-8da0-5c8144b670c8_LogManagement,15,15,0,455067,476.467,0,7147,77,77
문제 해결 단계
먼저 일반 Linux AMA 문제 해결 단계를 검토합니다. 에이전트가 하트비트를 내보내는 경우 2단계로 진행합니다.
구문 분석된 구성은
/etc/opt/microsoft/azuremonitoragent/config-cache/configchunks/
에 저장됩니다. Syslog 컬렉션이 정의되고 로그 대상이 DCR UI/DCR JSON에서 생성된 것과 동일한지 확인합니다.- 그렇다면 3단계로 진행합니다. 그렇지 않은 경우 문제는 구성 워크플로에 있습니다.
- 가능한 구성 오류에 대해
/var/opt/microsoft/azuremonitoragent/log
에서mdsd.err
,mdsd.warn
,mdsd.info
파일을 조사합니다.
Syslog 컬렉션 워크플로의 레이아웃의 유효성을 검사하여 필요한 모든 부분이 제자리에 있고 액세스할 수 있는지 확인합니다.
rsyslog
사용자의 경우/etc/rsyslog.d/10-azuremonitoragent.conf
파일이 있고 비어 있지 않으며rsyslog
디먼(syslog 사용자)이 액세스할 수 있는지 확인합니다./etc/rsyslog.conf
및/etc/rsyslog.d/*
에서 rsyslog 구성을 확인하여 이러한 입력의 메시지가 Azure Monitor 에이전트로 전달되지 않으므로 기본이 아닌 규칙 집합에 바인딩된 입력이 있는지 확인합니다. 예를 들어input(type="imtcp" port="514"
ruleset="myruleset"
)
와 같이 기본이 아닌 규칙 집합으로 구성된 입력의 메시지는 전달되지 않습니다.
syslog-ng
사용자의 경우/etc/syslog-ng/conf.d/azuremonitoragent.conf
파일이 있고 비어 있지 않으며syslog-ng
디먼(syslog 사용자)이 액세스할 수 있는지 확인합니다./run/azuremonitoragent/default_syslog.socket
파일이 있고rsyslog
또는syslog-ng
가 각각 액세스할 수 있는지 확인합니다.- AMA Linux 에이전트의 전체 디스크 공간 문제로 인해 Rsyslog 데이터가 업로드되지 않음에 대한 지침을 참조하여 syslog 디먼 큐가 오버플로되지 않아 업로드가 실패했는지 확인합니다.
syslog 이벤트 수집을 추가로 디버그하려면 파일
/etc/default/azuremonitoragent
의 MDSD_OPTIONS 끝에 추적 플래그 -T 0x2002를 추가하고 에이전트를 다시 시작할 수 있습니다.export MDSD_OPTIONS="-A -c /etc/opt/microsoft/azuremonitoragent/mdsd.xml -d -r $MDSD_ROLE_PREFIX -S $MDSD_SPOOL_DIRECTORY/eh -L $MDSD_SPOOL_DIRECTORY/events -e $MDSD_LOG_DIR/mdsd.err -w $MDSD_LOG_DIR/mdsd.warn -o $MDSD_LOG_DIR/mdsd.info -T 0x2002"
추적 플래그를 켠 상태에서 문제를 재현한 후에는
/var/opt/microsoft/azuremonitoragent/log/mdsd.info
에서 더 많은 디버그 정보를 찾을 수 있습니다. 파일에서 구문 분석/처리/구성/업로드 오류와 같은 syslog 컬렉션 문제의 가능한 원인을 검사합니다.Warning
디스크를 더 빠르게 채우거나 로그 파일을 시각적으로 구문 분석하기 어려울 수 있는 많은 추적 문을 생성하기 때문에 디버깅 세션 후에 추적 플래그 설정 -T 0x2002를 제거해야 합니다.
Arc 지원 서버의 문제 해결
기본 문제 해결 단계를 확인한 후 로그를 내보내는 Azure Monitor 에이전트가 표시되지 않거나 /var/opt/microsoft/azuremonitoragent/log/mdsd.err
로그 파일에서 'IMDS 엔드포인트에서 MSI 토큰을 얻지 못했습니다.' 오류가 발견되면 syslog
사용자가 그룹 himds
의 멤버가 아닐 수 있습니다. syslog
사용자가 이 그룹의 멤버가 아닌 경우 himds
사용자 그룹에 추가합니다. 필요한 경우 사용자 syslog
및 그룹 syslog
를 만들고 사용자가 해당 그룹에 있는지 확인합니다. 자세한 내용은 여기에서 Azure Arc 지원 서버 인증 요구 사항을 확인합니다.