【发布时间】:2021-05-27 18:28:53
【问题描述】:
美好的一天
我想使用 imfile 文件输入模块将文本文件导入 rsyslog。但是,rsyslog 并没有像我预期的那样解析文本文件的内容,我正在努力寻找关于它是如何完成的文档。为了测试设置,我使用 imfile 从文本文件中读取,然后使用 omfile 将日志写入另一个文本文件。
文本文件的内容是“标准”系统日志格式的日志:
<PRI>TIMESTAMP HOSTNAME MESSAGE
我要导入 Rsyslog 的示例文本文件 (example_file.txt.) 如下所示:
<34>Feb 15 12:12:12 hostname1 tag1: message1
<34>Feb 16 12:12:12 hostname2 tag2: message2
<34>Feb 17 12:12:12 hostname3 tag3: message3
我在 rsyslog-d 中的 rsyslog 配置文件如下所示:
module(load = "imfile")
input(type = "imfile" file = "/home/.../Desktop/example_file.txt" Tag = "example")
action(type = "omfile" file = "/home/.../Desktop/example_output.log")
example_output.log 中的结果输出如下所示:
Feb 15 17:10:21 username example <34>Feb 15 12:12:12 hostname1 tag1: message1
Feb 15 17:10:21 username example <34>Feb 16 12:12:12 hostname1 tag2: message2
Feb 15 17:10:21 username example <34>Feb 17 12:12:12 hostname1 tag3: message3
如您所见,example_file.txt 中的所有内容都放置在 example_output.log 中生成日志的 MSG 字段中,而不是使用字段信息并将它们放置在正确的位置,例如时间戳、主机名、标签、味精。我在 .txt 文件中尝试过不同的格式,甚至将 .txt 文件保存为 .log 文件,但 rsyslog 每次都将整个内容放在 MSG 字段中。
那么我的问题:
如何告诉 rsyslog 和 imfile 我的 .txt 内容实际上是日志并正确解析它们?
考虑到:
我正在使用 Linux v4.4.0-ubi4-amd64 (UbiLinux) 开发 Up-Board
我正在使用 rsyslog8.24(最新稳定版)
-
我已经通读了:
-Rsyslog官方文档,
-Imfile官方文档,
-Rainer Gerhards 的 syslog 解析在 rsyslog (http://www.rsyslog.com/doc/syslog_parsing.html),
-甚至是 BSD Syslog 协议 RFC3164 (http://www.ietf.org/rfc/rfc3164.txt) 的文档
【问题讨论】:
标签: rsyslog