我如何告诉 syslog-ng 我想切换日志文件。
我正在寻找一个命令或信号来告诉 syslog-ng 执行日志切换。搜索文档和常见问题解答没有找到解决方案。
root@monitor:/opt/observium# service syslog-ng restart
Stopping system logging: syslog-ng.
Starting system logging: syslog-ngsyslog-ng: Error setting capabilities, capability management disabled; error='Operation not permitted'
root@monitor:/opt/observium# uname -a
Linux monitor 2.6.32-042stab075.2 #1 SMP Tue Mar 5 15:21:53 MSK 2013 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
这是内核的问题吗?
如果我在 syslog-ng 中有一个条目
log {
source (src);
filter (filter1);
filter (filter2);
filter (filter3);
filter (filter4);
destination (all_log)
}
Run Code Online (Sandbox Code Playgroud)
而且,sayfilter4
是一个非常宽松的过滤器,filter3
是一个过滤器,可以根除一些令人讨厌的主机。如果filter2
和/或filter1
允许那些令人讨厌的主机之一,它会被记录吗?
在 Windows 中,我使用“Eventlog to Syslog”实用程序将事件日志发送到 Linux syslog 服务器 (syslog-ng)。但是我不能对某些日志文件做同样的事情,尤其是在 IIS 日志的情况下。
为什么不能使用命名工具?
如何使用 eventlog to syslog 实用程序将这些日志文件发送到 syslog 服务器?
我很难调试一个问题,我认为这可能有两个方面 - 两个单独程序中的问题。
主要问题是我在 Ubuntu 14.04 上将 nginx 记录到 syslog,如下所示:
access_log syslog:server=unix:/dev/log,tag=nginx,facility=local7,severity=info combined
Run Code Online (Sandbox Code Playgroud)
我希望能够过滤标记为 nginx 的消息,但没有那么幸运。
filter nginx { facility(local7) and tags("nginx") }
Run Code Online (Sandbox Code Playgroud)
将 and 更改为 or 可以工作,或者只需删除标签部分,因为设施过滤器工作正常。然而,标签过滤器不会。
所以,我想使用记录器进行测试并设置一个基本测试,如下所示:
template nginx { template("timestamp=${ISODATE} host=${HOST} tags=${TAGS} msgheader=${MSGHDR} ${MSG}\n"); template-escape(no); };
filter nginx { tags("nginx"); };
destination nginx { file("/tmp/nginx.log" template(nginx)); };
log { source(s_net); filter(nginx); destination(nginx); };
Run Code Online (Sandbox Code Playgroud)
--
$ logger -n localhost -P 10001 -t nginx -p local7.info -u /tmp/ignored testing 123
Run Code Online (Sandbox Code Playgroud)
我有一个源 s_net,在端口 10001 上侦听 UDP 以进行此测试。使用记录器,我通过 UDP 登录到该端口,使用 local7 …