python logging rsyslog混合使用

python logging rsyslog混合使用,第1张

概述简介:企业规模大了,场景业务多了,日志不能再分散处理了。那么第一选择就是日志服务器,一台服务器就可以查看所有业务的日志,当然,也要有专门的数据库存储日志,专门的WEB浏览日志。作为linux的默认日志服务,rsyslog就是我们的第一选择了,它即是linux系统的日志服务,也可以配置开放

简介:

  企业规模大了,场景业务多了,日志不能再分散处理了。那么第一选择就是日志服务器,一台服务器就可以查看所有业务的日志,当然,也要有专门的数据库存储日志,专门的WEB浏览日志。

  作为linux的默认日志服务,rsyslog就是我们的第一选择了,它即是linux系统的日志服务,也可以配置开放端口作为中央日志服务器。

  rsyslog能够接受从各种各样的来源,将其输入,输出的结果到不同的目的地。rsyslog可以提供超过每秒一百万条消息给目标文件。

  简单说,我们写python程序的时候,日志使用logging模块,是可以直接输出到远程的rsyslog中央日志服务器的。

一:安装rsyslog

我测试使用的fedora默认已经安装了,没安装的话,自己dnf apk ……根据自己的系统装一下。

二:配置rsyslog

rsyslog的配置文件为: /etc/rsyslog.conf

编辑此文件即可。

1.MODulES

模块:可以理解为rsyslog的插件,配置打开这些插件,rsyslog就开启了这个功能,我比较关心的是tcp、udp端口监听记录功能

# ProvIDes UDP syslog reception
# for parameters see http://www.rsyslog.com/doc/imudp.HTML
#module(load="imudp") # needs to be done just once
#input(type="imudp" port="514")

# ProvIDes TCP syslog reception
# for parameters see http://www.rsyslog.com/doc/imtcp.HTML
module(load="imtcp") # needs to be done just once
input(type="imtcp" port="514")

我取消了tcp端口514的注释,即监听514端口tcp协议。记录发向这里的日志内容。

2.RulES

规则:记录的保存规则吧。

$template Dynamicfile,"/var/log/%HOSTname%/forwarded-logs.log"
*.* -?Dynamicfile

我在RulES下面增加了这个内容

第一行是文件名模板,

第二行是任何日志都保存到这个模板文件名中。

3.数据库

实验没到这里,候补

三:python logging

import loggingimport socketfrom logging import handlers#初始化日志logger = logging.getLogger("Appname")# 指定logger输出格式formatter = logging.Formatter('%(asctime)s %(levelname)-8s: (%(name)s)%(pathname)s %(message)s')#rsyslog日志处理器rsyslog_handler=handlers.SysLogHandler(address=('10.0.0.10', 514), socktype=socket.soCK_STREAM)rsyslog_handler.setFormatter(formatter)# 为logger添加的日志处理器logger.addHandler(rsyslog_handler)# 指定日志的最低输出级别,默认为WARN级别logger.setLevel(logging.DEBUG)# 输出不同级别的loglogger.deBUG('文件? ')logger.info('this is information')logger.warning('this is warning message')logger.error('this is error message')logger.fatal('this is fatal message, it is same as logger.critical')logger.critical('this is critical message')

关键的是设置服务器地址,端口,还有协议,sysloghandler默认使用udp协议,

socktype=socket.soCK_STREAM    是定义tcp协议

10.0.0.10    514 是定义rsyslog服务器地址和端口  只要能解析,填主机名,域名都可以。

暂时到这里吧,凌晨1点多了。虽然还有数据库问题,储存格式,储存内容一些问题没有解决。

 

 

总结

以上是内存溢出为你收集整理的python logging rsyslog混合使用全部内容,希望文章能够帮你解决python logging rsyslog混合使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1188133.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存