Azure Monitor에서 Log Analytics 에이전트를 사용하여 텍스트 로그 수집
Azure Monitor의 Log Analytics 에이전트에 대한 사용자 지정 로그 데이터 원본을 통해 Windows 및 Linux 컴퓨터 모두의 텍스트 파일에서 이벤트를 수집할 수 있습니다. 많은 애플리케이션이 Windows 이벤트 로그 또는 Syslog 같은 표준 로깅 서비스 대신 텍스트 파일에 정보를 기록합니다. 데이터가 수집된 후 쿼리의 개별 필드로 구문 분석하거나 수집하는 동안 개별 필드로 추출할 수 있습니다.
Important
이 문서에서는 Log Analytics 에이전트를 사용하여 텍스트 로그를 수집하는 방법을 설명합니다. Azure Monitor 에이전트를 사용하는 경우 Azure Monitor 에이전트를 사용하여 텍스트 로그 수집을 참조하세요.
Important
레거시 Log Analytics 에이전트 는 2024년 8월 31일부로 더 이상 사용되지 않습니다. Microsoft에서는 Log Analytics 에이전트에 대한 지원을 더 이상 제공하지 않습니다. Log Analytics 에이전트를 사용하여 Azure Monitor로 데이터를 수집하는 경우 지금 Azure Monitor 에이전트로 마이그레이션하세요.
수집할 로그 파일은 다음 조건과 일치해야 합니다.
로그는 줄 당 항목이 하나이거나 각 항목의 시작 지점에 다음 형식 중 하나와 일치하는 타임스탬프를 사용해야 합니다.
YYYY-MM-DD HH:MM:SS
M/D/YYYY HH:MM:SS AM/PM
Mon DD, YYYY HH:MM:SS
yyMMdd HH:mm:ss
ddMMyy HH:mm:ss
MMM d hh:mm:ss
dd/MMM/yyyy:HH:mm:ss zzz
yyyy-MM-ddTHH:mm:ssK로그 파일은 순환 로깅을 허용하지 않아야 합니다. 이 동작은 파일이 새 항목으로 덮어쓰여지거나 파일 이름이 바뀌고 계속 로깅을 위해 동일한 파일 이름이 재사용되는 로그 회전입니다.
로그 파일은 ASCII 또는 UTF-8 인코딩을 사용해야 합니다. UTF-16과 같은 다른 형식은 지원되지 않습니다.
Linux의 경우 로그의 타임스탬프에 대해 표준 시간대 변환이 지원되지 않습니다.
모범 사례로 로그 파일에는 로그 회전 덮어쓰기 또는 이름 바꾸기를 방지하기 위해 만들어진 날짜 시간이 포함되어야 합니다.
참고 항목
로그 파일에 중복된 항목이 있는 경우 Azure Monitor에서 수집합니다. 생성된 쿼리 결과는 일치하지 않습니다. 필터 결과는 결과 수보다 더 많은 이벤트를 표시합니다. 로그를 만드는 애플리케이션이 이 동작을 일으키는지 유효성을 검사하려면 로그의 유효성을 검사해야 합니다. 가능한 경우 사용자 지정 로그 컬렉션 정의를 만들기 전에 문제를 해결합니다.
Log Analytics 작업 영역은 다음 제한을 지원합니다.
- 사용자 지정 로그를 500개까지 만들 수 있습니다.
- 한 테이블은 최대 500개 열을 지원합니다.
- 열 이름의 최대 문자 수는 500자입니다.
Important
사용자 지정 로그 수집을 사용하려면 로그 파일을 작성하는 애플리케이션이 로그 콘텐츠를 주기적으로 디스크에 플러시해야 합니다. 이는 사용자 지정 로그 수집이 추적 중인 로그 파일에 대한 파일 시스템 변경 알림에 의존하기 때문입니다.
사용자 지정 로그 테이블 정의
다음 절차에 따라 사용자 지정 로그 테이블을 정의합니다. 사용자 지정 로그를 추가하는 샘플에 대한 연습을 보려면 이 문서의 끝으로 스크롤합니다.
사용자 지정 로그 마법사 열기
사용자 지정 로그 마법사는 Azure Portal에서 실행되며 수집할 새 사용자 지정 로그를 정의할 수 있습니다.
Azure Portal에서 Log Analytics 작업 영역> 사용자의 작업 영역 >테이블을 선택합니다.
만들기를 선택한 다음, 새 사용자 지정 로그(MMA 기반)를 선택합니다.
기본적으로, 모든 구성 변경은 모든 에이전트로 자동 푸시됩니다. Linux 에이전트에서, 구성 파일은 Fluentd 데이터 수집기로 전송됩니다.
샘플 로그 업로드 및 구문 분석
시작하려면 사용자 지정 로그의 샘플을 업로드합니다. 마법사는 사용자가 유효성을 검사할 수 있도록 이 파일의 항목을 구문 분석하고 표시합니다. Azure Monitor는 사용자가 지정하는 구분 기호를 사용하여 각 레코드를 식별합니다.
새 줄 은 기본적인 구분 기호이며 줄당 하나의 항목을 포함하는 로그 파일에 사용됩니다. 줄이 사용 가능한 형식 중 한 가지의 날짜와 시간으로 시작되는 경우에는, 두 줄 이상에 걸쳐있는 항목을 지원하는 타임스탬프 구분 기호를 지정할 수 있습니다.
타임스탬프 구분 기호가 사용되면 Azure Monitor에 저장된 각 레코드의 TimeGenerated 속성이 로그 파일의 해당 항목에 대해 지정된 날짜/시간으로 채워집니다. 줄 바꿈 구분 기호를 사용하는 경우 Azure Monitor가 항목을 수집한 날짜 및 시간으로 TimeGenerated가 채워집니다.
찾아보기를 선택하고 샘플 파일을 찾습니다. 일부 브라우저에서는 이 단추의 레이블이 파일 선택일 수 있습니다.
다음을 선택합니다.
사용자 지정 로그 마법사는 파일을 업로드하고 식별하는 레코드를 나열합니다.
새 레코드를 식별하는 데 사용되는 구분 기호를 변경합니다. 로그 파일의 레코드를 가장 잘 식별하는 구분 기호를 선택합니다.
다음을 선택합니다.
로그 수집 경로 추가
사용자 지정 로그를 찾을 수 있는 에이전트의 경로를 하나 이상의 지정해야 합니다. 로그 파일의 특정 경로 및 이름을 제공하거나 이름의 와일드카드를 포함하는 경로를 지정할 수 있습니다. 이 단계는 매일 새 파일을 만드는 애플리케이션을 지원하거나 하나의 파일이 일정한 크기에 도달하는 경우를 지원합니다. 하나의 로그 파일에 여러 경로를 제공할 수도 있습니다.
예를 들어, 애플리케이션이 이름에 날짜가 포함된 로그 파일(예: log20100316.txt)을 매일 만들 수 있습니다. 이런 로그의 패턴으로 log*.txt를 사용할 수 있으며, 이것은 애플리케이션의 명명 체계에 따르는 모든 로그 파일에 적용할 수 있습니다.
다음 테이블은 다른 로그 파일을 지정하는 데 유효한 패턴의 예를 제공합니다.
설명 | Path |
---|---|
Windows 에이전트에서 확장자가 .txt인 C:\Logs의 모든 파일 | C:\Logs\*.txt |
Windows 에이전트에서 이름이 log로 시작되고 확장명이 .txt인 C:\Logs 내 모든 파일 | C:\Logs\log*.txt |
Linux 에이전트에서 확장자가 .txt인 /var/log/audit의 모든 파일 | /var/log/audit/*.txt |
Linux 에이전트에서 이름이 log로 시작되고 확장명이 .txt인 /var/log/audit 내 모든 파일 | /var/log/audit/log*.txt |
- Windows 또는 Linux를 선택하여 추가하는 경로 형식을 지정합니다.
- 경로를 입력하고 + 단추를 선택합니다.
- 더 많은 경로에 대해 이 과정을 반복합니다.
로그의 이름과 설명을 제공합니다.
지정한 이름은 설명처럼 로그 유형에 사용됩니다. 파일을 사용자 지정 로그로 구분하기 위해 항상_CL로 끝납니다.
- 로그의 이름을 입력합니다. _CL 접미사가 자동으로 제공됩니다.
- 선택적인 설명을 추가합니다.
- 다음을 선택하여 사용자 지정 로그 정의를 저장합니다.
사용자 지정 로그를 수집 중인지 유효성을 검사합니다.
Azure Monitor에 새 사용자 지정 로그의 초기 데이터가 나타나기까지 최대 한 시간이 소요될 수 있습니다. Azure Monitor는 사용자 지정 로그를 정의한 시점부터, 사용자가 지정한 경로에서 찾은 로그로부터 항목을 수집하기 시작합니다. 사용자 지정 로그 만들기 중에 업로드한 항목은 유지되지 않습니다. 찾은 로그 파일에서 이미 존재하는 항목을 수집합니다.
Azure Monitor가 사용자 지정 로그에서 수집을 시작하면, 해당 레코드를 로그 쿼리를 통해 사용할 수 있습니다. 사용자 지정 로그에 지정한 이름을 쿼리의 유형으로 사용합니다.
참고 항목
RawData 속성이 쿼리에 없으면, 브라우저를 닫았다가 다시 열어야 합니다.
사용자 지정 로그 항목 구문 분석
전체 로그 항목은 RawData라는 하나의 속성에 저장됩니다. 각 항목에 포함된 다양한 종류의 정보를 각 레코드의 개별 속성으로 분리하려는 경우가 많습니다. RawData를 여러 속성으로 구문 분석하는 옵션은 Azure Monitor에서 텍스트 데이터 구문 분석을 참조하세요.
사용자 지정 로그 테이블 삭제
테이블 삭제를 참조하세요.
데이터 수집
Azure Monitor는 약 5분마다 각 사용자 지정 로그에서 새 항목을 수집합니다. 에이전트는 수집하는 각 로그 파일에 자신의 위치를 기록합니다. 에이전트가 일정 기간 동안 오프라인 상태가 되면 Azure Monitor는 에이전트가 오프라인일 때 항목이 만들어진 경우에도 마지막으로 중단된 위치에서 해당 항목을 수집합니다.
로그 항목의 전체 내용은 RawData라는 단일 속성에 기록됩니다. 가져온 각 로그 항목을 여러 속성으로 구문 분석하는 방법은 Azure Monitor에서 텍스트 데이터 구문 분석을 참조하세요.
사용자 지정 로그 레코드 속성
사용자 지정 로그 레코드에는 사용자가 제공하는 로그 이름의 유형과 다음 테이블의 속성이 있습니다.
속성 | 설명 |
---|---|
TimeGenerated | Azure Monitor에서 레코드를 수집한 날짜와 시간입니다. 로그에 시간 기반 구분 기호가 사용되는 경우, 항목에서 수집한 시간이 여기에 해당됩니다. |
SourceSystem | 레코드가 수집된 에이전트의 유형입니다. OpsManager – Windows 에이전트, 직접 연결 또는 System Center Operations Manager Linux – 모든 Linux 에이전트 |
RawData | 수집된 항목의 전체 텍스트. 이 데이터를 개별 속성으로 구문 분석할 가능성이 가장 높습니다. |
ManagementGroupName | System Center Operations Manager 에이전트의 관리 그룹 이름입니다. 다른 에이전트의 경우 이 이름은 AOI-<작업 영역 ID>입니다. |
사용자 지정 로그 추가 샘플 연습
다음 섹션은 사용자 지정 로그를 만드는 예제를 안내합니다. 수집되는 샘플 로그에는 각 줄에 하나의 항목이 포함되며, 각 줄은 날짜와 시간으로 시작되고 코드, 상태 및 메시지에 대해 쉼표로 구분된 필드가 있습니다. 여러 샘플 항목이 표시됩니다.
2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database
샘플 로그 업로드 및 구문 분석
로그 파일 중 하나를 제공하며 수집할 이벤트를 볼 수 있습니다. 이 경우 줄바꿈은 충분한 구분 기호입니다. 하지만 로그의 단일 항목이 여러 줄에 걸치는 경우 타임스탬프 구분 기호가 사용되어야 합니다.
로그 수집 경로 추가
로그 파일은 C:\MyApp\Logs에 배치됩니다. appYYYYMMDD.log패턴의 날짜를 포함하는 이름으로 매일 새 파일이 생성됩니다. 이 로그에 충분한 패턴은 C:\MyApp\Logs\*.log입니다.
로그의 이름과 설명을 제공합니다.
MyApp_CL이라는 이름을 사용하여 설명을 입력합니다.
사용자 지정 로그를 수집 중인지 유효성을 검사합니다.
MyApp_CL의 간단한 쿼리를 사용하여 수집된 로그의 모든 레코드를 반환합니다.
사용자 지정 로그 대신 사용할 수 있는 방법
데이터가 나열된 조건에 맞는 경우 사용자 지정 로그가 유용하지만 다른 전략이 필요한 경우가 있습니다.
- 데이터가 다른 형식의 타임스탬프를 포함하는 등 필요한 구조에 맞지 않는 경우
- 로그 파일이 파일 인코딩 등의 요구 사항을 충족하지 않거나 폴더 구조가 지원되지 않는 경우
- 데이터를 수집하기 전에 전처리 또는 필터링을 수행해야 합니다.
사용자 지정 로그로 데이터를 수집할 수 없는 경우에는 다음과 같은 전략을 대신 사용할 수 있습니다.
- 사용자 지정 스크립트 또는 다른 방법을 사용하여 Azure Monitor에서 수집하는 Windows 이벤트 또는 Syslog에 데이터를 씁니다.
- HTTP 데이터 수집기 API를 사용하여 Azure Monitor로 데이터를 직접 전송합니다.
다음 단계
- 가져온 각 로그 항목을 여러 속성으로 구문 분석하는 방법은 Azure Monitor에서 텍스트 데이터 구문 분석을 참조하세요.
- 데이터 원본 및 솔루션에서 수집한 데이터를 분석하는 로그 쿼리에 대해 알아봅니다.