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 / 问题 / 773040
Accepted
Lacek
Lacek
Asked: 2016-04-27 06:55:23 +0800 CST2016-04-27 06:55:23 +0800 CST 2016-04-27 06:55:23 +0800 CST

syslog-ng 不解析消息

  • 772

到目前为止,我正在尝试设置 syslog-ng 以正确解析 RFC5424 编译消息,但收效甚微。根据 syslog-ng 文档,

syslog-ng OSE 应用程序可以自动解析符合 RFC3164(BSD 或 legacy-syslog)或 RFC5424 (IETF-syslog) 消息格式的日志消息。如果 syslog-ng OSE 无法解析消息,则会导致错误。

这表明 syslog-ng 不需要额外的参数来实际解析这些消息。然而,事实并非如此。

这是我的 syslog-ng 配置的相关部分:

template remote_message {
    template("${R_ISODATE} s=${SDATA} mesg=${MSGONLY}\n");
};

source s_remote {
    tcp(port(514));
    syslog(transport(tcp));
};

destination d_remote {
    file(
        "/var/log/remote.log"
        owner(root)
        group(root)
        create_dirs(yes)
        template(remote_message)
    );
};

log {
    source(s_remote);
    destination(d_remote);
};

服务器侦听端口 514,并从远程源获取日志,但根本不解析它们。发送以下消息(从RFC 文本复制):

<165>1 2003-10-11T22:14:15.003Z sender.computer.org evententry - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] Test message

产生以下日志条目:

2016-04-26T16:22:31+02:00 s= mesg=2003-10-11T22:14:15.003Z sender.computer.org evententry - ID47 [exampleSDID@32473 iut="3" eventSource="Application" eventID="1011"] Test message

如您所见,消息根本没有被解析。与文档相反,这不会导致错误:根据文档,如果on-error选项设置为fallback-to-string, syslog-ng 应该“将错误消息记录到 internal() 源”,但不会生成此类日志。

我有一种感觉,我在这里遗漏了一些非常基本的东西,因为它确实应该起作用。我错过了什么?

syslog-ng
  • 1 1 个回答
  • 1493 Views

1 个回答

  • Voted
  1. Best Answer
    Robert Fekete
    2016-04-28T00:54:04+08:002016-04-28T00:54:04+08:00

    您的来源似乎配置错​​误:

    source s_remote {
        tcp(port(514));
        syslog(transport(tcp));
    };
    

    这实际上是两个来源:

    • 第一行在端口 514 上侦听 RFC3164 消息
    • 第二行在端口 601(syslog() 源的默认端口)上侦听 RFC5424 消息

    因此,如果您将 RFC5424 消息发送到端口 601,它应该可以工作(除非某些防火墙阻止侦听端口 601)。

    高温下,

    罗伯特·费克特

    • 2

相关问题

  • Syslog-ng:如何记录严重性/设施?

  • Solaris 10 上的 syslog-ng(如何安装和配置)

Sidebar

Stats

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

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

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

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

    • 9 个回答
  • Marko Smith

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

    • 3 个回答
  • Marko Smith

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

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +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