标签: syslog-ng

了解 Linux 中的日志记录

据我了解,Linux 内核会记录到/proc/kmsg文件(主要是与硬件相关的消息)和/dev/log套接字吗?还有其他地方吗?其他应用程序是否也能够向/proc/kmsg或发送消息/dev/log?最后但并非最不重要的,我是正确的,这是系统日志守护程序(rsyslog现在syslog-ng的),该检查的消息来自这两个地方,然后分发到那些像各种文件/var/log/messages或者/var/log/kern.log甚至是中央系统日志服务器?

syslog-ng rsyslog syslog linux-kernel

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

copytruncate 如何实际工作?

我们想copytruncate在使用logrotate以下配置旋转文件之前 了解:

/app/syslog-ng/custom/output/all_devices.log { 
size 200M 
copytruncate
dateext 
dateformat -%Y%m%d-%s 
rotate 365 
sharedscripts 
compress
postrotate 
    /app/syslog-ng/sbin/syslog-ng-ctl reload 
endscript 
}
Run Code Online (Sandbox Code Playgroud)

RHEL 7.x,8GB 内存,4 VCpu

题:

logrotate当 syslog-NG 已经打开文件进行日志记录时,如何截断文件?不是资源的争用吗?当文件没有任何记录时,syslog-NG 是否会立即关闭文件?

linux logrotate large-files syslog-ng file-descriptors

7
推荐指数
1
解决办法
4164
查看次数

syslog-ng 服务不是以 systemd 开头,但命令工作正常

我在 CentOS 7 上有一个新安装的版本,我已经从 EPEL 存储库安装了 syslog-ng。

~: yum list | grep syslog
syslog-ng.x86_64                        3.5.6-1.el7                    @epel
Run Code Online (Sandbox Code Playgroud)

当我尝试通过 systemctl 启动它时,它失败如下:

/usr/lib/systemd/system: systemctl start syslog-ng
Job for syslog-ng.service failed. See 'systemctl status syslog-ng.service' and 'journalctl -xn' for details.
Run Code Online (Sandbox Code Playgroud)

查看日志时,我们可以看到它们依赖于“开始”正常的套接字,但该过程返回有关参数不正确的错误,如下所示:

May 07 17:26:15 superserver.company.corp systemd[1]: Starting Syslog Socket.
May 07 17:26:15 superserver.company.corp systemd[1]: Listening on Syslog Socket.
May 07 17:26:15 superserver.company.corp systemd[1]: Starting System Logger Daemon...
May 07 17:26:15 superserver.company.corp systemd[1]: syslog-ng.service: main process exited, code=exited, status=2/INVALIDARGUMENT
May 07 17:26:15 superserver.company.corp systemd[1]: Failed …
Run Code Online (Sandbox Code Playgroud)

startup syslog-ng systemd

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

如何排除 syslog-ng 中的给定行?

我需要排除消息文件中的给定行:

Oct 25 04:09:23 SERVERNAME PFILTER-DROP: IN=ifeth4 OUT= MAC=ff:ff:ff:ff:ff:ff:AA:AA:AA:AA:AA:AA:AA:AA SRC=192.168.202.4 DST=192.168.202.255 LEN=238 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=32776 DPT=705 LEN=218 
Oct 25 04:09:23 SERVERNAME PFILTER-DROP: IN=ifeth4 OUT= MAC=ff:ff:ff:ff:ff:ff:AA:AA:AA:AA:AA:AA:AA:AA SRC=192.168.202.6 DST=192.168.202.255 LEN=183 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=32770 DPT=700 LEN=163 
Oct 25 04:09:23 SERVERNAME PFILTER-DROP: IN=ifeth4 OUT= MAC=ff:ff:ff:ff:ff:ff:AA:AA:AA:AA:AA:AA:AA:AA SRC=192.168.202.8 DST=192.168.202.255 LEN=176 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=32768 DPT=714 LEN=156 
Oct 25 04:09:23 SERVERNAME PFILTER-DROP: IN=ifeth4 OUT= MAC=ff:ff:ff:ff:ff:ff:AA:AA:AA:AA:AA:AA:AA:AA SRC=192.168.202.10 DST=192.168.202.255 LEN=175 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=33628 DPT=715 …
Run Code Online (Sandbox Code Playgroud)

syslog-ng

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

记录在任何 shell 中键入的每个命令:输出(从记录器函数到 syslog-ng/journald)包含命令的重复条目?

