David, cassandra.log file exists when I start rsyslog. However, I noticed
that Cassandra recreates the log file every time it restarts. So, that
explains why I need to restart rsyslog (so that it re-reads the new file
recreated by Cassandra) after Cassandra restarts.
Is there a way to configure rsyslog to read files which get periodically
recreated?

Thanks,

Alec

On Sun, Dec 13, 2015 at 1:07 AM, David Lang <[email protected]> wrote:

> I suspect that no logs are being read from the file before you restart.
>
> does the logfile exist when rsyslog starts?
>
> if you do a HUP of rsyslog instead of a restart, does it start reading
> logs from the file?
>
> impstats would show how many logs have been processed from that input.
>
> David Lang
>
> On Sun, 13 Dec 2015, Alec Swan wrote:
>
> Date: Sun, 13 Dec 2015 00:26:40 -0700
>> From: Alec Swan <[email protected]>
>> Reply-To: rsyslog-users <[email protected]>
>> To: rsyslog-users <[email protected]>
>> Subject: Re: [rsyslog] Delayed batch processing
>>
>>
>> Ciprian, that's correct, I am using imfile to tail cassandra.log. Sorry I
>> wasn't clear about that. I am not using startmsg.regex setting. My
>> configuration for imfile, template and liblognorm rule are shown below.
>> I'd
>> like to make clear that it's dozens of log lines, not just the last one,
>> that are not being sent. Note that Cassandra log lines start with a space,
>> which I handle in liblognorm rule (see below).
>>
>> input(
>>     type = "imfile"
>>     File = "/var/log/cassandra/cassandra.log"
>>     Tag = "cassandra"
>>     readMode = "0"
>>     Facility = "local2"
>>     Ruleset = "cassandra.log"
>> )
>>
>> ruleset(name = "cassandra.log") {
>>     # Properties prefixed with $! will be included in json by mmnormalize
>>     #set $!@timestamp = $timereported;
>>     set $!@timestamp = exec_template("timereportedrfc3339");
>>     set $!host = $hostname;
>>     set $!severity = $syslogseverity-text;
>>     set $!facility = $syslogfacility-text;
>>     set $!syslogtag = $syslogtag;
>>     set $!filename = "cassandra.log";
>>
>>     # Parse logfile using liblognorm
>>
>>           action(type = "mmnormalize" rulebase =
>> "/etc/rsyslog.d/rules/cassandra.log.rb")
>>
>>
>>     # Output parsed logs
>>     action(type = "omfile" template="es-payload"
>> file="/var/log/rsyslog/rsyslog-cassandra.log" FileCreateMode="0644")
>>     action(
>>         type = "omelasticsearch"
>>         template = "es-payload"
>>         dynSearchIndex = "on"
>>         searchIndex = "logstash-index"
>>         searchType = "cassandra"
>>         server = "myhost"
>>         serverport = "9200"
>>         errorFile = "/var/log/rsyslog/ES-error.log"
>>         bulkmode = "on"
>>         action.resumeretrycount="5"  # retry if ES is unreachable (-1 for
>> infinite retries)
>>         action.resumeInterval="60"
>>         queue.dequeuebatchsize="1000"   # ES bulk size
>>         queue.type="FixedArray"
>>         queue.size="100000"
>>         queue.workerthreads="5"
>>         queue.spoolDirectory="/var/spool/rsyslog"
>>         queue.filename="plain"
>>         queue.maxfilesize="100m"
>>         queue.maxdiskspace="1g"
>>         # queue.highwatermark="50000"
>>         # queue.lowwatermark="20000"
>>         queue.saveonshutdown="on"
>>     )
>>     stop
>> }
>>
>>
>> Liblognorm configuration in /etc/rsyslog.d/rules/cassandra.log.rb:
>>
>>
>> # The rule to parse each line in the log file. IMPORTANT: The leading
>> space
>> is important (see
>> http://www.rsyslog.com/log-normalization-and-the-leading-space/)
>> rule=: %log_level:word% %log_time:word% %message:rest%
>>
>> On Sun, Dec 13, 2015 at 12:01 AM, Ciprian Hacman <
>> [email protected]> wrote:
>>
>> I see Alec is using imfile and omelasticsearch so I suppose he is tailing
>>> a
>>> log file.
>>> By any chance, are you using Cassandra to capture multiline logs (using
>>> the
>>> startmsg.regex setting)? That would explain why the last log line is not
>>> sent until restart.
>>>
>>> Ciprian
>>>
>>> --
>>> Performance Monitoring * Log Analytics * Search Analytics
>>> Solr & Elasticsearch Support * http://sematext.com/
>>>
>>> On Sun, Dec 13, 2015 at 6:45 AM, David Lang <[email protected]> wrote:
>>>
>>> On Sat, 12 Dec 2015, Alec Swan wrote:
>>>>
>>>> David, I don't have name= attribute in the action statement. However,
>>>>
>>> there
>>>
>>>> are log messages from omelasticsearch module after rsyslog restart (see
>>>>>
>>>> my
>>>
>>>> previous email).
>>>>>
>>>>> Cassandra does not generate a log of logs and I noticed that the few
>>>>>
>>>> that
>>>
>>>> get generated are not sent to elasticsearch until rsyslog is restarted.
>>>>>
>>>> It
>>>
>>>> feels like logs are being buffered and then sent to ES on subsequent
>>>>> startup.
>>>>>
>>>>> So, here is what I see happening:
>>>>> 1. I start Rsyslog
>>>>> 2. I start Cassandra and it generates several dozens of log lines
>>>>> 3. No logs show up in ES (even if I restart Cassandra several times)
>>>>> 4. I restart Rsyslog
>>>>> 5. The logs generated in step 2 show up in ES
>>>>>
>>>>>
>>>> This does not sound like rsyslog is buffering the logs, but that there
>>>> is
>>>> some other problem.
>>>>
>>>>
>>>> how are the logs getting from Cassandra to rsyslog?
>>>>
>>>> can you enable impstats so that you can see how many logs are received,
>>>> and how many are processed by the various actions?
>>>>
>>>> it would help to name new style actions so that it's easier to track
>>>>
>>> them.
>>>
>>>>
>>>> in your debug log (the output of -dn), track a known message that
>>>> Cassandra generates and see exactly what happens to it.
>>>>
>>>>
>>>> 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.
>
_______________________________________________
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