我对 syslog、rsyslog 和 syslog-ng 有点困惑。
我可以从哪里获得 的源代码syslog()?
rsyslog 和 rsyslogd 之间有什么区别吗?
我如何在 ubuntu 10 上重新启动 rsyslog 或 rsyslogd
root@terminator:/etc/init.d# service rsyslog status
rsyslog stop/waiting
root@terminator:/etc/init.d# service rsyslog stop
stop: Unknown instance:
root@terminator:/etc/init.d# service rsyslog restart
restart: Unknown instance:
root@terminator:/etc/init.d# service rsyslog start
start: Job failed to start
root@terminator:/etc/init.d# service rsyslogd start
rsyslogd: unrecognized service
Run Code Online (Sandbox Code Playgroud) 我使用本文中的提示通过 rsyslogd 设置了 haproxy 日志记录,并且一切似乎都运行良好。日志文件获取日志消息。
但是,来自 haproxy 的每条日志消息也会显示在/var/log/syslog. 这意味着一旦服务器上线,系统日志将毫无用处,因为它会被 haproxy 日志消息覆盖。
我想从/var/log/syslog. 在查看 rsyslogd 文档后,我尝试更改文件/etc/rsyslog.d/50-default.conf:
*.*;auth,authpriv.none;haproxy.none -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)
我只是添加了;haproxy.none部分。重新启动 rsyslogd 后,它完全停止工作,直到我恢复更改。
我究竟做错了什么?
我如何从一个特定的日志文件转发消息就像/www/myapp/log/test.log与rsyslog客户端的远程rsyslog服务器?此日志文件位于目录之外/var/log。
我正在尝试在 Ubuntu 10.04 LTS 上使用股票 rsyslogd (4.2.0-2ubuntu8.1) 实现一个简单的集中式系统日志服务器。在这一点上,我的所有客户端节点都将日志发送到中央服务器,但是客户端发送的日志消息包含它们的短主机名而不是它们的 FQDN。
根据 Ubuntu rsyslogd 联机帮助页:
如果远程主机与主机位于同一域中,rsyslogd 正在运行,则只会记录简单的主机名而不是整个 fqdn。
这对我来说是有问题的,因为我在环境之间重复使用短名称,例如 core1.example.com 和 core1.stg.example.com 都将它们的消息记录为 core1。
客户端和服务器都有相同的 /etc/default/rsyslog:
RSYSLOGD_OPTIONS="-c4"
Run Code Online (Sandbox Code Playgroud)
和相同的 /etc/rsyslogd.conf 文件:
$ModLoad imuxsock
$ModLoad imklog
$PreserveFQDN on
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$IncludeConfig /etc/rsyslog.d/*.conf
Run Code Online (Sandbox Code Playgroud)
客户端有这个 /etc/rsyslog.d/remote.conf 文件,告诉他们发送到远程服务器:
*.* @@syslog.example.com
Run Code Online (Sandbox Code Playgroud)
并且服务器使用这个 /etc/rsyslog.d/server.conf 文件:
$ModLoad imtcp
$InputTCPServerRun 514
$DirGroup root
$DirCreateMode 0755
$FileGroup root
$template PerHostAuth,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/auth.log"
$template PerHostCron,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/cron.log"
$template PerHostSyslog,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/syslog"
$template PerHostDaemon,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/daemon.log"
$template PerHostKern,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/kern.log"
$template PerHostLpr,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/lpr.log"
$template PerHostUser,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/user.log"
$template PerHostMail,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.log"
$template PerHostMailInfo,"/srv/rsyslog/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME%/mail.info" …Run Code Online (Sandbox Code Playgroud) 我正在使用默认的 rsyslog 和 logrotate 实用程序在 Ubuntu 14 上工作。
在默认的 rsyslog logrotate/etc/logrotate.d/rsyslog配置中,我看到以下内容:
/var/log/syslog
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
Run Code Online (Sandbox Code Playgroud)
据我了解,建议在所有 logrotate 场景中使用 copytruncate,因为它不会移动当前日志,而是截断日志,因此任何具有打开文件处理程序的进程都能够继续写入它。
那么默认配置如何使用 rsyslog 重新加载功能呢?
我想停止 rsyslog 记录这些消息。
[168707.740364] TCP: Peer 192.168.100.1:46199/41503 unexpectedly shrunk window 2027330493:2027331431 (repaired)
我在 /etc/rsyslog.conf 中尝试了这个,但仍然记录了消息。
if $msg contains 'unexpectedly' then /dev/null
任何人都可以指出我正确的方向吗?
我ppa:vbernat/haproxy-1.5根据http://haproxy.debian.net/在 ubuntu 14.04 上通过 apt-get 安装了 haproxy 1.5
问题是它登录/var/log/syslog而不是/var/log/haproxy.log
设置基本上是默认设置:
/etc/haproxy/haproxy.cfg
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL).
ssl-default-bind-ciphers kEECDH+aRSA+AES:kRSA+AES:+AES256:RC4-SHA:!kEDH:!LOW:!EXP:!MD5:!aNULL:!eNULL
ssl-default-bind-options no-sslv3
defaults
log global
mode http
option httplog
option dontlognull …Run Code Online (Sandbox Code Playgroud) 我遇到了这个 Debian Linux 安装 (6.0.6),并检查了它的 /etc/rsyslog.conf,我看到这样的配置行:
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于在 rsyslog.conf(5) 中为文件操作添加破折号的任何信息,以及它的含义可能是什么,并且想知道它们实际上是做什么的。
因此,我配置了 Haproxy,因此日志记录将通过 rsyslog,并且现在全部转储到一个文件中。
它肯定会记录日志,因为我在启动时收到那些“开始”消息,但根本没有记录 HTTP 请求。我的配置有什么问题?
haproxy.cfg :
global
log /dev/log local0 debug
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend webfront
option forwardfor
stats enable
stats uri /haproxy?statis
stats …Run Code Online (Sandbox Code Playgroud)