События кластера Service Fabric под управлением Linux в системном журнале
Service Fabric предоставляет набор событий платформы, информирующих о важных действиях, выполняемых в кластере. Полный список предоставленных событий доступен здесь. Существуют различные способы использования этих событий. В этой статье описано, как настроить Service Fabric для записи этих событий в системный журнал.
Введение
В выпуске 6.4 был представлен syslogConsumer для отправки событий платформы Service Fabric в системный журнал для кластеров Linux. После включения события автоматически передаются в системный журнал, который можно собирать и отправлять агентом Log Analytics.
Каждое событие Системного журнала содержит четыре компонента
- Помещение
- Идентификация
- Сообщение
- Важность
SyslogConsumer записывает все события платформы с помощью средства Local0
. Вы можете обновить любое допустимое средство, изменив конфигурацию. Используется ServiceFabric
удостоверение. Поле "Сообщение" содержит весь сериализованный в ФОРМАТЕ JSON событие, чтобы его можно было запрашивать и использовать различными средствами.
Включение Syslog Consumer
Для включения 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"
}
]
}
],
Необходимо вызвать следующие изменения:
- В разделе Common есть новый параметр
LinuxStructuredTracesEnabled
. Он необходим для структурирования и сериализации событий Linux при отправке в системный журнал. - В разделе диагностики добавлен новый объект ConsumerInstance: SyslogConsumer. Это сообщает платформе, что есть другой потребитель событий.
- В разделе нового параметра SyslogConsumer для
IsEnabled
должно быть установлено значениеtrue
. Она настроена для автоматического использования объекта Local0. Вы можете переопределить его, добавив еще один параметр.
{
"name": "New LogFacility",
"value": "<Valid Syslog Facility>"
}
Интеграция журналов Azure Monitor
Вы можете считывать эти события системного журнала с помощью инструмента мониторинга, такого как журналы Azure Monitor. Вы можете создать рабочую область Log Analytics с помощью Azure Marketplace с помощью этих инструкций.
Кроме того, необходимо добавить агент Log Analytics в кластер для сбора и отправки этих данных в рабочую область. Этот же агент используется для сбора счетчиков производительности.
Перейдите к разделу
Advanced Settings
Выберите
Data
Выберите
Syslog
Настройте Local0 в качестве устройства для трассировки. Можно добавить другое устройство, если оно было изменено в fabricSettings
Перейдите в проводник запросов, щелкнув
Logs
в меню ресурсов рабочей области, чтобы выполнить запрос.Вы можете выполнить запрос к таблице
Syslog
, выполнив поискServiceFabric
в качестве имени процесса. Следующий запрос — это пример анализа JSON в событии и отображения его содержимого.
Syslog | where ProcessName == "ServiceFabric" | extend $payload = parse_json(SyslogMessage) | project $payload
В приведенном выше примере описано событие NodeDown. Полный список событий см. здесь.
Следующие шаги
- Разверните агент Log Analytics на узлах для сбора данных счетчиков производительности и статистики Docker, а также журналов для контейнеров.
- Ознакомьтесь с функциями поиска по журналам и запросов к журналам, которые являются частью журналов Azure Monitor
- Используйте Конструктор представлений для создания пользовательских представлений в журналах Azure Monitor
- Справочник по интеграции журналов Azure Monitor с системным журналом.