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"
            }
            ]
        }
    ],
下面是需要说明的更改
- 在 Common 部分,有一个名为 
LinuxStructuredTracesEnabled的新参数。 这就要求在将 Linux 事件发送到 Syslog 时,将它们组织起来并串行化。 - 在 Message 部分,添加了一个新的 ConsumerInstance:SyslogConsumer。 此项告知平台还有另一个事件使用者。
 - 新部分 SyslogConsumer 需要将 
IsEnabled设为true。 它配置为自动使用 Local0 设施。 你可以添加另一个参数来替代该设置。 
    {
        "name": "New LogFacility",
        "value": "<Valid Syslog Facility>"
    }
Azure Monitor 日志集成
可以使用 Azure Monitor 日志等监视工具来读取这些 Syslog 事件。 可以按照这些说明使用 Azure 市场创建 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 日志集成。