rsyslog
- 日志类型
auth :(authpriv) 主要与认证有关的机制,例如 login, ssh, su 等需要帐号/密码的咚咚; cron: 就是例行性工作排程 cron/at 等产生讯息记录的地方; daemon: 与各个 daemon 有关的讯息; kern: 就是核心 (kernel) 产生讯息的地方; lpr: 亦即是列印相关的讯息啊! mail: 只要与邮件收发有关的讯息纪录都属于这个; news: 与新闻群组伺服器有关的东西; syslog: 就是 syslogd 这支程式本身产生的资讯啊! user, uucp, local0 ~ local7 与 Unix like 机器本身有关的一些讯息。
-
日志等级
debug:调试信息 info: notice warning err crit alert emerg * :所有日志等级的信息 .none :忽略日志服务,不记录
-
rsyslog.conf
*.info;mail.none;authpriv.none;cron.none /var/log/messages #除了mail、authpriv、cron之外的任何服务产生日志等级为info的信息都记录在message之内 authpriv.* /var/log/secure #authpriv服务发生的任何等级的日志都记录在secure中 mail.* -/var/log/maillog #同理,是Mail服务发生的日志都记录在maillog中 $ModLoad ommysql #引用mysql模块 mail.* :ommysql:localhost,Syslog,rsyslog,password #将mail的任何信息记入:本地mysql中的Syslog库中,用户为rsyslog,密码为:password
-
赋值方法
. :代表大于等于指定的等级的日志会记录到指定的日志里面 .= :代表日志等级等于指定的等级会记录 .! :除了指定等级之外的日志会被记录
logrotate
- 关于logrotate
- 程序:/usr/sbin/logrotate
- 配置:/etc/logrotate.conf 和/etc/logrotate.d/
crontab 耦合: /etc/cron.daily/logrotate
-
logrotate.conf
#每个礼拜滚一次 weekly #保留4个档,比如第5次更替,那第一次的就没了 rotate 4 #建立新的日志来继续存储 create # 将日期作为轮替日志的结尾,比如:maillog-20160701 dateext # 是否压缩日志,压缩工具gzip,比如:maillog-20160701.gz compress # 子配置文件的包含目录 include /etc/logrotate.d /var/log/wtmp { monthly create 0664 root utmp minsize 1M rotate 1 }
-
logrotate.d/*
/var/log/maillog { daily #每天执行 rotate 7 #保留7份轮替日志 dateext #以日期作为轮替日志的标识 create #创建新文件 minsize 1G #日志最小1G,不到1G不轮替 postrotate #在启动logrotate前,执行下面的动作 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true /bin/kill -HUP `cat /var/run/fail2ban/fail2ban.pid 2> /dev/null` 2> /dev/null || true endscript #结束脚本 compress #压缩 }
- 手动日志轮替命令
$ /usr/sbin/logrotate /etc/logrotate.conf
cron、rsyslog、logratate 之间的关系
- rsyslog:负责将产生的日志分类,打到各个日志文件中
- logrotate:负责切割日志
- crontab:定时任务在/etc/下面有 cron.hourly cron.daily cron.weekly cron.monthly 等目录,在对应目录下的程序,会按其给定的时间执行一次,比如cron.daily下的程序会每天都执行一次。
/etc/cron.daily/logrotate:
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0