rsyslog+syslog日志学习

readme :Linux日志配置和回滚

一 什么是日志回滚? https://www.cnblogs.com/andy9468/p/8378492.html

答:
将日志信息输出到一个单一的文件中,随着应用程序的持续使用,该日志文件会越来越庞大,进而影响系统的性能。因此,有必要对日志文件按某种条件进行切分,要切分日志文件。
分割日志的触发条件:大小、日期,或者大小加上日期。
说是切分,实际上是,当一个日志文件达到触发条件后,对日志文件进行重命名,之后再新建原来名称的日志文件(此时就是空文件了),新产生的日志就写入新的日志文件。
为啥叫回滚呢?当分割的日志文件达到指定数目的上限个数时,最老的日志文件就会被删除。

二  linux旧的系统 syslogd+klogd
1. syslog 进程:
bin文件在 /sbin/syslog
2. 启动
/etc/init.d/S01logging start 
在 S01logging这个文件里面 就有指定sys_args 参数SYSLOGD_ARGS="-n -m 0 -L -s 2048 -b 5 -O /root/logs/messages -R 10.43.81.72"
 
/sbin/syslogd -n -m 0 -L -s 2048 -b 5 -O /root/logs/messages -R 10.43.81.72
-m选项指定循环间隔时间。

意思:(参考链接https://www.cnblogs.com/arnoldlu/p/10583233.html)
        或者执行syslogd --help
其中
        -n              Run in foreground------------------------------------------------作为后台进程运行。
        -R HOST[:PORT]  Log to HOST:PORT (default PORT:514)------------------------------log输出到指定远程服务器。
        -L              Log locally and via network (default is network only if -R)
        -C[size_kb]     Log to shared mem buffer (use logread to read it)----------------log输出到共享内存,通过logread读取。
        -K              Log to kernel printk buffer (use dmesg to read it)---------------log输出到内核printk缓存中,通过dmesg读取。
        -O FILE         Log to FILE (default: /var/log/messages, stdout if -)------------log输出到指定文件中。
        -s SIZE         Max size (KB) before rotation (default 200KB, 0=off)-------------在log达到一定大小后,循环log到messgas.0中,后续依次变动。
        -b N            N rotated logs to keep (default 1, max 99, 0=purge)--------------保持的messages个数,messages.0最新,数字越大越老。一次覆盖。
        -l N            Log only messages more urgent than prio N (1-8)------------------设置记录的log优先级,注意这里如果设置-l 7,是不会记录等级7,即LOG_DEBUG的,只会记录LOG_INFO及更高优先级。
        -S              Smaller output---------------------------------------------------是否显示hostname,以及user.info之类的详细信息。
        -f FILE         Use FILE as config (default:/etc/syslog.conf)--------------------指定conf文件。

综上分析:本司网关的日志采用的是日志回滚方式,最多保存5个文件。

三  rsyslog 新日志系统

1. rsyslog 日志配置:
主配置: /etc/rsyslog.conf
子配置: /etc/rsyslog.d/50-default.conf    

添加自定义日志文件
在文件最后添加如下一行:
local0.* /var/log/my_logfile0

2.日志回滚:
 主配置:/etc/logrotate.conf
 子配置:在/etc/logrotate.d/rsyslog 被包含。
 logrotate -f /etc/logrotate.conf  –强制轮转 或者 /usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
 
3. 启动、停止
systemctl enable rsyslog
systemctl start rsyslog
systemctl stop rsyslog
systemctl restart rsyslog

四 参考
参考链接:
日志配置: https://www.cnblogs.com/shu-sheng/p/13275474.html
https://www.cnblogs.com/digod/p/10593443.html

日志回滚:
https://blog.csdn.net/weixin_36040020/article/details/116777261?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-4.no_search_link

https://www.cnblogs.com/silenceli/p/3505404.html
https://www.cnblogs.com/fyy-hhzzj/p/9593362.html
https://my.oschina.net/u/4387995/blog/3837908

ogrotate 的执行由crond服务实现。在/etc/cron.daily目录中,有个文件logrotate,它实际上是个shell script,用来启动logrotate。
2. 查看linux日志的三种途径:
1)dmesg
printk()打印的日志会写到kernel ring buffer(环缓冲区)中,dmesg是从kernel ring buffer中读取内核日志信息。
2)/var/log/
系统所有日志
3)/proc/kmsg
通过读取/proc/kmsg也可以得到ring buffer(环缓冲区)的日志,但是对/proc/kmsg进行读操作后,ring buffer中被读取的数据将被清空。


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值