Syslog

编辑

syslog 处理器解析存储在某个字段中的 RFC 3146 和/或 RFC 5424 格式的 syslog 消息。处理器本身不处理接收来自外部来源的 syslog 消息。这是通过输入完成的,例如 TCP 输入。某些集成在通过配置启用时,会嵌入 syslog 处理器来处理 syslog 消息,例如自定义 TCP 日志和自定义 UDP 日志。

配置

编辑

syslog 处理器解析存储在 field 键下的 RFC 3146 和/或 RFC 5424 格式的 syslog 消息。

支持的配置选项:

field
(必填) 包含 syslog 消息的源字段。默认为 message
format
(可选) 要使用的 syslog 格式,rfc3164rfc5424。要自动从日志条目检测格式,请将此选项设置为 auto。默认为 auto
timezone
(可选) 解析不包含时区的 syslog 时间戳时要使用的 IANA 时区名称(例如 America/New York)或固定时间偏移量(例如 +0200)。可以指定 Local 来使用机器的本地时区。默认为 Local
overwrite_keys
(可选) 一个布尔值,指定是否用来自 syslog 消息的键覆盖事件中已存在的键。默认值为 true
ignore_missing
(可选) 如果为 true,则当指定的字段不存在时,处理器不会返回错误。默认为 false
ignore_failure
(可选) 忽略处理器产生的所有错误。默认为 false
tag
(可选) 此处理器的标识符。用于调试。

示例

processors:
  - syslog:
      field: message
{
  "message": "<165>1 2022-01-11T22:14:15.003Z mymachine.example.com eventslog 1024 ID47 [exampleSDID@32473 iut=\"3\" eventSource=\"Application\" eventID=\"1011\"][examplePriority@32473 class=\"high\"] this is the message"
}

将产生以下输出

{
  "@timestamp": "2022-01-11T22:14:15.003Z",
  "log": {
    "syslog": {
      "priority": 165,
      "facility": {
        "code": 20,
        "name": "local4"
      },
      "severity": {
        "code": 5,
        "name": "Notice"
      },
      "hostname": "mymachine.example.com",
      "appname": "eventslog",
      "procid": "1024",
      "msgid": "ID47",
      "version": 1,
      "structured_data": {
        "exampleSDID@32473": {
          "iut":         "3",
          "eventSource": "Application",
          "eventID":     "1011"
        },
        "examplePriority@32473": {
          "class": "high"
        }
      }
    }
  },
  "message": "this is the message"
}

时间戳

编辑

RFC 3164 格式接受以下形式的时间戳:

  • 本地时间戳 (Mmm dd hh:mm:ss)

    • Jan 23 14:09:01
  • RFC-3339*

    • 2003-10-11T22:14:15Z
    • 2003-10-11T22:14:15.123456Z
    • 2003-10-11T22:14:15-06:00
    • 2003-10-11T22:14:15.123456-06:00

注意:伴随 RFC 3164 消息的本地时间戳(例如 Jan 23 14:09:01)缺少年份和时区信息。将使用 timezone 配置选项丰富时区,并将使用 Packetbeat 系统的本地时间(考虑时区)丰富年份。因此,消息可能会出现在未来。这可能发生的一个示例是:在 2021 年 12 月 31 日生成的日志在 2022 年 1 月 1 日被摄取。这些日志将被丰富为 2022 年而不是 2021 年。

RFC 5424 格式接受以下形式的时间戳:

  • RFC-3339

    • 2003-10-11T22:14:15Z
    • 2003-10-11T22:14:15.123456Z
    • 2003-10-11T22:14:15-06:00
    • 2003-10-11T22:14:15.123456-06:00

带有星号 (*) 的格式是非标准的允许。

结构化数据

编辑

对于 RFC 5424 格式的日志,如果结构化数据无法根据 RFC 标准进行解析,则原始结构化数据文本将以空格分隔添加到消息字段的前面。

指标

编辑

提供内部指标来协助调试工作。指标来自指标 HTTP 端点(例如:https://127.0.0.1:5066/stats),位于 processor.syslog.[实例 ID]processor.syslog.[tag]-[实例 ID] 下(如果提供了 tag)。有关配置指标 HTTP 端点的更多信息,请参见 HTTP 端点

例如,以下是来自 taglog-input实例 ID1 的处理器的指标:

{
  "processor": {
    "syslog": {
      "log-input-1": {
        "failure": 10,
        "missing": 0,
        "success": 3
      }
    }
  }
}
failure
衡量无法解析消息的出现次数。
missing
衡量事件缺少所需输入字段的出现次数。
success
衡量成功解析的 syslog 消息数量。