Ubuntu 解决auth.log为空问题和rsyslogd日志丢失
在刚装好系统情况下,一般不会出现记录为空或者不能正常记录的问题,但是经常安装更新是Ubuntu特点之一,而且我的强迫症已经越发犀利。
每次登录都提示有可用更新,就忍不住apt-get upgrade。
原本打算在美国的VPS上装GitLab玩下,可是安装的时候提示需要14.04版本(好像是),OK~
系统升级上去后再告诉我需要64位才能安装,英语不好是硬伤,不看文档的祸。
由原来12.10升级到14.04后就出现认证日志没有正常记录的问题,这应该算是比较重要的日志。
So,开始解决问题。
系统一般都自带syslog(syslogd)服务,在搜索了很关键词后大多都提到”rsyslog”,至于如何令系统自带的日志服务重新工作起来的方法还没找到。
既然自带的不能工作,不如装上”rsyslog”耍下,Ubuntu下装软件有多方便就不详细说安装过程了,重点是如何去配置。
配置文件在/etc/rsyslog.conf
配置内容就不上了,保持默认即可,有问题再来改(关键是不知所云)
在最后一处有段
又是引用,不过这的确很方便管理类多套配置。
接着进入到他说的目录/etc/rsyslog.d,或许你的会有很多个配置文件,也可能只有一个,这个无关紧要。
如图所示,服务器上只有一个配置文件,省得到处乱找。
打开那货50-default.conf
图就不上了,当时我就震惊,格式跟syslog.conf一模一样,好评。
接下来就容易多,把需要记录的日志前的“#”去掉,再把日志路径的“-”去掉。
#cron.* -/var/log/cron.log修改成
cron.* /var/log/cron.log同样,也可以把不需要的日志信息注释掉,默认情况下auth.log记录是开启的,所以我只需要启动或者重启rsyslog。
service rsyslog restart过一段时间后查看/etc/auth.log,里面包含了很多认证操作信息。
目前我们真实需要的是认证失败的记录,方便拉黑,你懂的~
Ending
作为一名程旭媛,定时监控自动屏蔽某些IP这些操作必须交给程序来做,例如Fail2Ban、DenyHosts,关于这两个怎么用日后再说。
日志丢失这个问题目前还没遇到,不过也会引起CPU占用100%。
若出现日志丢失,那么一般会在/var/log/message,反正跑不远,肯定在log文件夹下,耐性找找。
提示信息如下:
rsyslogd-2177: imuxsock begins to drop messages from pid 17131 due to rate-limiting
官方也有解释文档,不过是通过限制一段时间内写入日志数量来解决。 How to use rate limiting in rsyslog?
在/etc/rsyslog.conf中增加任意位置增加下面两句
# 60秒内 $SystemLogRateLimitInterval 60 #最多累计插入3000条日志 $SystemLogRateLimitBurst 3000
最后重启rsyslog即可,如果还不行,那我也不清楚了