rsyslog日志和轮转工具logrotate

日志轮转工具主要用于解决日志文件过大的问题,需要制定规则让文件自动保存。

auth.log
auth.log.1
auth.log.2.gz
auth.log.3.gz
auth.log.4.gz

系统日志保存rsyslog

rsyslog 能够获取系统的日志,基于配置文件定义的规则来做处理,最后可以输出到对应的文件中或者发送到远程的日志服务器.
在linux上是以服务的形式运行
这里可以看到这个服务的一些细节。

  • 实际上运行的是/usr/sbin/rsyslogd -n -iNONE
  • 可通过man方法查看命令用法
(base) ➜  ~ systemctl status rsyslog.service
● rsyslog.service - System Logging Service
   Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-05-05 22:39:29 CST; 32min ago
     Docs: man:rsyslogd(8)
           https://www.rsyslog.com/doc/
 Main PID: 1011 (rsyslogd)
    Tasks: 4 (limit: 4915)
   Memory: 4.4M
   CGroup: /system.slice/rsyslog.service
           └─1011 /usr/sbin/rsyslogd -n -iNONE

5月 05 22:39:29 darcyaf-computer systemd[1]: Starting System Logging Service...
5月 05 22:39:29 darcyaf-computer rsyslogd[1011]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd.  [v8.1901.0]
5月 05 22:39:29 darcyaf-computer systemd[1]: Started System Logging Service.
5月 05 22:39:29 darcyaf-computer rsyslogd[1011]: rsyslogd's groupid changed to 109
5月 05 22:39:29 darcyaf-computer rsyslogd[1011]: rsyslogd's userid changed to 104
5月 05 22:39:29 darcyaf-computer rsyslogd[1011]:  [origin software="rsyslogd" swVersion="8.1901.0" x-pid="1011" x-info="https://www.rsyslog.com"] start

继续man,可以看到配置文件主要是/etc/rsyslog.conf
引入了imuxsockimklog分别用来处理本地系统日志和内核日志信息流。
/etc/rsyslog.d/50-default.conf中,主要监控了授权,邮件,内核日志。
监控的规则由selector.action的格式组成,也可以配置发送到专门的日志服务器.

auth,authpriv.*         /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog
#cron.*             /var/log/cron.log
#daemon.*           -/var/log/daemon.log
kern.*              -/var/log/kern.log
#lpr.*              -/var/log/lpr.log
mail.*              -/var/log/mail.log
#user.*             -/var/log/user.log

这里也定义了.指向的是/var/log/syslog这个目录
logger --priority info hello world 这样就会将日志打印到以上的目录中去了.

:~# cat /var/log/syslog |grep hello
May  6 17:35:53 iZbp14iz399actlm root: hello world

logrotate

这里将所有的文件输出到某个文件,当文件愈来愈大怎么处理,这时就要靠logrotate了
logrotate是以cronjob的方式来运行的 /etc/cron.daily/logrotate,每天运行一次
cat /var/lib/logrotate/status这个文件记录了每个需要rotate的文件的当前状态

logrotate state -- version 2
"/var/log/nginx/error.log" 2020-5-6-6:25:1
"/var/log/syslog" 2020-5-6-6:25:1
"/var/log/dpkg.log" 2020-5-1-6:25:1
"/var/log/unattended-upgrades/unattended-upgrades.log" 2020-5-6-6:0:0
"/var/log/unattended-upgrades/unattended-upgrades-shutdown.log" 2020-3-29-6:0:0
"/var/log/auth.log" 2020-5-4-6:25:1
"/var/log/apt/term.log" 2020-5-1-6:25:1
"/var/log/php7.3-fpm.log" 2020-5-3-6:25:1
"/var/log/apt/history.log" 2020-5-1-6:25:1
"/var/log/mysql/error.log" 2020-5-6-6:25:1

rotate 7指保存近7天的日志
compress是做压缩处理
daily每日做一次rotate
cat /etc/logrotate.d/rsyslog

/var/log/syslog

        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

/var/log/mail.info

cat /etc/logrotate.conf
默认定义了日志会每周会做一次rotate

# see "man logrotate" for details                                 
# rotate log files weekly                                         
weekly                                                            
                                                                  
# use the syslog group by default, since this is the owning group 
# of /var/log/syslog.                                             
su root syslog                                                    
                                                                  
# keep 4 weeks worth of backlogs                                  
rotate 4                                                          
                                                                  
# create new (empty) log files after rotating old ones            
create                                                            
                                                                  
# uncomment this if you want your log files compressed            
#compress                                                         

总结

至此差不多了,
我参考了其他博客,由于es等的出现,rsyslog使用可能少了,但是如果需要监控像ssh等系统日志等还是用的这个传到日志服务器等,最后再传到elk.
如果需要添加自定义的rotate,直接在/etc/logrotate.d/目录下添加即可.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272