logrotate与rsyslog基本使用

xiaoxiao2021-02-28  102

centos 默认都有这两个服务 logrotate 日志切割 rsyslog 日志管理(可进行日志收集(转存储)) https://shenwang.blog.ustc.edu.cn/logrotate-日志轮转/ 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 完成!
转载请注明原文地址: https://www.6miu.com/read-53647.html

最新回复(0)