项目需要将日志收集起来做存储分析,数据的流向为rsyslog(收集) -> kafka(消息队列) -> logstash(清理) -> es、hdfs; 今天我们先将如何利用rsyslog进行日志收集到kafka。
一、环境准备
通过对 rsyslog官方文档 查看,得知 rsyslog对 kafka的支持是 v8.7.0版本后才提供的支持.通过 ChangeLog 也可以看出 V8.X的版本变化.
最新V8稳定版已经提供RPM包的Rsyslog-kafka插件了,直接yum安装即可,添加yum源:
[rsyslog_v8]
name=Adiscon CentOS-$releasever - local packages for $basearch
baseurl=http://rpms.adiscon.com/v8-stable/epel-$releasever/$basearch
enabled=1
gpgcheck=0
gpgkey=http://rpms.adiscon.com/RPM-GPG-KEY-Adiscon
protect=1
添加后 yum install rsyslog rsyslog-kafka.x86_64即可完成安装。
二、配置
1. 处理原则
input submit received messages to rulesets, zero or many
ruleset contains rule, rule consist of a filter and an action list
actions consist of the action call itself (e.g. ”:omusrmsg:”) as well as all action-defining configuration statements ($Action... directives)
通常利用RainerScript type statements进行非常简洁明了的配置声明,例如:
mail.info /var/log/mail.log
3. 流程控制
过滤条件Selector: 传统方式,格式如下:
[,facility...][,*].[=,!][,priority...][,*];[,facility...][,*].[=|!][,priority...][,*]...