Поделиться через


События кластера 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"
            }
            ]
        }
    ],

Необходимо вызвать следующие изменения:

  1. В разделе Common есть новый параметр LinuxStructuredTracesEnabled. Он необходим для структурирования и сериализации событий Linux при отправке в системный журнал.
  2. В разделе диагностики добавлен новый объект ConsumerInstance: SyslogConsumer. Это сообщает платформе, что есть другой потребитель событий.
  3. В разделе нового параметра SyslogConsumer для IsEnabled должно быть установлено значение true. Она настроена для автоматического использования объекта Local0. Вы можете переопределить его, добавив еще один параметр.
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Интеграция журналов Azure Monitor

Вы можете считывать эти события системного журнала с помощью инструмента мониторинга, такого как журналы Azure Monitor. Вы можете создать рабочую область Log Analytics с помощью Azure Marketplace с помощью этих инструкций.

Кроме того, необходимо добавить агент Log Analytics в кластер для сбора и отправки этих данных в рабочую область. Этот же агент используется для сбора счетчиков производительности.

  1. Перейдите к разделу Advanced Settings

    Параметры рабочей области

  2. Выберите Data

  3. Выберите Syslog

  4. Настройте Local0 в качестве устройства для трассировки. Можно добавить другое устройство, если оно было изменено в fabricSettings

    Настройка Syslog

  5. Перейдите в проводник запросов, щелкнув Logs в меню ресурсов рабочей области, чтобы выполнить запрос.

    Журналы рабочей области

  6. Вы можете выполнить запрос к таблице Syslog, выполнив поиск ServiceFabric в качестве имени процесса. Следующий запрос — это пример анализа JSON в событии и отображения его содержимого.

    Syslog | where ProcessName == "ServiceFabric" | extend $payload = parse_json(SyslogMessage) | project $payload

Запрос системного журнала

В приведенном выше примере описано событие NodeDown. Полный список событий см. здесь.

Следующие шаги