Articles of rsyslog现在

Rsysloglogging到滚动的日志而不是展开的日志

如果我含糊不清,请原谅我,但我想尽可能保持这种安全。 我有一个CentOS服务器设置作为中央远程日志logging服务器。 现在服务器已经把日志发送到这台服务器几个月了,没有问题。 这些日志文件是每月滚动的,并一直在正常工作。 然而,这个月(没有任何configuration变化,我知道)rsyslog决定将新的日志文件发送到滚动的日志文件( access_log-20150901 ),而不是展开的文件( access_log )。 奇怪的是,我甚至将滚动的日志( access_log-20150901 )移动到一个归档目录中,而rsyslog仍在向该文件发送更新。 我正在使用自定义filter,如下所示: if $programname contains 'access_log' then /var/log/remotelog/access_log 但是它正在更新文件: /var/log/remotelog/archive/access_log-20150901 任何人都知道这里发生了什么? 仅供参考。 所有这些文件和文件夹的权限都是相同的。 编辑:固定logrotate,用postrotate方法来重新启动rsyslog后,日志已经旋转 /var/log/remotelog/access_log { missingok notifempty monthly create 0660 <user> <group> rotate 12 postrotate /sbin/service rsyslog reload > /dev/null 2>/dev/null || true endscript } rsyslog版本:rsyslogd 8.9.0.ad1

rsyslog将json转换为文本

我有JSON格式的应用程序日志logging事件,以便后来的结构化查询等现在我有一个任务logging在纯文本(CSV可能)相同的消息,我真的不想logging每个事件两次格式。 有可能在rsyslog内转换吗? 我有一个跟踪输出文件和pipe道到转换器,然后用不同的标签日志的选项,但这似乎是不理想的。 任何其他的想法? 谢谢 !

我如何看本地#以确保消息正在发送给它?

我正试图从我的sftp服务器收集额外的操作日志logging。 我已经将以下几行添加到/ etc / ssh / sshd_config中,正如互联网上的许多post所指示的那样: Subsystem sftp internal-sftp -l VERBOSE -f LOCAL6 Match Group sftponly ChrootDirectory /data/%u ForceCommand internal-sftp -l VERBOSE -f LOCAL6 X11Forwarding no AllowTcpForwarding no 然后,我使用以下几行创build了/etc/rsyslog.d/60-sftp.conf以收集日志信息: # Parse the data logged at level INFO and facility LOCAL6 into /var/log/sftp local6.* /var/log/sftp # Report logins and logoffs :syslogtag,startswith,"internal-sftp" /var/log/sftp # Log internal-sftp […]

将日志从/var/log/kern.logredirect到iptables日志的单独日志文件

我正在尝试将iptables日志redirect到另一个文件。 根据我在网上阅读,我做了以下几点: 在我的iptables规则中,我有这样的规则: iptables -A INPUT -s … -j LOG – 日志前缀“iptables @@”然后在文件夹/etc/rsyslog.d中,我创build了一个包含以下项的文件: :味精,包含,“iptables @@”/var/log/iptables.log&我也试图在上述两行之间有一个空行。 我得到的iptables日志条目现在去iptables.log文件。 但他们也去/var/log/kern.log文件。 我想压制以后。 我该怎么做呢。 我正在运行Ubuntu 14.04 LTS。

系统日志filter通过标签或文本包含自己的文件

我需要从我的Python应用程序login到syslog。 在系统日志我想过滤消息从我的应用程序自己的文件。 我正在使用Debian 8.3。 我的rsyslog规则: # cat /etc/rsyslog.d/99-MyLog.conf :syslogtag, isequal, "MyLog" /var/log/mylog.log :msg, contains, "MyLog" /var/log/mylog.log 和我的python脚本/tmp/test.py : import logging.handlers my_logger = logging.getLogger('MyLog') my_logger.setLevel(logging.INFO) handler = logging.handlers.SysLogHandler(address = '/dev/log') formatter = logging.Formatter('MyLog: %(message)s') handler.setFormatter(formatter) my_logger.addHandler(handler) my_logger.info("Test Log 123") 如果发送消息到系统日志: # logger -t MyLog "Test from bash logger" # logger "MyLog Test from bash logger" # […]

rsyslog:只logging一些消息到特定的文件

我的防火墙日志被写入到我的自定义iptables.log文件中,但也被写入到kern.log , messages和syslog 。 我不希望这些消息在所有这些日志中重复。 我的configuration有什么问题? $ cat /etc/rsyslog.d/iptables.conf # This works, and the messages do get to iptables.log. :msg, regex, "^\[ *[0-9]*\.[0-9]*\] IPT" -/var/log/iptables.log & ~ 在/etc/rsyslog.conf ,在标准日志文件的行之前调用$IncludeConfig /etc/rsyslog.d/*.conf : $ cat /etc/rsyslog.conf $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat $FileOwner root $FileGroup […]

如何使用rsyslog启用远程监听?

我正在configurationDebian Squeeze服务器来接收来自某些设备的syslog,但是rsyslog拒绝监听UDP 514。 我能从中得到最接近的是使用-c2 -r -t514来听TCP 514。 我还没有find任何组合的参数,它听取UDP。 Squeeze的rsyslog版本是4.6.4-2。

与反斜杠字符和rsyslog写入Postgres的麻烦

我有rsyslog 4.6.4configuration写邮件日志到PostgreSQL数据库。 它一切正常,直到日志消息包含一个反斜杠,如下例所示: Jun 12 11:37:46 dc5 postfix / smtp [26475]:Vk0nYDKdH3sI:to = <—–@—-.—>,relay = —-.— [—延迟= 1.5,延迟= 0.77 / 0.07 / 0.3 / 0.35,dsn = 4.3.0,status = deferred(host —-.— [ —。—。— .—]说:451 4.3.0写入文件d:\ pmta \ spool \ B \ 00000414时出错,“DATA”中的status = ERROR_DISK_FULL(回复DATA命令)) 以上是写入/var/log/mail.log的日志条目。 它是正确的。 问题在于,发送到以下SQL配方时,文件名中的反斜杠字符将被解释为转义字符: $template dcdb, "SELECT rsyslog_insert(('%timereported:::date-rfc3339%'::TIMESTAMPTZ)::TIMESTAMP,'%msg:::escape-cc%'::TEXT,'%syslogtag%'::VARCHAR)",STDSQL :syslogtag, startswith, "postfix" :ompgsql:/var/run/postgresql,dc,root,;dcdb 因此, rsyslog_insert()存储过程对于msg获取以下值: […]

rsyslog:“ – ”前置于操作path/ ftp。*不logging

遵循configuration规则: auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log daemon.* -/var/log/daemon.log ftp.* /var/log/vsftpd.log 前两行的意思是,除auth和authpriv之外,将所有内容都logging到系统日志中,并将它们logging到auth.log。 Cron日志被注释,守护进程禁用。*在syslog和daemon.log中。 ftp。*logging到系统日志,但不是vsftpd.log,为什么? 什么是“ – ”path的前提? 我读了manpages,但是找不到信息。

我应该如何旋转存储在mysql中的rsyslog文件

我已经设置rsyslog将syslog数据转储到mysql中,以便LogAnalyzer可以轻松访问并与之交互。 我如何自动执行一个作业来删除mysql数据库的特定年龄的系统日志数据,所以它不会填满我的高清?