[collectd] baffled by tail regex

Clay Loveless clay at killersoft.com
Sun Apr 25 20:46:21 CEST 2010


Hi folks,

I'm running collectd 4.9.2.

I'm tailing a log file, looking for a number. My tail config looks like this:

LoadPlugin tail              
<Plugin tail>
  <File "/opt/splunk/var/log/splunk/scheduler.log">
    Instance "splunk-scheduler-log"       
    <Match> 
      Regex "monitor_lighty_hosts__splunkalerts.*result_count=(\d+)"
      DSType "CounterSet"
      Type "counter"
      Instance "lighty_hostcount"
    </Match>
  </File>
</Plugin>


The log file in question contains a lot of entries, but the ones I'm looking for look like this:

04-25-2010 18:35:14.087 INFO  SavedSplunker - savedsearch_id="nobody;FooSearch;monitor_lighty_hosts__splunkalerts", user="nobody", app="FooSearch", savedsearch_name="monitor_lighty_hosts__splunkalerts", status=success, scheduled_time=1272220500, dispatch_time=1272220504, run_time=8.064, result_count=31, alert_actions="", sid="scheduler__nobody__FooSearch_bW9uaXRvcl9saWdodHlfaG9zdHNfX3NwbHVua2FsZXJ0cw_at_1272220500_317731676", thread_id="AlertNotifierWorker-0"


Every flavor of regular expression I've tried for picking out the result_count seems to be failing. Variants I've tried, all of which work outside of collectd, are:

monitor_lighty_hosts__splunkalerts.*result_count=(\d+)
monitor_lighty_hosts__splunkalerts.+result_count=([0-9]+)
monitor_lighty_hosts__splunkalerts.+result_count.([0-9][0-9])
monitor_lighty_hosts__splunkalerts.*result_count.([^,]+),


My threshold for alerts block is set up like this:

<Threshold>
  <Plugin "tail">
    <Type "counter">
      Instance "lighty_hostcount"
      WarningMin 31
    </Type>
  </Plugin>    
</Threshold>


I want to get an email when the result_count of the log in question drops below 31. Based on my understanding, this should be working as configured above. However, I'm getting emails stating:


Message: Host i-ad3d7cc5, plugin tail (instance splunk-scheduler-log) type counter (instance lighty_hostcount): Data source "value" is currently 0.000000. That is below the warning threshold of 31.000000.



Why aren't any of my regex flavors matching? I've tested out many different variants against this log file, and can get '31' as the first subexpression match every time. Is there something about the regex flavor that <Match> uses within Tail that I don't understand?

Thanks in advance!

Regards,
Clay


--
Clay Loveless
Founder
w: http://killersoft.com
t: @claylo






More information about the collectd mailing list