我们有几个(通常是java)应用程序,他们login到集中rsyslog服务器(版本7.6)。 由于rsyslog正在将每一行堆栈跟踪作为单独的消息来处理,所以我们遇到了Javaexception的问题,所以我们的开发人员开始使用#012作为换行符,将#011作为标签。 所以现在,当我有exception的消息,它看起来像: 2015-02-09T12:52:43.769Z hostname warning app Exception when invoking method something.search: reason=Error while executing method something.search, Params=#012{"maxResults":10,"query":"somesearch"}#012com.company.server.json.ApiException: Error while executing method something.search#012#011at com.company.app.api.BaseExecutor.executeWithDatabase(BaseExecutor.java:112) ~[app-server.jar:?]#012#011at com.company.app.api.BaseExecutor.execute(BaseExecutor.java:87) ~[app-server.jar:?]#012#011at com….and so on 我喜欢的第一件事是自动replace这些#xxxstring的原始值,这样生成的日志文件是可读的。 第二件事,我们正在使用graylog2,在这里我们暂时存储日志,这样可以很容易地search。 Rsyslog被设置为将日志保存到某个位置,并将日志重新发送到graylog,我当然希望有空格和制表符而不是控制字符。 我正在做一些研究,试图取代这些控制字符,因为他们应该(我认为)与rsyslog兼容: http://www.rsyslog.com/doc/property_replacer.html http://www.rsyslog.com/doc/rsconf1_escapecontrolcharactersonreceive.html 但到目前为止没有运气。 预先感谢您的时间和帮助! PS第一个问题可以用于cron和sed,但它不会解决第二个问题。
我已经尝试了两天,让RSysLog提醒某些设备/优先级的所有[或特定]用户进入RSysLog。 rsyslog.d / 50-default.conf: … *.emerg :omusrmsg:* … 命令 # logger -p emerg "Test Broadcast" 不会消息任何login用户,但确实在/ var / log / syslog中创build条目我试过这个股票Digital Ocean 14LTS Droplet,然后我安装了syslog-ng,它在那里工作得很好。 如果一切都失败了,我将不得不切换到syslog-ng。 我试着debugging它,但没有发现任何确凿的结果,只是应该调用它的内部omusrmsg插件。 6570.499968822:imuxsock.c : ——–imuxsock calling select, active file descriptors (max 4): 0 4 6570.500000498:main Q:Reg/w0 : wti 0x1e55a80: worker awoke from idle processing 6570.500011205:main Q:Reg/w0 : DeleteProcessedBatch: we deleted 0 […]
许多正则expression式系统有能力设置一个全局修改器来允许多个匹配。 以下是它在Javascript和Perl中的工作原理 。 /g Python 有点不同 Python没有像Perl的/ g选项这样的全局修饰符。 要查找模式的所有匹配,请使用re.findall()而不是re.search()。 findall方法返回匹配列表而不是匹配对象。 如果匹配包含捕获的子expression式,findall将返回一个元组列表,这些元组就是捕获。 而这个名单还在继续 … 不过,我似乎无法find在文档中的任何地方如何设置rsyslog这样的修饰符。 一个在线testing实用程序是可用的,但它提到了以下内容: Rsyslog使用POSIX ERE(和可选的BRE)expression式。 这个检查器与php POSIX ERE函数一起工作。 所以从理论上讲,rsyslog(clib)包含的引擎和这个web应用程序之间可能有区别。 但实际上结果应该是相当一致的。 由于该工具使用php POSIX ERE函数 – 而且/g 修饰符在php中不起作用,所以我相信在rsyslog中需要与php函数preg_match_all相媲美。 有小费吗?
我在一个VPS(Ubuntu 14.04.2 LTS,内核3.13.0-042stab094.8,rsyslog 7.4.4-1ubuntu2.5)和kernel.log保持空只有这一行: rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted. 服务器预先configuration了busybox中的syslogd和klogd。 我卸载了它们,并用apt-get安装了rsyslog。 一切似乎工作正常。 我有所有其他日志文件中的条目。 我不确定是否与这个bug相关: https ://bugs.launchpad.net/ubuntu/+source/rsyslog/+bug/1366829
我正在尝试使用结构化数据logging消息。 但是它显示结构化数据的空值。 我正在与rsyslog 8.9.0.Can有人告诉我要么加载一些模块或修改源获取结构数据SD-ID在logging的消息。 #Template: "<%PRI%>%TIMESTAMP:::daterfc3339%%HOSTNAME%%syslogtag%%APPNAME%%PROCID% %MSGID% %msg% %STRUCTURED-DATA%\n” 获取消息格式如下: <142> 2015-01-29T06:43:53.081641-05:00 localhost login[2116]: login 2116 – [2116 : 2116 INFO]SERIAL Login from IP:127.0.0.1 user:admin – configuration文件–rsyslog.conf: $ModLoad imuxsock # provides support for local system logging $ModLoad imklog # provides kernel logging support (previously done by rklogd) $ModLoad mmpstrucdata $ModLoad mmrfc5424addhmac GLOBAL DIRECTIVES $ActionFileDefaultTemplate RSYSLOG_DebugFormat […]
问候 !!! 这是关于我们试图实现的有关rsync的具体要求。 我们试图通过使用各种rsync选项来实现这一点。 但是,我们遇到不同的rsync选项的问题。 背景:•我们有一个进程(在AIX上运行)日志logging在A.log(在日志目录中)。 ?A.log一旦达到100 MB,就会被转到A.CURRENT_DATE_TIME.log,并创build新的A.log。 •我们正在使用rsync将这些日志传输到中央服务器。 我们在完整的日志目录上使用rsync。 •源服务器和目标服务器上的文件的INODE不同。 •一旦日志位于中央服务器中,就意味着通过集中式日志进程读取/索引这些日志,这将从该中央服务器中selectinput。 问题:•尽pipeA.log(目标服务器)作为集中日志进程的input,但它考虑文件的INODE而不是实际的文件名。 所以,当A.log文件被翻转时,新的A.log有一个新的INODE,这个集中过程没有检测到。 当我们在rsync中使用-u -r -t选项时,就发生了这种情况。 所以在这种情况下,文件的INODE随着每次发生rsync而发生变化,并且在发生翻转时也是如此。 因此,该进程停止索引,因为它查找不存在的旧INODE。 •想法是使用rsync和rsync,这些选项不会在rsync时改变文件的INODE,但在A.log旋转到A.CURRENT_DATE_TIME.log时应该在翻转时更改INODE。 所以,为了达到这个目的,我们包含了-inplace选项,并且我们能够在文件旋转时保留rsync和INODE变化的INODE。 但是,现在文件名不变,现在又给了我们一个不同的问题,并始终保持A.log。 所以一旦这个过程完成了A.log的索引,它就会暂停。 如果有人能提出一些可以帮助我们实现上述要求的东西,那将是非常好的。 问候,Puneet辛哈中间件pipe理员
ng 3.6.3从CentOS 6.6 64位的源代码编译来玩,并想知道是否有人有指针或例子syslog-ng.conf尽可能接近复制默认的rsyslog文件名和位置进行日志logging。 默认的源码tarball /usr/local/etc/syslog-ng.conf只在/usr/local/etc/syslog-ng.conf中提供 # Default syslog-ng.conf file which collects all local logs into a # single file called /var/log/messages. # @version: 3.6 @include "scl.conf" source s_local { system(); internal(); }; source s_network { udp(); }; destination d_local { file("/var/log/messages"); }; log { source(s_local); # uncomment this line to open port 514 to […]
我使用rsyslogd 7.4.7运行CentOS 7.0.1406,使用util-linux 2.23.2运行logger 。 我有两台机器通过交换机连接。 当我尝试使用logging器从一台机器login到另一台时,没有logging。 当我使用–stderr选项时,没有任何回应stderr ,这让我暂停。 tcpdump显示数据离开机器A和数据进入机器B. 机器B上的rsyslogdconfiguration如下: $ModLoad imtcp $InputTCPServerRun 2515 *.* /home/greg/log.log 在debugging模式下,我开始使用: rsyslogd -f /home/greg/log.conf -i /home/greg/log.pid -dn 当我在机器A上运行这个logging器命令 logger –tcp –stderr –port 2515 –server machineB `date` 我从rsyslogddebugging收到这个输出,但在日志文件中没有输出。 epoll returned 1 entries epoll push ppusr[0]: 0x7f4fb55c8470 tcpsrv: ready to process 1 event entries tcpsrv: processing item 0, pUsr 0x7f4fb55c8470, […]
我已经在我的Nginx服务器上尝试了以下内容,但在SSH(或SFTP)login时不会收到任何电子邮件。 我把这个代码放在/etc/rsyslog.d/notify.conf ,并确保这个文件被/etc/rsyslog.conf调用。 $ModLoad ommail $ActionMailSMTPServer example.com $ActionMailFrom [email protected] $ActionMailTo [email protected] $template mailSubject,"User logged into %hostname%" $template mailBody,"RSYSLOG Alert\r\nmsg='%msg%'" $ActionMailSubject mailSubject $ActionExecOnlyOnceEveryInterval 60 if $msg contains 'session opened for user' then :ommail:;mailBody 我也尝试了以下行而不是上面的最后一行: if $msg contains 'Accepted password for' then :ommail:;mailBody 我已经尝试了上述两种不同情况下的SMTP服务器的主机名变体,其中包括: hostname.domain.com, 127.0.0.1, [server-ip] 我甚至尝试注释掉整个$ActionMailSMTPServer行。 我不明白为什么rsyslog邮件不工作。 电子邮件通过bash工作得很好(例如mail [email protected] )。 我究竟做错了什么? 除了Exim和Courier外,我还使用了Ubuntu 14.04。
我希望能够使用/dev/log套接字发送RFC5452格式的消息到rsyslog。 我已经尝试了以下的一些变化: echo "<29>1 2003-10-11T22:14:15Z mymachine.example.com su – ID47 – 'su root' failed for lonvick on /dev/pts/8" | socat – UNIX-SENDTO:/dev/log 但无论我尝试过,我认为它似乎不能成为一个RFC5452消息,而是将其视为一个较旧的和较less结构化的格式。 更具体地说,上面这行代码在日志文件中生成这一行: <29> t=2015-07-13T08:10:20.542111+00:00 h=vm01[-] a=1 m=- sd='-' msg=' 2003-10-11T22:14:15Z mymachine.example.com su – ID47 -'su root' failed for lonvick on /dev/pts/8' 模板在哪里 $template my-rfc5424,"<%PRI%> t=%TIMESTAMP:::date-rfc3339% h=%HOSTNAME%[%PROCID%] a=%APP-NAME% m=%MSGID% sd='%STRUCTURED-DATA%' msg='%msg%'\n" %APP-NAME%作为1 – 这是<29>之后的字符(如果我将其更改为2则%APP-NAME%也以2出现)。 所有其他领域都是如此-然后信息本身就是一切,领先的空间和一切。 […]