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


События кластера Service Fabric под управлением Linux в системном журнале

Service Fabric предоставляет набор событий платформы, информирующих о важных действиях, выполняемых в кластере. Полный список опубликованных событий доступен здесь. Существуют различные способы восприятия этих событий. В этой статье описано, как настроить Service Fabric для записи этих событий в системный журнал.

Введение

В выпуске 6.4 был представлен SyslogConsumer для отправки событий платформы Service Fabric в Syslog для кластеров Linux. После включения события автоматически передаются в системный журнал, который можно собирать и отправлять агентом Log Analytics.

Каждое событие Системного журнала содержит четыре компонента

  • Помещение
  • Идентичность
  • Сообщение
  • Степень серьезности

SyslogConsumer записывает все события платформы с помощью средства Local0. Вы можете обновить любой допустимый объект, изменив конфигурацию. Используемый идентификатор — 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"
            }
            ]
        }
    ],

Уделите внимание следующим изменениям:

  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. Полный список событий см. здесь.

Дальнейшие действия