4

我有结构化数据,键值对,应该通过系统日志记录。最后,我们希望看到有关这些指标的统计数据。我们应该如何在接收端编码然后解码呢?

我们在 syslog 中解析日志的消息部分并基于该解析将其插入到关系数据库表中的一种选择。

我们的第二个想法是以 JSON 格式发送数据,在接收方,我们将关系数据库表视为作业队列,在插入单独的表之前必须解析记录。

此外,键值对可能会根据我们想要记录的内容而改变。

4

1 回答 1

3

syslog 协议的RFC 5424定义了一个STRUCTURED-DATA字段:

系统日志消息具有以下 ABNF [RFC5234] 定义:

    SYSLOG-MSG = 标题 SP结构化数据[SP MSG]
    (...)
    结构化数据 = NILVALUE / 1*SD-ELEMENT
    SD-ELEMENT = "[" SD-ID *(SP SD-PARAM) "]"
    SD-PARAM = PARAM-NAME "=" %d34 PARAM-VALUE %d34
    SD-ID = SD-名称
    PARAM-NAME = SD-NAME
    参数值 = UTF-8-STRING ;字符 '"'、'\' 和
                                     ; ']' 必须转义。
    SD-NAME = 1*32PRINTUSASCII
                      ; 除了 '=', SP, ']', %d34 (")
    (...)

此处为示例

但是,该 RFC 似乎并未得到广泛支持。您可能需要在旧的RFC 3164之上设计自己的协议。JSON 编码的消息部分听起来是一个非常合理的选择。

如果您可以完全控制整个链,则应评估直接登录到目标数据库的选项。

于 2015-04-03T09:32:49.153 回答