Syslog의 Service Fabric Linux 클러스터 이벤트
Service Fabric은 사용자에게 클러스터의 중요한 작업에 대해 알리기 위해 플랫폼 이벤트 세트를 공개합니다. 공개되는 이벤트의 전체 목록은 여기서 확인할 수 있습니다. 이러한 이벤트를 사용할 수 있는 방법은 다양하게 있습니다. 이 문서에서는 이러한 이벤트를 Syslog에 작성하도록 Service Fabric을 구성하는 방법을 설명합니다.
소개
6.4 릴리스에서는 Linux 클러스터용 Syslog에 Service Fabric 플랫폼 이벤트를 보내기 위해 SyslogConsumer가 도입되었습니다. 이 기능을 켜면 Log Analytics 에이전트에서 수집 및 전송할 수 있는 이벤트가 자동으로 Syslog로 흐릅니다.
각 Syslog 이벤트에 4개 구성 요소가 있음
- 시설
- ID
- 메시지
- 심각도
SyslogConsumer는 Facility Local0
를 사용하여 모든 플랫폼 이벤트를 씁니다. 구성을 변경하여 유효한 시설로 업데이트할 수 있습니다. 사용되는 Identity는 ServiceFabric
입니다. 메시지 필드에는 다양한 도구에서 쿼리하고 사용할 수 있도록 JSON으로 직렬화된 전체 이벤트가 포함됩니다.
SyslogConsumer 사용
SyslogConsumer를 사용하려면 클러스터를 업그레이드해야 합니다. fabricSettings
섹션을 다음 코드로 업데이트해야 합니다. 이 코드는 SyslogConsumer와 관련된 섹션만 포함하고 있습니다.
"fabricSettings": [
{
"name": "Diagnostics",
"parameters": [
{
"name": "ConsumerInstances",
"value": "AzureWinFabCsv, AzureWinFabCrashDump, AzureTableWinFabEtwQueryable, SyslogConsumer"
}
]
},
{
"name": "SyslogConsumer",
"parameters": [
{
"name": "ProducerInstance",
"value": "WinFabLttProducer"
},
{
"name": "ConsumerType",
"value": "SyslogConsumer"
},
{
"name": "IsEnabled",
"value": "true"
}
]
},
{
"name": "Common",
"parameters": [
{
"name": "LinuxStructuredTracesEnabled",
"value": "true"
}
]
}
],
실행할 변경 작업은 다음과 같습니다.
- 일반 섹션에는
LinuxStructuredTracesEnabled
라는 새로운 매개 변수가 있습니다. Syslog로 전송되는 Linux 이벤트를 정형화 및 직렬화하는 데 필요합니다. - 진단 섹션에 새 ConsumerInstance: SyslogConsumer가 추가되었습니다. 이는 플랫폼에 또 다른 이벤트 소비자가 있음을 알려줍니다.
- 새로운 SyslogConsumer 섹션은
IsEnabled
를true
로 설정해야 합니다. Local0 시설을 자동으로 사용하도록 구성되어 있습니다. 또 다른 매개 변수를 추가하여 이 설정을 재정의할 수 있습니다.
{
"name": "New LogFacility",
"value": "<Valid Syslog Facility>"
}
Azure Monitor 로그 통합
Azure Monitor 로그와 같은 모니터링 도구에서 이러한 Syslog 이벤트를 쓸 수 있습니다. 이러한 지침을 사용하여 Azure Marketplace를 통해 Log Analytics 작업 영역을 만들 수 있습니다.
또한 이 데이터를 수집하고 작업 영역으로 보내려면 클러스터에 Log Analytics 에이전트를 추가해야 합니다. 성능 카운터를 수집하기 위해 사용되는 에이전트와 동일한 에이전트입니다.
Advanced Settings
섹션으로 이동Data
선택Syslog
선택추적할 시설로 Local0를 구성합니다. fabricSettings에서 시설을 변경한 경우 다른 시설을 추가해도 됩니다.
작업 영역 리소스의 쿼리 시작 메뉴에서
Logs
를 클릭하여 쿼리 탐색기로 이동합니다.Syslog
테이블을 쿼리하여 ProcessName으로ServiceFabric
을 찾을 수 있습니다. 다음 쿼리는 이벤트의 JSON을 구문 분석하고 그 내용을 표시하는 방법의 예입니다.
Syslog | where ProcessName == "ServiceFabric" | extend $payload = parse_json(SyslogMessage) | project $payload
위의 예제는 NodeDown 이벤트입니다. 이벤트 전체 목록은 여기서 볼 수 있습니다.
다음 단계
- 노드에 Log Analytics 에이전트를 배포하여 성능 카운터를 수집하고 컨테이너에 대한 docker 통계 및 로그를 수집합니다.
- Azure Monitor 로그의 일부로 제공되는 로그 검색 및 쿼리 기능을 알아봅니다.
- 뷰 디자이너를 사용하여 Azure Monitor 로그에서 사용자 지정 보기 만들기
- Syslog와 Azure Monitor 로그를 통합하는 방법에 대한 참조