你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Syslog 中的 Service Fabric Linux 群集事件

Service Fabric 公开一组平台事件,告知你群集中的重要活动。 点击此处查看公开的完整事件列表。 可通过各种方式使用这些事件。 本文介绍如何配置 Service Fabric,以将这些事件写入 Syslog。

介绍

在 6.4 版中就已引入了 SyslogConsumer,用于将 Service Fabric 平台事件发送到 Linux 群集的 Syslog。 启用后,事件将自动传递到可通过 Log Analytics 代理收集和发送的 Syslog。

每个 Syslog 事件有四个组成部分

  • 设施
  • 标识
  • Message
  • 严重性

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 事件发送到 Syslog 时,将它们组织起来并串行化。
  2. 在 Message 部分,添加了一个新的 ConsumerInstance:SyslogConsumer。 此项告知平台还有另一个事件使用者。
  3. 新部分 SyslogConsumer 需要将 IsEnabled 设为 true。 它配置为自动使用 Local0 设施。 你可以添加另一个参数来替代该设置。
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }

Azure Monitor 日志集成

可以使用 Azure Monitor 日志等监视工具来读取这些 Syslog 事件。 可以按照这些说明使用 Azure 市场创建 Log Analytics 工作区。

还需要将 Log Analytics 代理添加到群集,以收集此数据并将其发送到工作区。 这正是用于收集性能计数器的同一个代理。

  1. 导航到 Advanced Settings 部分

    工作区设置

  2. 选择 Data

  3. 选择 Syslog

  4. 将 Local0 配置为要跟踪的设施。如果在 fabricSettings 中进行了更改,可以再添加一个设施

    配置 Syslog

  5. 单击工作区资源菜单中的Logs可前往查询浏览器启动查询

    工作区日志

  6. 可以对 Syslog 表进行查询,查找作为 ProcessName 的 ServiceFabric。 以下示例查询演示如何分析事件中的 JSON 并显示其内容

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

Syslog 查询

上面的示例为 NodeDown 事件。 可在此处查看事件的完整列表。

后续步骤