Skip to content

Instantly share code, notes, and snippets.

@isarandi
Created June 12, 2018 18:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save isarandi/73496e0352d37353db4564c17aa55541 to your computer and use it in GitHub Desktop.
Save isarandi/73496e0352d37353db4564c17aa55541 to your computer and use it in GitHub Desktop.
Parsing Tivoli Storage Manager logs for syslog-ng
log {
source { file("/var/log/dsmsched.log" follow-freq(10) flags(no-parse)); };
parser { python(class("TivoliParser")); };
destination(d_syslog_tcp);
};
python {
import re
import dateutil.parser
import socket
class TivoliParser(object):
def init(self, options):
self.regex = re.compile('(?P<timestamp>\d{2}\/\d{2}\/\d{4} \d{2}:\d{2}:\d{2}) +(?P<MSG>.+)')
self.host = socket.gethostname()
return True
def parse(self, log_message):
match = re.match(self.regex, log_message['MESSAGE'])
if match:
for key, value in match.groupdict().items():
log_message[key] = value
log_message['R_UNIXTIME'] = dateutil.parser.parse(log_message['timestamp']).strftime('%s')
log_message['HOST'] = self.host
return True
return False
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment