rsyslog服务和logrotate服务
======================================================================
rsyslog 是一个 syslogd 的多线程增强版。
现在Fedora和Ubuntu, rhel6默认的日志系统都是rsyslog了
rsyslog负责写入日志, logrotate负责备份和删除旧日志, 以及更新日志文件
———————————————————————-
rsyslog 服务
———————————————————————-
软件包:
[root@centos ~]# yum install rsyslog rsyslog-mysql logrotate
查看当前rsyslog服务的状态:
[root@centos ~]#/etc/init.d/rsyslog status
rsyslogd (pid 1343) is running…
在centos6中, rsyslog服务默认是开机启动的
我们先看一下它的进程::
[root@centos ~]# ps -ef | grep rsyslogd | grep -v grep
root 1343 1 0 12:09 ? 00:00:00 /sbin/rsyslogd -c 4
从上面命令的输出结果看到rsyslog执行时使用的参数是-c 4.
它的意思是指定rsyslog运行(兼容)的版本号, 这个参数必须是第一个参数, 当然也可以省略, 默认为-c0, (命令行兼容sysklogd)
这个参数是在文件/etc/sysconfig/rsyslog中指定::
[root@centos ~]# cat /etc/sysconfig/rsyslog
# Options to syslogd
# syslogd options are deprecated since rsyslog v3
# if you want to use them, switch to compatibility mode 2 by “-c 2″
SYSLOGD_OPTIONS=”-c 4″
[root@centos ~]# chkconfig –list | grep rsyslog
rsyslog 0:off 1:off 2:on 3:on 4:on 5:on 6:off
注意,这里的服务名是rsyslog!
———————————————————————-
配置文件
———————————————————————-
/etc/rsyslog.conf
配置文件的基本信息
配置文件中有很多内容, 但最主要的是指定需要记录哪些服务和需要记录什么等级的信息::
cat /etc/rsyslog.conf
#rsyslog v3 config file
# if you experience problems, check
# http://www.rsyslog.com/troubleshoot for assistance
#### MODULES #### 加载 模块
$ModLoad imuxsock.so –> 模块名 # provides support for local system logging (e.g. via logger command) 本地系统日志
$ModLoad imklog.so # provides kernel logging support (previously done by rklogd)
#$ModLoad immark.so # provides –MARK– message capability
# Provides UDP syslog reception
# 允许514端口接收使用UDP协议转发过来的日志
#$ModLoad imudp.so
#$UDPServerRun 514
# Provides TCP syslog reception
# 允许514端口接收使用TCP协议转发过来的日志
#$ModLoad imtcp.so
#$InputTCPServerRun 514
#### GLOBAL DIRECTIVES ####
定义日志格式默认模板
# Use default timestamp format
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# File syncing capability is disabled by default. This feature is usually not required,
# not useful and an extreme performance hit
#$ActionFileEnableSync on
#### RULES ####
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console 关于内核的所有日志都放到/dev/console(控制台)
# Log anything (except mail) of level info or higher.
# Don’t log private authentication messages!
# 记录所有日志类型的info级别以及大于info级别的信息到/var/log/messages,但是mail邮件信息,authpriv验证方面的信息和cron时间任务相关的信息除外
*.info;mail.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
# authpriv验证相关的所有信息存放在/var/log/secure
authpriv.* /var/log/secure
# Log all the mail messages in one place.
# 邮件的所有信息存放在/var/log/maillog; 这里有一个-符号, 表示是使用异步的方式记录, 因为日志一般会比较大
mail.* -/var/log/maillog
# Log cron stuff
# 计划任务有关的信息存放在/var/log/cron
cron.* /var/log/cron
# Everybody gets emergency messages
# 记录所有的大于等于emerg级别信息, 以wall方式发送给每个登录到系统的人
*.emerg * *代表所有在线用户
# Save news errors of level crit and higher in a special file.
# 记录uucp,news.crit等存放在/var/log/spooler
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log 启动的相关信息
local7.* /var/log/boot.log
#:rawmsg, contains, “sdns_log” @@192.168.56.7:10514
#:rawmsg, contains, “sdns_log” ~
# ### begin forwarding rule ### 转发规则
# The statement between the begin … end define a SINGLE forwarding
# rule. They belong together, do NOT split them. I