【问题标题】:syslog question on rfc关于 rfc 的系统日志问题
【发布时间】:2011-06-20 22:27:45
【问题描述】:

我想使用 syslog 从远程应用程序进行日志记录。
不过我有一些问题:
例如 RFC 说:

If the originally formed message has a HOSTNAME field, then it
will contain the hostname as it knows itself.  If it does not
have a hostname, then it will contain its own IP address.

这是什么意思? 从我的应用程序到日志客户端库的消息,如果它包含一些主机名,那么它将被替换?
可以举个例子吗?
我试过例如:
From localhost some data

From ahost@aa some data
并且这些字符串存储在系统日志服务器中,因为它们由我的应用程序发送到系统日志客户端库。
由于上述要求,它们不应该有所不同吗??
我正在将 log4j 用于 syslog 客户端。

谢谢

【问题讨论】:

    标签: linux unix logging log4j syslog


    【解决方案1】:

    您正在阅读旧的RFC 3164。那个已经过时了;替换为RFC 5424,这对于HOSTNAME 字段中的内容更加清晰:

    HOSTNAME 字段标识 最初发送的机器 系统日志消息。

    HOSTNAME 字段应该包含 的主机名和域名 指定格式的发起人 在 STD 13 [RFC1034] 中。这种格式 被称为完全限定域 本文档中的名称 (FQDN)。

    在实践中,并非所有系统日志 应用程序能够提供一个 FQDN。因此,其他值可能 也存在于 HOSTNAME 中。这 文件规定了使用 在这种情况下的其他值。一种 系统日志应用程序应该提供 最具体的可用值 第一的。优先顺序 HOSTNAME 字段的内容是 如下:

    1. FQDN

    2. 静态IP地址

    3. 主机名

    4. 动态 IP 地址

    5. 零值

    【讨论】:

    • @larsman:我在 syslog 之前看到过,例如From localhost some data 运行我的应用程序的机器的 IP。所以这是预期的并且符合 syslog?与实际应用数据无关(本例中为From localhost some data)?
    • RFC 描述了 Syslog 实现自己生成的主机名字段。如果您还在日志消息中添加了主机名,那么它将按原样保留:“任何 syslog 传输协议不得故意更改 syslog 消息。”
    • @larsman:我明白了。您知道 syslog 客户端实现通常是否完全符合 RFC?
    • 我不会把钱花在完全合规上,除非它是一个非常新的实现,但 RFC 确实主要编纂了现有实践,违反“无编辑”要求似乎是一件愚蠢的事情做任何协议。测试你的实现以确保。
    • @larsman:抱歉,我没有收到您的最后评论。您是说 RFC 通常处于修改状态,因此可能会弃用实现?或其他什么?
    猜你喜欢
    • 2023-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 2023-03-14
    相关资源
    最近更新 更多