Created Sat May, 25 2019 at 09:33PM
# ubuntu
sudo su root -c 'echo foo test test > /dev/kmsg'
# BSD
logger -p kern.crit MESSAGE
# network syslog traffic via Netcat
# Send each line of file.log towards syslog server 127.0.0.1 on port 514
nc -q0 127.0.0.1 514 < file.log
# Send a simple string that will generate a single log entry:
echo "message" | nc -q0 127.0.0.1 514
# -q0 makes nc exit after sending:
# -q seconds after EOF on stdin, wait the specified number of seconds and then quit.
Below are two python syslog clients to use to test sending messages
syslogger.py
#!/usr/bin/env python3
import logging.config
import ssl
import sys
syslog_host = '127.0.0.1'
syslog_port = 5515
logging.config.dictConfig({
'version': 1,
'formatters': {
'simple': {
'format': '%(asctime)s syslogger %(name)s: %(levelname)s %(message)s',
'datefmt': '%Y-%m-%dT%H:%M:%S',
},
},
'handlers': {
'syslog': {
'level': 'INFO',
'class': 'logging.handlers.SysLogHandler',
'formatter': 'simple',
'address': (syslog_host, syslog_port),
},
},
'root': {
'handlers': ['syslog'],
'level': 'INFO',
}
})
print('sending syslog host:[{}] UDP port[{}]'.format(syslog_host, syslog_port))
logger = logging.getLogger('testlogger')
try:
msg = sys.argv[1]
except:
msg = 'hello dipshit'
logger.info(msg)
and if you need to test TLS syslogging use the following. Note you'll need to pip install tls-syslog
#!/usr/bin/env python3
# requires pip install tls-syslog
import logging.config
import ssl
import sys
syslog_host = '127.0.0.1'
syslog_port = 6514
syslog_cert_path = '/path/to/syslog.pem'
logging.config.dictConfig({
'version': 1,
'formatters': {
'simple': {
'format': '%(asctime)s Jaime %(name)s: %(levelname)s %(message)s',
'datefmt': '%Y-%m-%dT%H:%M:%S',
},
},
'handlers': {
'syslog': {
'level': 'INFO',
'class': 'tlssyslog.handlers.TLSSysLogHandler',
'formatter': 'simple',
'address': (syslog_host, syslog_port),
'ssl_kwargs': {
'cert_reqs': ssl.CERT_REQUIRED,
'ssl_version': ssl.PROTOCOL_TLS,
'ca_certs': syslog_cert_path,
},
},
},
'root': {
'handlers': ['syslog'],
'level': 'INFO',
}
})
print('sending syslog host:[{}] TCP port[{}]'.format(syslog_host, syslog_port))
logger = logging.getLogger('testlogger')
try:
msg = sys.argv[1]
except:
msg = 'It is so damn hot. Milk was a bad choice.'
logger.info(msg)