AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 125056
Accepted
Chris Lercher
Chris Lercher
Asked: 2010-03-23 11:06:32 +0800 CST2010-03-23 11:06:32 +0800 CST 2010-03-23 11:06:32 +0800 CST

syslogd:日志文件格式(不是配置格式)

  • 772

我想解析日志文件。syslogd 的日志文件格式是否对所有系统都相同?在我的系统(Debian Lenny)上,它是:

Mar  7 04:22:40 my-host-name ...

(我对 ... 部分不太感兴趣)

我可以依靠这个吗?是否有一些或多或少的官方描述?的手册页syslogd描述了配置格式,但没有描述日志文件格式。

理想情况下,描述会给字段提供官方名称,例如(日期、时间、主机、条目)或(日期时间、主机名、消息)。也许另外一些正则表达式。我想在我的脚本中使用名称和正则表达式,以避免不必要地偏离标准,并确保脚本到处运行。

谢谢

克里斯

log-files syslogd
  • 3 3 个回答
  • 8245 Views

3 个回答

  • Voted
  1. voretaq7
    2010-03-23T12:07:01+08:002010-03-23T12:07:01+08:00

    Warner 向您指出的 RFC 3164 描述了 UDP syslog 消息的网络格式,您可以依靠这是通过网络传输的内容,但是 syslogd 在记录您的消息时可能会写入与磁盘略有不同的内容。
    也就是说,您通常可以依赖类似于 RFC 中描述的系统日志条目,大致形式如下:

    DATE HOSTNAME TAG: MESSAGE
    

    日期的格式Jan 1 00:00:01
    主机名通常是短主机名,但可能是完全限定的(特别是如果您正在记录来自远程主机的消息)
    标签是自由格式,但按照惯例不包含:. 它通常是形式的procname[PID],我相信后面总是跟一个字面的:
    Message是自由形式的

    如果您需要更好地保证日志格式的一致性,syslog-NG 值得研究——它可以让您定义字段并插入标记,以确保您可以解析结果文件。syslog-NG 还允许您包含元数据,例如消息中的设施+优先级值。不过,使用 syslog-NG 可以将“无处不在”的定义简化为“运行 syslog-NG 且配置与您的配置相似的机器”。

    • 3
  2. Best Answer
    Warner
    2010-03-23T11:12:50+08:002010-03-23T11:12:50+08:00

    RFC应该回答这个问题。据我所知:是的,通常是这样。

    • 2
  3. Tommy
    2016-06-03T08:04:15+08:002016-06-03T08:04:15+08:00

    魔鬼在@warner 链接的 RFC 中:

    4.1.3 MSG 系统日志包的一部分

    MSG 部分将填充 syslog 数据包的其余部分。这通常包含生成消息的进程的一些附加信息,然后是消息的文本。这部分没有结束分隔符。syslog 数据包的 MSG 部分必须包含可见(打印)字符。传统上和最常用的代码集也是 8 位字段中的 7 位 ASCII,就像 PRI 和 HEADER 部分中使用的那样。在此代码集中,唯一允许的字符是 ABNF VCHAR 值 (%d33-126) 和空格(SP 值 %d32)。但是,不需要说明 MSG 中使用的代码集,也不是预期的。可以使用其他代码集,只要在 MSG 中使用的字符是与上述类似的专有可见字符和空格。在 MSG 部分中使用的代码集的选择应该考虑到预期的接收者。包含收件人无法查看或理解的代码集中字符的消息将不会为查看它的操作员或管理员提供有价值的信息。MSG 部分有两个字段,称为 TAG 字段和 CONTENT 字段。TAG 字段中的值将是生成消息的程序或进程的名称。CONTENT 包含消息的详细信息。传统上,这是一条自由格式的消息,提供事件的一些详细信息。TAG 是 ABNF 字母数字字符串,不得超过 32 个字符。任何非字母数字字符都将终止 TAG 字段,并假定为 CONTENT 字段的起始字符。最常见的是,CONTENT 字段的第一个字符表示

    这实质上是说开发人员可以将他们想要的任何内容粘贴到 CONTENT 中,因此对于消息的实际内容确实没有标准,仅针对消息的组织。我可能会说这是一个缺陷,但我还不确定。

    • 0

相关问题

  • 基于时间戳剪切日志文件部分的快速脚本

  • 如何以友好的格式读取 pcap 文件?

  • 什么是好的日志查看器,例如 apache、postfix、syslog?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve