如何配置 rsyslog 以使用 Python 的集中日志
How to configure rsyslog to use the centralized log with Python
带 elk 的 rsyslog 在 docker 本地主机上运行良好。
我可以使用以下命令在 Kibana 中查看日志:
logger -n localhost 'log message from test99'
logger -n localhost 'log message from test99'
logger -n 10.211.55.12 'log message from test99'
logger -n 10.211.55.12 'log message from test99234234'
这里的问题,我想在我的 Python 应用程序中使用 rsyslog。下面的演示代码与 rsyslog 的配置相同。
但我无法从 Python 应用程序中获得任何信息。那么我的配置或代码有什么问题吗?
10.211.55.12 是我本地主机的 IP 地址
log_test.py
import logging
import logging.handlers
logger = logging.getLogger('myLogger')
logger.setLevel(logging.INFO)
# Add handler to the logger
handler = logging.handlers.SysLogHandler('/dev/log')
# Add formatter to the handler
formatter = logging.Formatter('Python: { "loggerName":"%(name)s", "asciTime":"%(asctime)s", "pathName":"%(pathname)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}')
handler.formatter = formatter
logger.addHandler(handler)
for _ in range(100):
logger.info("Test Message")
rsyslog.conf
47 $DirCreateMode 0755
48 $Umask 0022
49 $PrivDropToUser syslog
50 $PrivDropToGroup syslog
51
52 #
53 # Where to place spool and state files
54 #
55 $WorkDirectory /var/spool/rsyslog
56
57 #
58 # Include all configuration files in /etc/rsyslog.d/
59 #
60 $IncludeConfig /etc/rsyslog.d/*.conf
61 *.* 10.211.55.12:514
62
63
64 # Log anything (except mail) of level info or higher.
65
66 # Don't log private authentication messages!
67
68 *.info;mail.none;authpriv.none;cron.none /var/log/messages
69
70 # The authpriv file has restricted access.
71
72 authpriv.* /var/log/secure
73
74 # Log all the mail messages in one place.
75
76 mail.* /var/log/maillog
77
78 # Log cron stuff
79
80 cron.* /var/log/cron
81
82 # Everybody gets emergency messages
83
84 *.emerg *
85
86 # Save news errors of level crit and higher in a special file.
87
88 uucp,news.crit /var/log/spooler
89
90 # Save boot messages also to boot.log
91
92 local7.* /var/log/boot.log
's comment is right. Change logging.handlers.SysLogHandler('/dev/log') 到 logging.handlers.SysLogHandler() 将适用于我的情况。谢谢@VPfB!
带 elk 的 rsyslog 在 docker 本地主机上运行良好。
我可以使用以下命令在 Kibana 中查看日志:
logger -n localhost 'log message from test99'
logger -n localhost 'log message from test99'
logger -n 10.211.55.12 'log message from test99'
logger -n 10.211.55.12 'log message from test99234234'
这里的问题,我想在我的 Python 应用程序中使用 rsyslog。下面的演示代码与 rsyslog 的配置相同。
但我无法从 Python 应用程序中获得任何信息。那么我的配置或代码有什么问题吗?
10.211.55.12 是我本地主机的 IP 地址
log_test.py
import logging
import logging.handlers
logger = logging.getLogger('myLogger')
logger.setLevel(logging.INFO)
# Add handler to the logger
handler = logging.handlers.SysLogHandler('/dev/log')
# Add formatter to the handler
formatter = logging.Formatter('Python: { "loggerName":"%(name)s", "asciTime":"%(asctime)s", "pathName":"%(pathname)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}')
handler.formatter = formatter
logger.addHandler(handler)
for _ in range(100):
logger.info("Test Message")
rsyslog.conf
47 $DirCreateMode 0755
48 $Umask 0022
49 $PrivDropToUser syslog
50 $PrivDropToGroup syslog
51
52 #
53 # Where to place spool and state files
54 #
55 $WorkDirectory /var/spool/rsyslog
56
57 #
58 # Include all configuration files in /etc/rsyslog.d/
59 #
60 $IncludeConfig /etc/rsyslog.d/*.conf
61 *.* 10.211.55.12:514
62
63
64 # Log anything (except mail) of level info or higher.
65
66 # Don't log private authentication messages!
67
68 *.info;mail.none;authpriv.none;cron.none /var/log/messages
69
70 # The authpriv file has restricted access.
71
72 authpriv.* /var/log/secure
73
74 # Log all the mail messages in one place.
75
76 mail.* /var/log/maillog
77
78 # Log cron stuff
79
80 cron.* /var/log/cron
81
82 # Everybody gets emergency messages
83
84 *.emerg *
85
86 # Save news errors of level crit and higher in a special file.
87
88 uucp,news.crit /var/log/spooler
89
90 # Save boot messages also to boot.log
91
92 local7.* /var/log/boot.log