我有几个应用程序和脚本,我想将输出重定向到自定义文件。
我使用这些应用程序启动
command | logger -t TAG
Run Code Online (Sandbox Code Playgroud)
我想根据它们的标签过滤这些消息并将它们重定向到不同的文件。我不想使用 bash 重定向,因为这些应用程序主要是长时间运行的进程并且需要适当的日志轮换。
我尝试在 /etc/rsyslog.d/60-myfilter.conf 中添加自定义过滤器;
if $syslogtag == 'giomanager' then /var/log/giomanager.log
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么 ?根据标签进行过滤的正确方法是什么,或者是否有更好的选择来获得类似的结果?
我想使用 强制日志文件轮换logrotate -f /var/log/syslog,但它只是返回音调:
error: syslog:1 unknown option 'May' -- ignoring line
error: syslog:1 unexpected text
Run Code Online (Sandbox Code Playgroud)
我知道在这个系统上 rsyslogd 正在运行。如何旋转/var/log/syslog?我想要它是空的。
我正在运行 Debian 服务器,几天前我的 rsyslog 开始表现得很奇怪,守护进程正在运行但它似乎没有做任何事情。许多人使用该系统,但我是唯一拥有(合法)root 访问权限的人。
我正在使用默认的 rsyslogd 配置(如果您认为相关,我会附上它,但它是随包提供的配置)。
在我轮换所有日志文件后,它们仍然是空的:
# ls -l /var/log/*.log
-rw-r--r-- 1 root root 0 Jun 27 00:25 /var/log/alternatives.log
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/auth.log
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/daemon.log
-rw-r--r-- 1 root root 0 Jun 27 00:25 /var/log/dpkg.log
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/kern.log
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/lpr.log
-rw-r----- 1 root adm 0 Jun 26 13:03 /var/log/mail.log
-rw-r----- 1 root …Run Code Online (Sandbox Code Playgroud) 我试图让 rsyslog 将所有日志发送到 2 个远程服务器,但如果第一个失败,rsyslog 似乎只发送到辅助服务器。
*.* @@server1
*.* @@server2
Run Code Online (Sandbox Code Playgroud)
如果我将上述内容放在 /etc/rsyslog.conf 中,只要 server1 启动,server2 就不会收到任何日志。无论如何,我如何告诉 rsyslog 发送到两台服务器?
此外,作为额外的奖励,如果远程服务器出现故障,我想使用 2 个不同的本地“缓冲区”文件进行本地存储。
我刚刚设置了一个 Graylog2 服务器,我希望将所有日志从我的主服务器发送到 Graylog 服务器。我已启用主服务器的日志记录,并通过添加*.* @logs.example.com:1337到/etc/rsyslog.conf.
我想要的是让 Graylog2 收集我所有的 Apache 日志、系统日志(用于 SSH 登录、拒绝登录)以及我需要监控的任何其他日志。
对于 Apache 日志,我还想要 Rails 日志。我的网站位于/srv/www/,然后结构是sitename.com/public_html和sitename.com/logs。我在服务器上有很多站点,我想要一种简单的方法来查看所有错误并从中制作一些漂亮的图表,因此我想使用 Graylog2 ...
日志文件夹中的日志文件是access.log和error.log。
Rails 日志将在sitename.com/public_html/log. 这包含production.log.
Rsyslog 向后兼容 Syslog 配置文件。
syslog.conf 手册页有:
您可以在每个条目前加上减号 ``-'' 符号以省略在每次记录后同步文件。请注意,如果系统在写入尝试后立即崩溃,您可能会丢失信息。尽管如此,这可能会给您带来一些性能,尤其是当您运行以非常详细的方式使用日志记录的程序时。
但我找不到有关-登录的任何信息man rsyslog.conf。
如果读取-配置文件,rsyslog 会做什么?
使用 rsyslog 为每个日志文件定义不同的权限是否可行?
$FileCreateMode 适用于所有人,但我想要特定文件的不同权限。
我已经为 syslog 警报等设置了 loggly,并且在 syslog 中反复收到以下错误。
command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.16.0 try http://www.rsyslog.com/e/2222 ]
Run Code Online (Sandbox Code Playgroud)
运行 Ubuntu 16.04.1 LTS 4.4.0-42-generic
否则服务器似乎运行良好。据我所知,这会通知 rsyslog 允许非内核事件进入 syslog,这正是我想要的。除此之外,我不确定。
也收到了这个
Could not open output pipe '/dev/xconsole':: No such file or directory [v8.16.0 try http://www.rsyslog.com/e/2039 ]
Run Code Online (Sandbox Code Playgroud)
我是一个非常非常不情愿的开发人员,提前抱歉。
*编辑:重新启动系统日志服务,问题仍然存在。
*编辑:抑制 /dev/xconsole 错误,KLogPermitNonKernelFacility 错误仍然存在。
我/var/log/cron.log通过取消注释中的以下行来分离我的 crontab 登录/etc/syslog.conf,但它仍然写入/var/log/syslog!
cron.* /var/log/cron.log
Run Code Online (Sandbox Code Playgroud)
我怎样才能防止它写入/var/log/syslog?
在来自 EC2 实例的/var/log/messages中有很多行,例如:
<date/timestamp> ip-<IP_HERE> ec2net: [get_meta] Trying to get http://169.254.169.254/latest/meta-data/network/interfaces/macs/MAC_ADDR/local-ipv4s
<date/timestamp> ip-<IP_HERE> ec2net: [rewrite_aliases] Rewriting aliases of eth0
<date/timestamp> ip-<IP_HERE> dhclient[2187]: XMT: Solicit on eth0, interval 112321ms.
<date/timestamp> ip-<IP_HERE> dhclient[2187]: XMT: Solicit on eth0, interval 111231ms.
....
and more XMT: Solicit messages (hundreds more)
Run Code Online (Sandbox Code Playgroud)
为什么会有数百条这样的请求消息,这XMT: Solicit on eth0意味着什么?我应该如何解释这个?
这仅仅是 DHCP 请求(或许多请求)的日志吗?我以前没见过“XMT”。
rsyslog ×10
logging ×4
log-files ×3
syslog ×2
amazon-ec2 ×1
apache-2.2 ×1
bash ×1
cron ×1
dhcp ×1
graylog ×1
logrotate ×1
permissions ×1
remote ×1
ubuntu ×1
ubuntu-16.04 ×1