On Mon, Nov 9, 2015 at 9:24 AM, Peter Portante <[email protected]> wrote:
> > > On Mon, Nov 9, 2015 at 3:27 AM, David Lang <[email protected]> wrote: > >> are you sure you have the modules installed? does rsyslogd -N2 give any >> errors? >> > > I am fairly sure I have the modules installed. Running > "/usr/sbin/rsyslogd -N2" does not appear to report any errors. > > I ran my rsyslogd under debug mode, and see one debug message from > mmjsonparse talking about a message not finding the cookie, and then I > never see that message again. The debug output shows the module loaded, > and its version being 8.14.0, but when it encounters a message that is not > CEE it seems to stop entirely (working on understanding the debug log > output, probably missing something). > If I put a conditional around the use of mmjsonparse to only be invoked when a message is from a certain host sending those records, I see things working normally. -peter > > -peter > > >> >> David Lang >> >> >> On Mon, 9 Nov 2015, Peter Portante wrote: >> >> Date: Mon, 9 Nov 2015 02:21:04 -0500 >>> From: Peter Portante <[email protected]> >>> Reply-To: rsyslog-users <[email protected]> >>> To: rsyslog-users <[email protected]> >>> Subject: Re: [rsyslog] Adding properties to a received log entry >>> >>> >>> On Thu, Oct 29, 2015 at 4:22 PM, Peter Portante < >>> [email protected]> >>> wrote: >>> >>> >>>> >>>> On Thu, Oct 29, 2015 at 3:47 PM, David Lang <[email protected]> wrote: >>>> >>>> On Thu, 29 Oct 2015, Peter Portante wrote: >>>>> >>>>> On Thu, Oct 29, 2015 at 9:52 AM, Dave Caplinger < >>>>> >>>>>> [email protected]> wrote: >>>>>> >>>>>> There are two approaches: >>>>>> >>>>>>> >>>>>>> 1) Modify the syslog line to insert the property by using a template >>>>>>> >>>>>>> 2) Use JSON to preserve the original unmodified log line and add the >>>>>>> property as an extra key/value pair >>>>>>> >>>>>>> Either way, I'd suggest you first validate if you have or can get a >>>>>>> modern >>>>>>> (v8) version of Rsyslog; your config snippet suggests you may be >>>>>>> using >>>>>>> version 5 or lower. >>>>>>> >>>>>>> >>>>>>> Yes, so RHEL 7 ships v7 right now, but they did not change the >>>>>> rsyslog.conf >>>>>> file that ships with RHEL. :( >>>>>> >>>>>> I have the ability to run v8, so I'd like to do #2. Here is a JSON >>>>>> template that I use, would I reference the "$!roles" variable as >>>>>> below? >>>>>> >>>>>> set $!roles = "openstack-0,controller,db" >>>>>> template(name="mytemplate" >>>>>> type="list") { >>>>>> constant(value="{") >>>>>> constant(value="\"@timestamp\":\"") >>>>>> property(name="timereported" dateFormat="rfc3339") >>>>>> constant(value="\",\"@version\":\"2015.09.24-0") >>>>>> constant(value="\",\"message\":\"") >>>>>> property(name="msg" >>>>>> format="json") >>>>>> constant(value="\",\"hostname\":\"") >>>>>> property(name="hostname") >>>>>> constant(value="\",\"level\":\"") >>>>>> property(name="syslogseverity-text") >>>>>> constant(value="\",\"pid\":\"") >>>>>> property(name="procid") >>>>>> constant(value="\",\"roles\":\"") >>>>>> property(name="!roles") >>>>>> constant(value="\",\"rsyslog\": {") >>>>>> constant(value="\"facility\":\"") >>>>>> property(name="syslogfacility-text") >>>>>> constant(value="\",\"programname\":\"") >>>>>> property(name="programname") >>>>>> constant(value="\",\"fromhost\":\"") >>>>>> property(name="fromhost") >>>>>> constant(value="\",\"fromhost-ip\":\"") >>>>>> property(name="fromhost-ip") >>>>>> constant(value="\",\"timegenerated\":\"") >>>>>> property(name="timegenerated" dateFormat="rfc3339") >>>>>> constant(value="\",\"protocol-version\":\"") >>>>>> property(name="protocol-version") >>>>>> constant(value="\",\"structured-data\":\"") >>>>>> property(name="structured-data") >>>>>> constant(value="\",\"app-name\":\"") >>>>>> property(name="app-name") >>>>>> constant(value="\",\"msgid\":\"") >>>>>> property(name="msgid") >>>>>> constant(value="\",\"inputname\":\"") >>>>>> property(name="inputname") >>>>>> constant(value="\"} }") >>>>>> } >>>>>> >>>>>> So since I have a number of systems that are running v5 and v7 of >>>>>> rsyslog, >>>>>> is there a way in those versions to modify the >>>>>> RSYSLOG_SyslogProtocol23Format template to add a constant value? >>>>>> >>>>>> >>>>> you are working too hard on this. >>>>> >>>>> >>>> Yes, you are right, I can see what need to do here. >>>> >>>> >>>> >>>>> create a template similar to: >>>>> >>>>> $template structuredmsg,"<%pri%>%timereported% %hostname% %syslogtag% >>>>> @cee:%$!%\n" >>>>> >>>>> >>>> This works with v7* so this is wonderful. >>>> >>>> >>>> >>>>> then log things with the format RSYSLOG_DebugFormat and make sure that >>>>> everything you want to send to the far side shows up in either >>>>> hostname, >>>>> programname, facility/severity, or as a $! variable. >>>>> >>>>> if you use mmjsonparse, it will parse the message if it's json, and it >>>>> will make $!msg = $msg if it's not json. >>>>> >>>>> >>>> So I have v8.8.0 right now, and the mmjsonparse module appears to go >>>> into >>>> an infinite loop on some message. So I'll get the latest setup on my >>>> box >>>> and work with that. >>>> >>>> >>> Well, I moved to v8.14.0, and when I add the >>> "action(type=\"mmjsonparse\")" >>> before I do anything else, no logging occurs, and the messages begin to >>> pile up internally (if I following the debug output correctly). >>> >>> I am probably missing something here: >>> >>> module( >>> load="imuxsock" >>> SysSock.Name="/run/systemd/journal/syslog" >>> SysSock.Use="off") >>> module(load="imjournal" StateFile="/var/lib/rsyslog/imjournal.state") >>> module(load="imklog") >>> module(load="imudp") >>> input(type="imudp" port="514") >>> module(load="imptcp") >>> input(type="imptcp" port="514") >>> module(load="omelasticsearch") >>> module(load="mmjsonparse") >>> module(load="mmsnmptrapd") >>> module(load="mmutf8fix") >>> global( >>> # Where to place auxiliary files >>> workDirectory="/var/lib/rsyslog" >>> # perf-dept: we want fully qualified domain names for common logging >>> preserveFQDN="on") >>> main_queue( >>> # Beaf up the internal message queue >>> queue.size="131072" >>> # 90% of QueueSize >>> queue.discardmark="117964" >>> # If we reach the discard mark, we'll throw out notice, info, and >>> debug >>> messages >>> queue.discardseverity="5") >>> template(name="logstash-index-pattern" type="list") { >>> constant(value="logstash-") >>> property(name="timereported" dateFormat="rfc3339" position.from="1" >>> position.to="4") >>> constant(value=".") >>> property(name="timereported" dateFormat="rfc3339" position.from="6" >>> position.to="7") >>> constant(value=".") >>> property(name="timereported" dateFormat="rfc3339" position.from="9" >>> position.to="10") >>> } >>> template(name="com-redhat-rsyslog-hier" >>> type="list") { >>> constant(value="{") >>> constant(value="\"@timestamp\":\"") >>> property(name="timereported" dateFormat="rfc3339") >>> constant(value="\",\"@version\":\"2015.09.24-0") >>> constant(value="\",\"message\":\"") property(name="msg" >>> format="json") >>> constant(value="\",\"hostname\":\"") >>> property(name="hostname") >>> constant(value="\",\"level\":\"") >>> property(name="syslogseverity-text") >>> constant(value="\",\"pid\":\"") >>> property(name="procid") >>> constant(value="\",\"rsyslog\": {") >>> constant(value="\"facility\":\"") >>> property(name="syslogfacility-text") >>> constant(value="\",\"programname\":\"") >>> property(name="programname") >>> constant(value="\",\"fromhost\":\"") >>> property(name="fromhost") >>> constant(value="\",\"fromhost-ip\":\"") >>> property(name="fromhost-ip") >>> constant(value="\",\"timegenerated\":\"") >>> property(name="timegenerated" dateFormat="rfc3339") >>> constant(value="\",\"protocol-version\":\"") >>> property(name="protocol-version") >>> constant(value="\",\"structured-data\":\"") >>> property(name="structured-data") >>> constant(value="\",\"app-name\":\"") >>> property(name="app-name") >>> constant(value="\",\"msgid\":\"") >>> property(name="msgid") >>> constant(value="\",\"inputname\":\"") >>> property(name="inputname") >>> constant(value="\",\"cee\":\"") >>> property(name="$!all-json") >>> constant(value="\"} }") >>> } >>> $ActionFileDefaultTemplate RSYSLOG_FileFormat >>> $IncludeConfig /etc/rsyslog.d/*.conf >>> action(type="mmutf8fix" mode="utf-8") >>> *.* :mmsnmptrapd: >>> action(type="mmjsonparse") >>> action( >>> type="omelasticsearch" >>> server="172.18.40.3" >>> serverport="9200" >>> template="com-redhat-rsyslog-hier" >>> searchIndex="logstash-index-pattern" >>> dynSearchIndex="on" >>> searchType="rsyslog" >>> bulkmode="on" >>> queue.type="linkedlist" >>> queue.size="5000" >>> queue.dequeuebatchsize="300" >>> action.resumeretrycount="-1") >>> >>> >>> Thanks for any help you can offer. >>> >>> -peter >>> >>> >>> >>> Thanks for setting me straight, David! >>>> >>>> -peter >>>> >>>> >>>> >>>> >>>>> you then send via the structuredmsg I show above, and on the receiving >>>>> system, use mmjsonparse and it will recreate the $! variables that you >>>>> sent >>>>> (validate via RSYSLOG_DebugFormat >>>>> >>>>> David Lang >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> rsyslog mailing list >>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog >>>>> http://www.rsyslog.com/professional-services/ >>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards >>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a >>>>> myriad >>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you >>>>> DON'T LIKE THAT. >>>>> >>>>> >>>> >>>> _______________________________________________ >>> rsyslog mailing list >>> http://lists.adiscon.net/mailman/listinfo/rsyslog >>> http://www.rsyslog.com/professional-services/ >>> What's up with rsyslog? Follow https://twitter.com/rgerhards >>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad >>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you >>> DON'T LIKE THAT. >>> >>> _______________________________________________ >> rsyslog mailing list >> http://lists.adiscon.net/mailman/listinfo/rsyslog >> http://www.rsyslog.com/professional-services/ >> What's up with rsyslog? Follow https://twitter.com/rgerhards >> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad >> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you >> DON'T LIKE THAT. >> > > _______________________________________________ rsyslog mailing list http://lists.adiscon.net/mailman/listinfo/rsyslog http://www.rsyslog.com/professional-services/ What's up with rsyslog? Follow https://twitter.com/rgerhards NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE THAT.

