我正在尝试设置一个系统日志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 restart [....]重新启动syslog-ng(通过systemctl):syslog-ng.serviceJob for syslog-ng.service失败,因为控制进程退出并显示错误代码。有关详细信息,请参阅“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);
};
它有效。但是所有机器的所有日志都被写入一个文件。
答案 0 :(得分:0)
您可以尝试以下配置,以便将日志拆分为两个/多个文件: 根据下面的配置,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 ########
希望这会对你有所帮助:)。