我安装syslog-ng在我的桌面上使用(Gentoo 64 位,升级到 systemd,即之前是 OpenRC ,只有 Openbox 和 Slim)与我的普通用户一起记录我在 shell 中输入的所有命令(首先是 bash,然后是 zsh)。我探索了不同的解决方案,以及不同的设置方法,无论是旧的还是新的,这通常是使用.bash_history文件来实现的。我试图从几年前开始实施这个解决方案,依赖于配套陷阱。首先,我修改.bashrc并设置了一些历史变量,因为该解决方案依赖于格式化历史数据,然后确保将其保存到其文件中,然后推送它通过logger在 shell 环境中调用的函数发送到日志消息传递系统。所以首先是变量:

export HISTCONTROL=
export HISTFILE=$HOME/.bash_history
export HISTFILESIZE=2000
export HISTIGNORE=
export HISTSIZE=1000
export HISTTIMEFORMAT="%a %b %Y %T %z "

typeset -r HISTCONTROL
typeset -r HISTFILE
typeset -r HISTFILESIZE
typeset -r HISTIGNORE
typeset -r HISTSIZE
typeset -r HISTTIMEFORMAT

shopt -s cmdhist
shopt -s histappend …
Run Code Online (Sandbox Code Playgroud)

syslog-ng systemd audit systemd-journald

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

在 syslog-ng 中分离多个 sshd 的消息

除了设置不同的设施外,是否有通用的方法来区分syslog-ng中多个进程的消息?+1 如果可以过滤并因此可以登录不同的文件。

我有一个系统设置,其中有两个正在运行的 sshd 实例。一种是在 chrooted 环境中运行。由于使用了 syslog,所有消息最终都在同一个日志文件中。

一种可能性是将被监禁的 sshd 的设施更改为 local0 之类的东西,但我想知道是否有一些“更干净”的方法可以做到这一点。

安装其他 syslog 守护进程,例如 rsyslog 在这里不是一个选项。这个问题与以下方面有某种关系:

chroot jails syslog-ng syslog sshd

5
推荐指数
1
解决办法
245
查看次数

Syslog 服务无法启动

我已经在 RasperryPi Debian Jessie 上安装了 syslog-ng 3.5。当我尝试启动服务时,它失败了

-- Unit syslog.socket has begun starting up.
Feb 10 12:29:28 blackbox systemd[1]: Socket service syslog.service not loaded, r
Feb 10 12:29:28 blackbox systemd[1]: Failed to listen on Syslog Socket.
-- Subject: Unit syslog.socket has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit syslog.socket has failed.
--
-- The result is failed.
Feb 10 12:29:28 blackbox systemd[1]: Starting System Logger Daemon...
-- Subject: Unit syslog-ng.service has begun with start-up
-- Defined-By: systemd …
Run Code Online (Sandbox Code Playgroud)

debian syslog-ng

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

syslog-ng 不会写入日志文件 - “没有这样的文件或目录”

我已经使用下面包含的 conf 文件设置了一个新的 syslog-ng 实例。当我查看 val/log/messages 时,我可以看到消息正试图路由到正确的位置 (var/log/bash)。但我不明白为什么它拒绝查看/写入指定的日志文件。该文件最初并不存在,但我尝试从头开始创建一个文件,并尝试复制另一个工作日志文件并重命名它。还尝试将日志文件的文件权限打开为 777 无济于事。(其他日志文件设置为600)

我怎样才能让它写入指定的日志文件?

以下是来自的相关行/var/log/messages

Feb  6 17:44:35 centos32v2 syslog-ng[31027]: Log statistics; processed='src.internal(s_sys#2)=16', stamp='src.internal(s_sys#2)=1391726082', processed='destination(d_mesg)=16', processed='destination(d_bash)=12', (and so on)

Feb  6 17:50:50 centos32v2 syslog-ng[31027]: Error opening file for writing; filename='“/var/log/bash”', error='No such file or directory (2)'
Run Code Online (Sandbox Code Playgroud)

syslog-ng.conf文件是一个全新的 vanilla 安装,添加了以下几行:

destination d_bash { file(“/var/log/bash”); };
filter f_bash { facility(local1) and level(debug); };
log { source(s_sys); filter(f_bash); destination(d_bash); };
Run Code Online (Sandbox Code Playgroud)

这些行中的每一行看起来都与其他现有条目的格式完全相同。

bash syslog-ng centos syslog

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

syslog-ng 的行中不包含严重性

我正在尝试在嵌入式发行版中配置 syslog-ng。

我添加了 syslog-ng 包。

我期望 /var/log/ 文件包含其日志严重性/日志级别,但事实并非如此。

有什么方法可以配置 syslog-ng 以将严重性添加到每行吗?

谢谢你和问候

logs embedded syslog-ng

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