指定 IP 地址时 syslog NG 未启动,但可作为全部捕获并写入文件设置

Posted

技术标签:

【中文标题】指定 IP 地址时 syslog NG 未启动,但可作为全部捕获并写入文件设置【英文标题】:syslog NG not starting up when specifying an ip address but works as a catch all and write to file setup 【发布时间】:2018-03-13 08:52:07 【问题描述】:

我正在尝试设置一个 syslog NG 服务器,我可以在其中收集所有日志。现在我设法创建服务器将从所有服务器收集所有日志并将其写入单个文件的设置。但我想知道是否可以为每个 IP 地址创建一个单独的日志文件。我的配置文件如下,每次我提到网络它都无法启动。你能告诉我我哪里出错了吗?

log  source(s_src); filter(f_console); destination(d_console_all);
                                    destination(d_xconsole); ;
log  source(s_src); filter(f_crit); destination(d_console); ;
log 
  source(s_src);
  ;
destination Windest 
  file("/var/log/test");
  ;
source forwarder 
  network( ip(192.168.1.140));
  ;
destination forwarderonedest 
  file("/var/log/forwarder1");
  ;
log 
  source(forwarder);
  destination(forwarderonedest);
  ;

the 

我尝试重新启动时遇到的错误是 /etc/init.d/syslog-ng 重启 [....] 重新启动 syslog-ng(通过 systemctl):syslog-ng.service 的 syslog-ng.serviceJob 失败,因为控制进程以错误代码退出。有关详细信息,请参阅“systemctl status syslog-ng.service”和“journalctl -xe”。 失败!

对我有用的是

;

destination Windest 
  file("/var/log/test");
  ;
source forwarder 
  tcp();
  udp();
  ;
destination forwarderonedest 
  file("/var/log/forwarder1");
  ;
log 
  source(forwarder);
  destination(forwarderonedest);
  ;

它有效。但是来自所有机器的所有日志都会写入一个文件。

【问题讨论】:

【参考方案1】:

您可以尝试以下配置,以便将日志拆分为两个/更多文件: 根据下面的配置,syslog-ng 服务器将在 2 个不同的端口(您的选择)上运行,即 514 和 515。 因此,在客户端上,您可以将应用程序日志配置为转发到端口 514,将系统日志配置到端口号 515。 Syslog-ng 服务器将处理两个不同文件中的日志。

#### Local Logs ####
source s_local  system(); internal(); ;
#### Source : Application Logs ####
source s_xyz_network 
    network(transport(tcp) ip(192.168.1.140)  port (514) flags(syslog-protocol));
    ;
#### Source: System Logs #####
source s_sys_network 
    network(transport(tcp) ip(192.168.1.140)  port (515) flags(syslog-protocol));
    ;
destination d_local 
file("/var/log/syslog-ng/local_sys_logs.log"); ;
destination d_xyz_logs 
    file(
        "/var/log/syslog-ng/centralized_logs_xyz.log"
        owner("root")
        group("root")
        perm(0777)
        ); ;
destination d_sys_logs 
    file(
        "/var/log/syslog-ng/centralized_sys_logs.log"
        owner("root")
        group("root")
        perm(0777)
        ); ;
log   source(s_xyz_network); destination(d_xyz_logs);;
log  source(s_local); destination(d_local);;
log  source (s_sys_network);destination(d_sys_logs);;

##### Config Ends ########

希望对你有帮助:)

【讨论】:

以上是关于指定 IP 地址时 syslog NG 未启动,但可作为全部捕获并写入文件设置的主要内容,如果未能解决你的问题,请参考以下文章

磁盘空间未释放异常案例

syslog-ng读取文件权限被拒绝

linux下syslog-ng日志集中管理服务部署记录

如果没有配置传输,但设置了 UDP 端口,syslog-ng 会发生啥?

为啥 syslog-ng 会截断输出?

Syslog-NG 两个中继服务器问题