Mengirim string Objek Json sebagai pesan syslog dengan Python
Saya menggunakan alat ini untuk mendapatkan metrik pada alat tersebut.
Skrip ini menggunakan soket untuk mengirim pesan syslog, dan saya mencoba membuatnya mengirim pesan menggunakan fungsi syslog asli.
Saya menambahkan kode di bawah ini tetapi saya tidak bisa membuatnya berfungsi.
def sendSyslog2(jsonObj):
if (logHostAvailable["syslog"]==True):
logging.info("SYSLOG REQUEST: "+json.dumps(jsonObj))
try:
syslog.openlog(facility=syslog.LOG_LOCAL5)
syslog.syslog(syslog.LOG_INFO, json.dumps(jsonObj))
except:
logging.error("syslog failed")
Bahkan menggunakan skrip uji gagal. Saya tidak mahir dalam python atau pemrograman tetapi saya bisa bertahan dengan beberapa referensi, petunjuk apa pun ke arah yang benar dihargai.
Jawaban
Dari: https://stackoverflow.com/a/38929289/1033927
Anda dapat menggunakan server syslog jarak jauh: rsyslog atau paket python loggerglue mengimplementasikan protokol syslog seperti yang dijelaskan di rfc5424 dan rfc5425. . Jika Anda menggunakan port di atas 1024, Anda dapat menjalankannya sebagai pengguna non-root.
Di dalam modul logging python Anda memiliki SyslogHandler yang juga mendukung logging jarak jauh syslog.
import logging
import logging.handlers
my_logger = logging.getLogger('MyLogger')
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.SysLogHandler(address = ('127.0.0.1',514))
my_logger.addHandler(handler)
my_logger.debug('this is debug')
my_logger.critical('this is critical')