标签: syslog

如何在 rsyslog 中处理来自自定义应用程序的消息?

我的服务器上有一个 Ruby 应用程序,我们称之为“alpha”。该应用程序发出程序名称为“alpha”的系统日志消息。我想根据消息类型将日志消息分成单独的文件,例如“身份验证”消息(登录)或系统资源警告。

除了我的程序名称之外,我没有任何方法可以向 syslog 指定“消息类型”,因此我只是在消息开头添加“AUTH:”、“SYSTEM:”等。

使用 Google 和手册页,我提出了以下条件:

:programname,isequal,"alpha"           /var/log/alpha.log
Run Code Online (Sandbox Code Playgroud)

这会将来自“alpha”应用程序的所有消息记录到正确的日志文件中。

:msg,startswith," AUTH:"                /var/log/alpha-auth.log
Run Code Online (Sandbox Code Playgroud)

这会将所有以“AUTH:”开头的消息记录到正确的日志文件中。

显然,最后一个条件不仅适用于“alpha”,还适用于所有消息。我想将这些条件合并为“来自 alpha 的所有以 AUTH: ... 开头的消息”。是否可以像这样将过滤器与“and”组合起来?

“BSD 样式块”看起来很完美,因为我可以为我的应用程序定义一个块,并且所有条件仅适用于来自该应用程序的消息。不幸的是,根据文档,该功能不再受支持(已弃用?),并且我不想依赖已弃用的功能。rsyslog v7+ 是否引入了此类块的替代方案?

使用基于表达式的过滤器,我已经成功地得到了我想要的结果,但我感觉我正在使用火箭筒杀死一只苍蝇:

if $programname == "alpha" and $msg startswith " AUTH:" then \
    /var/log/alpha-auth.log
Run Code Online (Sandbox Code Playgroud)

执行此操作的“正确”(即最简单且最不容易出错)方法是什么?


我使用的是 Debian Jessie,目前意味着 rsyslog 8.4.2

linux syslog rsyslog

3
推荐指数
1
解决办法
2710
查看次数

rsyslog没有设置group和everyone的读写权限

Rsyslog 忽略使用 fileCreateMode 为组和所有人设置的读写权限。

我已经设置了一个服务来运行我的节点应用程序,如下所示:

...
[Service]
WorkingDirectory=/opt/demo/app
User=appuser
Type=simple
ExecStart=/usr/bin/node myapp.js demo
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=myapp
...
Run Code Online (Sandbox Code Playgroud)

然后我在 /etc/rsyslog.d/ 中设置一个 myapp.conf 文件,如下所示

if ($programname == 'myapp') then {
    action(
        type="omfile"
        File="/opt/demo/app/app.log"
        fileCreateMode="0640"
        fileOwner="appuser"
        fileGroup="mygroup"
    )
    stop
}
Run Code Online (Sandbox Code Playgroud)

使用正确的用户和组创建日志文件,但权限为 0600 而不是 0640。

如果我将 fileCreateMode 更改为 0777,则文件将使用 0711 创建。

我使用默认的rsyslog.conf,rsyslog版本是8.24.0-41,操作系统是CentOS 7.7

rsyslogd -N 1不会抛出任何错误

syslog rsyslog centos7

3
推荐指数
1
解决办法
7103
查看次数

FreeBSD 上的集中 syslog-ng 日志记录

我已经成功地从 syslogd 切换到 syslog-ng 以进行日志记录。但是,我想让 syslog-ng 框从网络上运行 syslog 的所有框接收所有日志。我该怎么做?

freebsd logging syslog

2
推荐指数
1
解决办法
2097
查看次数

什么是 SysLog,产品或标准?

我有一个客户正在使用在 Linux 下运行的 syslog。我们的组织中没有任何 Linux 基础设施或技能,所以我找到了一个名为 WinSysLog 的 Windows 产品。

我想知道,Syslog 是一个标准,所以所有基于 syslog 的产品都运行在相同的规则上,还是每个 Syslog 应用程序都不同?

syslog

2
推荐指数
1
解决办法
1132
查看次数

大量的 DNS 查询

我在 /var/log/syslog 中有很多这样的条目,每 20 秒 1 个。我看到这被拒绝了,但我认为有人正在 ping 我的服务器以进行 DNS 检查或其他任何内容,这并不是一件好事。

