are you sure you have the modules installed? does rsyslogd -N2 give any errors?

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.

Reply via email to