logrotate与rsyslog基本使用

centos 默认都有这两个服务
logrotate 日志切割
rsyslog 日志管理(可进行日志收集(转存储))

logrotate:
logrotate 默认配置在/etc/logrotate.conf 在这里会配置有相关默认配置,
其中 include 包含子配置项(可以在include包含的目录中配置不同服务日志文件的不同logrotate规则)
如果配置的是daily 则将会启动/etc/cron.daily/logrotate 脚本(自动执行) (执行的时间是在/etc/anacrontab 中 一般不修改该文件)
linux 定时任务将会执行 但是由于不清楚logrotate 每天切割日志的具体时间,因此可以
自己配置,比如复制一份/etc/logrotate.conf 并修改include 参数目录下的配置
最后通过logrotated -dvf copylogrotate.conf 切割日志 (或者自己配置crontab 定时切割 )
在配置项中记得加 copytruncate 意思是先copy一份原始日志并重命名,然后清空原始日志

如果要切割uwsgi 的日志
因为不希望切割日志的时候重启uwsgi 服务(日志不会重启),因此在uwsgi配置项中添加
touch-logreopen = /root/logrr/toucforlogrotate
当touch-logreopen 指定的文件被touch 之后 时间戳发生变化 会让uwsgi 服务重新打开日志 并且不会重启服务

rsyslog:
使用rsyslog 进行日志收集
默认的配置在/etc/rsyslog.conf
例如:要将A 服务器 192.168.1.1 中uwsgi 服务的日志转存储到 B服务器 192.168.1.2的/root/log/from_a.log 中
在A中安装uwsgi-rsyslog 插件(uwsgi-syslog一起)
uwsgi 的配置项中添加:
plugins = python,rsyslog,syslog
req-logger = rsyslog:192.168.1.2:514,req-uwsgilog_from_a
logger = rsyslog:192.168.1.2:514,uwsgilog_from_a

在B服务器中的/etc/rsyslog.conf 添加一下(当然还有别的配置项要开启):
:programname,isequal,"req-uwsgilog_from_a" /root/log/from_a.log
:programname,isequal,"uwsgilog_from_a" /root/log/from_a.log #将req-uwsgilog_from_a和uwsgilog_from_a 都收集到from_a.log 文件中

重启B服务器 rsyslog: service rsyslog restart
重启A服务器的uwsgi
完成!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值