Feb  2 14:54:14 KAW001 named[2398]: client 62.213.199.236#38429: query (cache) 'schuetzen-loxstedt.de/A/IN' denied
Feb  2 14:54:34 KAW001 named[2398]: client 62.213.199.236#38429: query (cache) 'o-fx.de/A/IN' denied
Feb  2 14:54:54 KAW001 named[2398]: client 62.213.199.236#38429: query (cache) 'qsc-plus.de/A/IN' denied
Run Code Online (Sandbox Code Playgroud)

有什么建议?

domain-name-system debian logging syslog

2
推荐指数
1
解决办法
1141
查看次数

iptables ping 日志条目的额外部分是什么意思?

我在 INPUT 链上丢弃了所有 ICMP 类型 8 数据包,所以现在我看到日志条目,因为 Fabric 脚本尝试联系另一台服务器,如下所示:

kernel: INPUT DROP IN=eth0 OUT= SRC=<ip1> DST=<ip2> LEN=88 TOS=0x00 PREC=0xC0 TTL=50 ID=60964 PROTO=ICMP TYPE=3 CODE=3 [SRC=<ip2> DST=<ip1> LEN=60 TOS=0x00 PREC=0x00 TTL=49 ID=45897 DF PROTO=TCP SPT=34120 DPT=22022 WINDOW=14600 RES=0x00 SYN URGP=0 ]

但是,它们与我习惯的 tcp/udp 日志条目不同,特别是方括号中的部分。它的不同部分有什么关系?

iptables syslog icmp

2
推荐指数
1
解决办法
967
查看次数

Netcat、系统日志、UDP 和 &lt;134&gt;

在 UDP 514 上使用 netcat 侦听 syslog 数据,我看到每个发送的日志消息都由<134>.

有没有人注意到<134> 是什么?

syslog udp netcat

2
推荐指数
1
解决办法
3184
查看次数

Apache httpd:将错误日志发送到系统日志和本地磁盘?不接触/etc/syslog.conf?

我有一个 Apache httpd 2.2 服务器。我想使用 syslog 记录所有消息,以便将请求发送到我们的中央 syslog 服务器。我还想确保所有日志消息都发送到本地磁盘,以便系统管理员可以轻松访问本地系统上的日志文件。

很容易将 HTTP 访问日志发送到本地磁盘和系统日志。一种常用的方法是:

LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog logs/access_log combined
CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined
Run Code Online (Sandbox Code Playgroud)

但是对于错误日志要做到这一点并不容易。以下配置不起作用,因为错误日志仅使用最后一个 ErrorLog 节。第一个 ErrorLog 节被忽略。

ErrorLog logs/error_log
ErrorLog syslog:local4.error
Run Code Online (Sandbox Code Playgroud)

如何确保将 Apache 错误日志写入本地磁盘并发送到 syslog?

是否可以在不接触的情况下做到这一点/etc/syslog.conf?如果我的用户想要管理他们自己的 Apache 配置文件,我很好,但我不希望他们接触系统文件,例如/etc/syslog.conf

security logging web-server syslog apache-2.2

2
推荐指数
1
解决办法
1万
查看次数

将 Windows 事件日志转发到 Rsyslog

我想将 Windows 事件日志从我所有的桌面客户端转发到一个启用了 rsyslog 的 Linux 机器。

Rsyslog 提供了一个 Windows 代理来做到这一点,但每个许可证需要 40 欧元,而且当您拥有 x 台机器时,成本加起来。

我想知道是否有可用的 FOSS 替代方案我试过搜索谷歌但没有找到任何东西。

希望有人可能已经遇到过同样的问题,并且正在使用他们可以推荐的替代方案。

linux windows syslog windows-event-log rsyslog

2
推荐指数
1
解决办法
8408
查看次数

Debian 12 中的一些操作系统日志在哪里

似乎某些系统日志文件(/var/log/syslog、、、...)在最新版本的 Debian(Debian Bookworm)/var/log/auth.log中已被删除。应该做什么来访问这些日志?它们的存储和查看方式是否发生了变化?/var/log/kern.log

debian log-files syslog rsyslog debian-bookworm

2
推荐指数
2
解决办法
6553
查看次数