安装
源码
- 下载
- 构建环境最低要求
C compiler (usually gcc) make libtool rst2man (part of Python docutils) if you want to generate the man files Bison and Flex (preferably, otherwise yacc and lex) zlib development package (usually libz-dev) json-c (usually named libjson0-dev or similar) libuuid (usually uuid-dev, if not present use –disable-uuid) libgcrypt (usually libgcrypt-dev)
- 配置
# Enable MySQL support ./configure --enable-mysql
YUM
- yum
yum install rsyslog rsyslog-mysql
配置
- 主配置文件:syslog.conf【设施.级别 指令】
#语法规则 1.每条规则包含两个域,一个选择器,一个操作指令。 2.两个域由一个或多个空格、tab 分割。 #选择器 3.选择器同样由两部分组成:设施、级别,以英文句号分割(两个都不区分大小写) 3.1.设施 包括:auth、authpriv、cron、daemon、ftp、kern、lpr、mail、mark、news、syslog、user、uucp、local0 到 local7。 3.1.1.级别包括:debug、info、notice、crit、alert、emerg(其他几个弃用了)。 3.1.2.可以在一个规则中使用“逗号”同时指定多个“设施”。 3.2.级别 3.2.1.忽略某个级别和更高级别,在级别前边带上感叹号“!”。 3.2.2.级别的前面带上等号“=”,指定仅仅该级别,而不是模糊定义。 3.2.3.优先级的前面带上等号“=”,指定仅仅该级别,而不是模糊定义。 3.2.4.同时使用,必须是“!=”,表示:仅忽略单个级别。 3.3.多个“选择器”可以共用一个“操作指令”,由英文分号分隔。(从左到右处理,允许覆盖前边的)。 #操作指令 4.操作指令描述的是“日志文件”(不一定是真实文件) 4.1.常规文件 建议使用绝对路径名 4.2.命名管道 4.3.终端 /dev/console 4.4.远程主机 使用 @ 开头,指定目标 4.5.用户列表 用逗号分隔可以指定多个用户,用户登录系统就会收到日志信息。 4.6.所有登录用户 *
- 例子:过滤掉内核日志
*.=crit;kern.none /var/adm/critical
- 例子:内核日志
#指定任何内核信息定向到 kernel 文件 kern.* /var/adm/kernel #定向 crit(或高于该级别)的信息到远程主机 finlandia kern.crit @finlandia #定向到控制台,可以直接看 kern.crit /dev/console #从“信息”到“警告”级别的定向到 kernel-info kern.info;kern.!err /var/adm/kernel-info
- 例子:所有的“紧急消息 ”写入当前登录的用户
*.=emerg *
例子:所有“紧急消息”发给所有当前登录的用户*.=emerg :omusrmsg:*
- 例子:所有消息发送到远程主机
#@指定远程主机,使用udp协议传输数据 *.* @server.example.net #带端口 *.* @server.example.net:1514 # @ :udp # @@:tcp #使用tcp协议传输数据 *.* @@server.example.net:1514
- 例子:写入数据库
*.* >dbhost,dbname,dbuser,dbpassword;dbtemplate
- 例子:包含“error”的信息发送到主机
:msg,contains,"error" @server.example.net
rsyslog