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 / 问题 / 575858
Accepted
Paul Haldane
Paul Haldane
Asked: 2014-02-16 08:40:08 +0800 CST2014-02-16 08:40:08 +0800 CST 2014-02-16 08:40:08 +0800 CST

通过 TCP 从 rsyslog 转发到 syslog-ng 不起作用(尽管数据包正在到达服务器)

  • 772

我们在中央系统日志服务器上使用 syslog-ng(CentOS 5.9 上的 syslog-ng-2.1.4-9.el5)。我们很高兴地使用 syslogd 和 rsyslog 从 Linux 和 Solaris 主机的混合通过 UDP 发送日志,直到昨天我终于明白我们正在丢失大量条目(是的,我应该注意所有警告)。

我正在尝试更改为使用 TCP。我(目前)热衷于在中心使用 syslog-ng,在发件人上使用 rsyslog,我的理解是这应该可行。中央系统日志服务器有多个虚拟接口,用于按功能对日志集进行分段(这就是 udp() 和 tcp() 语句指定要绑定到的 IP 地址的原因)。

我在 syslog-ng 端启用了 TCP 侦听器(请参阅下面的配置文件摘录)- netstat -l 显示端口 514 上的侦听器。作为测试,我更改了一台主机上的转发子句(CentOS 6.4 和 rsyslog-5.8.10-6 .el6.x86_64) 从@unixlog 到@@unixlog。我看到到达中央服务器的数据包和返回的数据包(在 unixlog 上使用 tcpdump 查看)所以我认为我已经消除了 iptables 的问题,但是输出文件中没有出现任何内容。我只是尝试关闭 iptables 一段时间来检查这一点——同样的事情。

我没有尝试打开 syslog-ng 的调试,因为这是一个繁忙的服务器 - 我的下一步可能是设置一个测试 syslog-ng 服务器并将单个主机指向它。在我这样做之前还有什么我应该看的吗?我需要更改转发消息的格式吗?我对 Syslog-ng 2.x 文档的阅读表明,这应该可以在没有任何更改的情况下工作。我尝试更改调用 rsyslog 的兼容级别选项。最初设置为 5,我尝试了 0 .. 4 并完全删除了参数 - 行为没有区别。

发件人上的 Rsyslog.conf(已删除评论和本地文件)……

$ModLoad imuxsock
$ModLoad imklog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
*.err;kern.debug;daemon.notice;mail.crit                @unixlog.ncl.ac.uk
local3.debug                                            @cmdloghost.ncl.ac.uk

从 unixlog 上的 rsyslog.conf 中提取

options {
  long_hostnames(off);
  sync(0);
  create_dirs(yes);
};

destination d_syslog {
  file("/var/log/incoming/syslogs/$HOST/syslog.$YEAR$MONTH$DAY.log");
};

# unixlog is 10.8.232.202
source unixlog_net { udp(ip(10.8.232.202)); tcp(ip(10.8.232.202)); };

log {
  source(unixlog_net);
  destination(d_syslog);
};
rsyslog
  • 1 1 个回答
  • 4062 Views

1 个回答

  • Voted
  1. Best Answer
    Paul Haldane
    2014-02-16T09:32:52+08:002014-02-16T09:32:52+08:00

    问题是 tcpwrappers,一旦我设置了一个测试 syslog-ng 实例并在打开调试输出的情况下运行它,这很明显。将以下子句添加到 /etc/hosts.allow 就可以了

    syslog-ng: 10.0.0.0/255.0.0.0
    

    还意识到我们没有处理 syslog-ng 的内部消息(这很可能告诉我们问题所在)。现在添加了以下几行来执行此操作...

    # Deal with syslog-ng's own messages
    source s_internal { internal(); };
    destination d_internal {file("/var/log/syslog-ng.log"); };
    log { source(s_internal); destination(d_internal); };
    
    • 3

相关问题

  • Rsyslog 邮件模块不工作

  • syslog消息格式问题

  • CentOS 5.3 上的 rsyslog-mysql 没有访问 mysql.sock 的权限

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