日志文件包含系统相关信息的文件,包括内核,服务和运行在上面的程序的信息。不同的日志文件对应不同的信息。默认的系统日志文件只是包含安全信息,crond就使用另外一个日志文件。
一些日志文件是由rsyslogd来控制的。rsyslog是增强的多线程syslog,用来代替syslog。
1. 配置rsyslog
rsyslog的主要配置文件是 /etc/rsyslog.conf, 它包含了全局指令,规则或注释。
1 全局指令
$MainMsgQueueSize 50000
这个指令指定了rsyslog最大可以rsyslog 消息队列的最大上限,默认为10000
模块
因为是模块化设计,rsyslog提供了一系列的模块供我们使用。
$ModLoad
rsyslog提供的模块:
Input Modules -------Input modules从各种源来收集信息,一个Input Module总是以im为前缀,想 imfile,imrepl等
Output Modules -------Output modules提供设备,这样就可以实现存储目标的多样化,像通过网络存储,把信息存储到数据库或者是加密它们。一个output module总是以om为 前缀
Filter Modules --------FilterModules可以根据指定的规则来过滤信息,一个过滤模块总是以fm为前缀
Parser Modules -------- Parser Modules使用消息解析器来解析接受到的任何消息内容,一个解析模块总是以pm为前缀
Message Modification modules -------消息修改模块改变rsyslog消息的内容。消息修改模块是指在部署上与Output modules和Filter Modules不同,它们共享一个接口
String Generator Modules ----- 字符串生成器模块根据消息内容生成内容,并与rsyslog提供的模板特性一起工作
Library Modules ----- 库模板一般向其它加载的模块提供功能。
2.规则
一个规则是由过滤部分指定的,它选择rsyslog消息的一个子集,然后由动作部分来处理我们想要对这部分消息子集的操作,我们可以在rsyslog.conf里定义规则和动作
2.1 Facility/Priority-based filters
Facility: auth authpriv cron daemon kern lpr mail news syslog user uucp 和 local0~local7
Priority: debug info notice warning err crit alert emerg
auth.=info 是指 auth的info信息,其它都不包括
auth.!info,!debug 是指除info和debug外都记录
auth.info 是指记录info及比它更高的信息
2.2 Property-based filters
基于属性的比较操作
比较 描述
contains 检查提供的字符串是否匹配任何由属性提供的文本
isequal 比较提供的字符串和和由属性提供的文本
startswitch 检查提供的字符串是否匹配由属性提供的文本前缀
regex 比较提供的Posix 基本正则表达式和由属性提供的文本
ereregex 比较提供的Posix 扩展正则表达式和由属性提供的文本
:msg, contains, "error"
:hostname, isequal, "host1"
:msg, !regex, "fatal .* error"
2.3 基于表达式的过滤
还在研究
2.4 基于BSD-style blocks
2.5 动作
cron.info /var/log/crond.log
3. 通过网络发送log日志信息
格式: @[(option)]
一个@表示使用udp协议
两个@表示使用tcp协议
*.* @192.168.1.10
*.* @@192.168.1.10:1880
kern.* @(z9)192.168.1.10
z9表示使用zlib的第9等级进行压缩
4.将日志发送给用户
mail.err root,sam
mail.err *
*表示发送给所有当前登录的用户
5.丢弃日志信息
cron.* ~
在一个选择条件下执行多个动作
cron.=err sam
& @192.168.1.10
& /var/log/cron_err.log
6.自定义日志模板
格式:
$template