On Nov 13, 2013, at 1:40 PM, Leggett, Torrance I. <[email protected]> wrote:
>
> The ${MainMsg/Action}ResumeRetryCount seems to look like a 'legacy' style
> option, but I don't see the equivalent in the ranier-script style:
>
> action( type="omfwd"
> target="127.0.0.1"
> port="5544"
> protocol="udp"
> template="RSYSLOG_TraditionalForwardFormat"
> queue.type="LinkedList"
> queue.filename="logstash"
> queue.size="1000000"
> queue.highwatermark="60000"
> queue.lowwatermark="50000"
> queue.maxdiskspace="1g"
> queue.saveonshutdown="on"
> )
It is:
action.resumeretrycount="-1"
Also, I recommend giving your action a 'name="whatever"' parameter entry as
well (as you'll see below).
> Second, I've seen the pstats module, but do you have some examples of how I
> could be using it to tell what's going on?
First, enable the module with something like:
module(load="impstats" interval="660" severity="7")
This will start generating logs tagged with "rsyslogd-pstats" every 600
seconds. If you like, you can use that tag to filter them into their own file:
if $syslogtag contains 'rsyslogd-pstats' then {
action(type="omfile" queue.type="linkedlist" queue.discardmark="980"
name="pstats" file="/var/log/pstats")
stop
}
You'll wind up with several log lines at each interval, all showing current
counters (since rsyslog restart). So to determine inter-interval deltas, you'd
have to import these into a spreadsheet. (Newer rsyslog can emit just the
deltas in the log lines, but that's in v7.5.x I believe.)
For example, if you want to filter based on some property (such as source IP
address) and send the matching logs to both a local file and on to a remote
destination, you might use something like:
if $fromhost-ip ==
[ "1.1.1.1", \
"2.2.2.2" ] \
then {
action (type="omfwd" queue.type="linkedlist" queue.discardmark="980"
action.resumeretrycount="-1" name="NET.forward" target="10.10.10.10"
port="514" protocol="tcp")
action (type="omfile" queue.type="linkedlist" queue.discardmark="980"
name="NET.local" file="/var/log/messages")
stop
}
Which is a log flow like:
source -> imudp -> main Q -> NET.local (to local files) & NET.forward (to
remote)
Here's an example of a batch of pstats output (re-ordered slightly) from the
above config:
Nov 13 14:31:35 loghost rsyslogd-pstats: imudp(*:514): submitted=23035
Nov 13 14:31:35 loghost rsyslogd-pstats: main Q: size=15 enqueued=89624087
full=0 discarded.full=0 discarded.nf=0 maxqsize=444
Nov 13 14:31:35 loghost rsyslogd-pstats: NET.local: size=0 enqueued=11541
full=0 discarded.full=0 discarded.nf=0 maxqsize=7
Nov 13 14:31:35 loghost rsyslogd-pstats: NET.local: processed=11541 failed=0
Nov 13 14:31:35 loghost rsyslogd-pstats: NET.forward: size=0 enqueued=11541
full=0 discarded.full=0 discarded.nf=0 maxqsize=7
Nov 13 14:31:35 loghost rsyslogd-pstats: NET.forward: processed=11541 failed=0
Nov 13 14:31:35 loghost rsyslogd-pstats: pstats: size=0 enqueued=65508 full=0
discarded.full=0 discarded.nf=0 maxqsize=25
Nov 13 14:31:35 loghost rsyslogd-pstats: pstats: processed=65500 failed=0
In this case we have:
1) A UDP input (imudp)
This logs message counts "submitted" to rsyslog via UDP port 514.
2) A main queue (main Q)
This shows messages entering the queue (enqueued), as well as any dropped
messages (discarded.full=0, discarded.nf=0). It also shows how many times the
queue has become completely full (full=0) and it keeps a running total of the
maximum size the queue has ever hit (maxqsize=444). (All these counters are
since rsyslog startup.)
3) Two output/action queues (NET.local, NET.forward)
These logs queue stats like above, as well as successfully "processed" (via
omfile and omfwd in this case), indicating successful delivery to their final
destination (local file or remote TCP receiver, in this case).
4) Another queue to handle pstats output itself (as I described above)
This example doesn't happen to include DA-mode, which adds another pstats log
line for the DA portion of the associated action queue.
If you don't give your action queues names, you'll wind up with pstats logs
referring to things like "action 2", and have a hard time figuring out what is
going on.
A well-behaved queue will have zero discarded.full and discarded.nf, and a low
maxqsize, meaning that everything entering the queue is leaving promptly. In a
backlog situation, you'll see size and maxqsize for an action/output queue
increase over time, until maxqsize hits your configured queue.size parameter.
Then the main Q will start increasing in size (and maxqsize) until it
approaches and exceeds full. Then the discarded.nf and discarded.full counters
will start climbing.
Hope this helps,
- Dave
_______________________________________________
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.