如何从 /var/log/syslog (rsyslog.conf/Debian) 过滤 mail.info,同时保留大于或等于 mail.warn 的消息?
我已经尝试了附加和前置不同组合的几乎所有不同变体mail, mail.info, mail.!info, mail.*, mail.warn, mail.!warn,但显然文档比我更聪明。
目前我正在这样做,但可惜的是,她不行:
*.*;auth,authpriv.none;mail.warn,mail.!info -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)
编辑:我很难理解分号分隔符以及它如何“限制”以前的条目。
在通过我的邮件服务器发送的每封电子邮件之后,postfix/anvil附加如下内容:
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max connection rate 1/60s for (smtp:103.28.42.75) at Nov 9 15:02:42
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max connection count 1 for (smtp:103.28.42.75) at Nov 9 15:02:42
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max message rate 1/60s for (smtp:103.28.42.75) at Nov 9 15:02:43
Nov 9 15:09:11 keutenberg postfix/anvil[30006]: statistics: max cache size 1 at Nov 9 15:02:42
Run Code Online (Sandbox Code Playgroud)
我明白为什么要记录这些消息(我设置了限制),但我找不到任何方法来更改anvil的日志级别(即,禁止来自 的这些信息性消息mail.log)。是否有我可以使用的设置main.cf来禁用这些统计消息?我宁愿在源头阻止它们,也不愿通过系统日志设置来抑制它们。
以下情况:我有一个带有 Ubuntu 14.04LTS 的硬件盒作为 docker 1.4 的主机我在多个容器中运行一个 ELK 堆栈。目前,logstash 容器仅暴露端口 514 来收集系统日志输入。
在某些情况下,重新启动容器后,系统日志流量不再转发到容器。
'iptables -nvL' 显示在容器启动期间没有流量匹配应用于转发链的规则。INPUT 链的流量计数器明显高于 FORWARD 链。
我注意到所有向世界公开 UDP 端口的容器上的这种行为,具有基于 TCP 的服务的容器按预期工作。
重新启动容器和 docker 服务没有成功。
我主要收集防火墙流量日志,所以系统日志流量是相当稳定的。我每秒收集大约 1,5k 个 Syslog 陷阱。
我的解决方法是将所有到主机的流量停止大约 10 秒(目前通过将上游路由器上的流量黑洞化)
在一个防火墙节点上停止 syslog 导出几秒钟后,来自此特定防火墙的流量按预期转发到容器。但仅从这一个。
我认为这是iptables的问题。看来 iptables 将转发信息缓存了几秒钟,并且只要存在流量就会忽略任何新的应用规则。
我这里没有对 iptables 做额外的配置。一切都由 docker 完成。我没有安装 ufw、conntrackd 或任何东西。
任何建议如何解决这个问题?
最好的问候安德烈亚斯
我的 Google-Fu 已经让我很接近了,但还没有完全实现,我想我对 Linux 还太陌生,无法将这些碎片整合在一起。
我有一个非常大的 >200GB 日志文件,仍在写入。在磁盘空间可能成为问题之前,Logrotate 无法及时处理它。另外,我不想启动另一轮logrotate,因为我不希望它影响其配置中的所有其他目标。我已在我的文件中添加了新的节,logrotate.conf如下所示:
/log/myDevice/myDevice.log {
compress
daily
rotate 360
maxage 360
missingok
compresscmd /usr/bin/xz
dateext
compressext .xz
copytruncate
olddir /log/archive/myDevice
}
Run Code Online (Sandbox Code Playgroud)
我想手动做这些事情:
split:将当前日志卷分解成更小的块 xz:压缩到存档文件夹 我可以split(1)而且xz(1)很好,但是当我尝试抓取目标文件时,没有骰子。
我尝试过sudo mv myDevice.log ZmyDevice.log && touch myDevice.log,但 syslog-ng 只是随原始文件(及其新名称)移动并保持愉快的写入。当我思考 syslog-ng 如何引用该文件时,这引起了一些思考。
因此,我试图弄清楚如何编写某种手册,copytruncate以便将文件“就地”剪切到另一个文件,并让 syslog-ng 继续处理它想要的内容。
我正在尝试设置 nginx 1.7.3 以将日志发送到 syslog,但是当我进行此配置时:
server {
access_log syslog:server=localhost;
}
Run Code Online (Sandbox Code Playgroud)
这显示在 nginx 的错误日志中:
2015/01/15 21:42:47 [error] 16776#0: send() failed (111: Connection refused)
2015/01/15 21:42:48 [error] 16776#0: send() failed (111: Connection refused)
2015/01/15 21:42:50 [error] 16776#0: send() failed (111: Connection refused)
Run Code Online (Sandbox Code Playgroud)
我已经关注了http://nginx.org/en/docs/syslog.html并尝试了那里指定的不同参数,但没有运气......
服务器运行 rsyslogd 守护进程,其他应用程序(cron、mysql)在那里没有任何问题地记录日志。
/etc/rsyslogd.conf
# /etc/rsyslog.conf Configuration file for rsyslog.
#
# For more information see
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
#################
#### MODULES ####
#################
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog # provides kernel …Run Code Online (Sandbox Code Playgroud) 我使用 rsyslog 进行程序日志记录和系统日志记录,因此我有统一的日志文件。我有一些消息丢失,我不确定为什么,但我认为这可能是配置选项设置不正确或保留为我需要更改的默认值。我知道我可以设置 rsyslog.conf 中选项的值,但如何查看 rsyslog 当前正在使用的内容?
我在网上搜索了这个问题的答案一段时间,不敢相信这是不可能的,一定有人需要这个并找到了它。
谢谢你的帮助!
我寻找一种可靠导出 journalctl 日志的方法。
我可以使用该--since=...选项,但这有点模糊。
在我的情况下,脚本会journalctl --output=json每十分钟调用一次。
我不想错过任何一行,并且(如果可能)我想避免重复行。
问这个问题几天后,我遇到了 RELP:https : //en.wikipedia.org/wiki/Reliable_Event_Logging_Protocol
我正在尝试向我的 rsyslog 模板添加一个环境变量。
我尝试使用 'getenv()' 函数但没有任何运气,我总是得到一个空字符串作为回报。
我正在附上我的 rsyslog 配置文件的示例,我使用“HOME”环境变量作为示例。
set $.my_home=getenv("HOME");
template(name="json-template"
type="list") {
constant(value="{")
constant(value="\",\"my_home\":\"") property(name="$.my_home")
constant(value="\",\"message\":\"") property(name="msg" format="json")
constant(value="\"}\n")
}
*.* action(type="omfile" dirCreateMode="0700" FileCreateMode="0644"
template="json-template" File="/var/log/my_log")
Run Code Online (Sandbox Code Playgroud)
{"my_home":"","message":"my log message"}
Run Code Online (Sandbox Code Playgroud)
rsyslogd:版本 8.4.2
我很难理解日志是如何在 linux 上工作的。
自从加入了systemd,看起来容易了一些,但是我还有几个概念还是不能完全理解。
给定一个带有 journalctl 的系统,我想向远程主机发送一些日志消息。为此,我安装了 rsyslog 并配置了 freeradius,以便将其日志输出到 local3,然后将 rsyslog 配置为将 local3 下的这些消息转发到远程 syslog 服务器。现在,系统日志是否在 rsyslog 和 journalctl 之间共享?这会导致任何形式的冲突吗?
除此之外:谁控制写入/var/log/messages 的内容?某个应用程序如何将其日志输出到此文件?它是由 rsyslog 管理的吗?通过系统?
如果有人能帮我理解整个 linux 日志服务,那就太好了。
我正在运行 Debian 系统,发现dmesg命令的输出非常有帮助。
有人可以向我解释 dmesg 命令输出什么信息吗?它是否与系统日志中的 kern.* 消息 1:1 相关?