Rsyslog 连接 Kafka 指北

2018-05-22 15:20:48
运行环境
1
2
3
4
5
6
[root@bogon ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)

[root@bogon ~]# rpm -qa|grep rsyslog
rsyslog-kafka-8.28.0-1.el7.x86_64
rsyslog-8.28.0-1.el7.x86_64
安装
1
2
wget -O /etc/yum.repos.d/rsyslog.repo http://rpms.adiscon.com/v8-stable/rsyslog.repo
yum install rsyslog rsyslog-kafka.x86_64

国内的同学可能无法安装,同学们也可以通过这里下载安装

配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@bogon ~]# cat /etc/rsyslog.d/kafka.conf
module(load="omkafka")
action (
type="omkafka"
topic="topicA"
broker="cdh1:9092,cdh2:9092,cdh3:9092"
)


#如果保存到本地
[root@bogon ~]# cat /etc/rsyslog.d/router.conf
template (name="DynFile" type="string" string="/data/%fromhost-ip%.log")
if $fromhost-ip startswith '192.168.100.2' and $programname != 'Type=SESSION;' and $programname != 'Type=Login;' and $programname != 'Type=AuthLog;' and $programname != 'Type=Ftp' then {
action(type="omfile" dynaFile="DynFile")
stop
}

低版本的rsyslog保存到本地配置如下

1
2
3
4
5
6
7
8
[root@localhost ~]# rpm -qa|grep rsyslog
rsyslog-5.8.10-6.el6.x86_64

添加到 /etc/rsyslog.conf
#### GLOBAL DIRECTIVES ####
$template RemoteLogs,"/data/var/log/%HOSTNAME%/%fromhost-ip%_%$YEAR%-%$MONTH%-%$DAY%.log" *
*.* ?RemoteLogs
&~

通过kafka查看消息

1
cd /usr/local/kafka&& bin/kafka-console-consumer.sh  --bootstrap-server cdh1:9092,cdh2:9092,cdh3:9092   --topic topicA

ref
Rsyslog
Rsyslog 连接 Kafka 指南
How to call template so rsyslog 8 creates one log file per client
DailyLogRotation
CentOS7 rsyslog +loganalyzer配置


您的鼓励是我写作最大的动力

俗话说,投资效率是最好的投资。 如果您感觉我的文章质量不错,读后收获很大,预计能为您提高 10% 的工作效率,不妨小额捐助我一下,让我有动力继续写出更多好文章。