Chinaunix首页 | 论坛 | 博客
  • 博客访问: 362884
  • 博文数量: 36
  • 博客积分: 570
  • 博客等级: 中士
  • 技术积分: 1042
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-08 20:53
文章分类
文章存档

2015年(1)

2014年(1)

2013年(14)

2012年(10)

2011年(10)

分类: LINUX

2013-08-29 12:08:52

最近在看linux日志相关的资料,看完了留个脚印在这儿

日志文件包含系统相关信息的文件,包括内核,服务和运行在上面的程序的信息。不同的日志文件对应不同的信息。默认的系统日志文件只是包含安全信息,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 , "text %% more text" [
阅读(3520) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~