Python에서 Json 개체 문자열을 syslog 메시지로 보내기
Oct 28 2020
이 도구 를 사용 하여 어플라이언스에 대한 메트릭을 가져옵니다.
스크립트는 소켓을 사용하여 syslog 메시지를 보내고 있으며 기본 syslog 함수를 사용하여 메시지를 보내도록 시도하고 있습니다.
아래 코드를 추가했지만이 작업을 수행 할 수없는 것 같습니다.
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")
테스트 스크립트를 사용하더라도 실패합니다. 나는 파이썬이나 프로그래밍에 능숙하지 않지만 몇 가지 참조를 통해 얻을 수 있으며 올바른 방향의 포인터를 높이 평가합니다.
답변
sarvesh.lad Dec 15 2020 at 21:57
에서: https://stackoverflow.com/a/38929289/1033927
원격 syslog 서버를 사용할 수 있습니다. rsyslog 또는 python 패키지 loggerglue는 rfc5424 및 rfc5425에 설명 된대로 syslog 프로토콜을 구현합니다. . 1024 이상의 포트를 사용하면 루트가 아닌 사용자로 실행할 수 있습니다.
파이썬 로깅 모듈 내에는 syslog 원격 로깅도 지원하는 SyslogHandler가 있습니다.
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')