rsyslog对接kafka
对于日志收集统计分析方案现在主流的有ELK redis kafka flume +大数据平台,ELK我们以后再介绍,这里先简单介绍下rsyslog对接kafka
kafka中的术语
Broker
Kafka集群包含一个或多个服务器,这种服务器被称为broker
Topic
每条发布到Kafka集群的消息都有一个类别,这个类别被称为Topic。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
Partition
Parition是物理上的概念,每个Topic包含一个或多个Partition.
Producer
负责发布消息到Kafka broker
Consumer
消息消费者,向Kafka broker读取消息的客户端。
Consumer Group
每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
kafka架构
下载kafka_2.10-0.10.1.0.tgz 解压,这里我们搞个单机测试,不做kafka集群
[root@k8snode1 kafka_2.10-0.10.1.0]# ls
bin config libs LICENSE logs NOTICE site-docs
./bin/zookeeper-server-start.sh zookeeper.properties 先启动zookeeper 新建一个名字叫test_nginx的topic: bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test_nginx 查看当前存在的topic: bin/kafka-topics.sh --list --zookeeper localhost:2181 [root@k8snode1 kafka_2.10-0.10.1.0]# ./bin/kafka-server-start.sh config/server.properties > /dev/null 2>&1 & 启动kafka [root@k8snode1 kafka_2.10-0.10.1.0]# bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test_nginx 创建生产者 [root@k8snode1 kafka_2.10-0.10.1.0]# bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test_nginx --from-beginning 创建消费者
查看启动情况
在生产者输入 命令测试,
在消费者端观察看是否有输出
这说明我们的kafka环境构建好了
通过对 rsyslog官方文档 查看,得知 rsyslog对 kafka的支持是 v8.7.0版本后才提供的支持.通过 ChangeLog 也可以看出 V8.X的版本变化.
http://www.rsyslog.com/doc/v8-stable/configuration/modules/omkafka.html
最新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 -y rsyslog rsyslog-kafka
[root@k8snode1 yum.repos.d]# rpm -ql rsyslog-kafka
/lib64/rsyslog/omkafka.so #rsyslog 连接 kafka的插件
[root@k8snode1 rsyslog.d]# rsyslogd -N1
rsyslogd: version 8.24.0, config validation run (level 1), master config /etc/rsyslog.conf
[root@k8snode1 rsyslog.d]# pwd /etc/rsyslog.d [root@k8snode1 rsyslog.d]# cat nginx_test.conf #加载omkafka和imfile模块 module(load="omkafka") module(load="imuxsock") # push to kafka action(type="omkafka" topic="test_nginx" broker="localhost:9092") # 定义消息来源及设置相关的action这是直接 这是直接收集rsyslog日志,假如是应用程序产生的日志可以先写入文件,rsyslog在从文件读取日志 [root@k8snode1 rsyslog.d]# cat nginx_kafka.conf #加载omkafka和imfile模块 module(load="omkafka") module(load="imfile") # nginx template template(name="nginxAccessTemplate" type="string" string="%hostname%<-+>%syslogtag%<-+>%msg%\n") # ruleset ruleset(name="nginx-kafka") { #日志转发kafka action ( type="omkafka" template="nginxAccessTemplate" confParam=["compression.codec=snappy", "queue.buffering.max.messages=400000"] partitions.number="4" topic="test_nginx" broker="localhost:9092" queue.spoolDirectory="/tmp" queue.filename="test_nginx_kafka" queue.size="360000" queue.maxdiskspace="2G" queue.highwatermark="216000" queue.discardmark="350000" queue.type="LinkedList" queue.dequeuebatchsize="4096" queue.timeoutenqueue="0" queue.maxfilesize="10M" queue.saveonshutdown="on" queue.workerThreads="4" ) } # 定义消息来源及设置相关的action input(type="imfile" Tag="nginx,aws" File="/usr/local/nginx/logs/access.log" Ruleset="nginx-kafka") 重启rsyslog,并往rsylog写入数据测试 [root@k8snode1 rsyslog.d]# logger 'hello world123' [root@k8snode1 rsyslog.d]# logger 'hello world1' [root@k8snode1 rsyslog.d]# logger 'hello world2' [root@k8snode1 rsyslog.d]# logger 'hello world3' 观察kafka消费者,可以看到已经有输出了,说明rsyslog对接kafka成功 2017-02-13T10:07:56.711023+08:00 k8snode1 root: hello world123 2017-02-13T10:08:05.687581+08:00 k8snode1 root: hello world1 2017-02-13T10:08:07.877318+08:00 k8snode1 root: hello world2 2017-02-13T10:08:09.757482+08:00 k8snode1 root: hello world3

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Nginx+tomcat session cluster会话保持实验
Nginx+tomcat session cluster会话保持实验 实验要求: 1、nginx+tomcat 负载均衡 2、会话保持 实验拓扑 ip网络规划 Nginxnode2:172.16.76.20 tomcatAnode3:172.16.76.30 tomcatBnode4:172.16.76.40 基础配置 node2: [root@node2~]# yum install nginx –y node3: [root@node3~]#yuminstalltomcat–y [root@node3~]#cd/var/lib/tomcat/webapps/ [root@node3webapps]#mkdir-pvtest/{claess,lib,WEB-INF [root@node3webapps]#vimtest/index.jsp <%@pagelanguage="java"%> <html> <head><title>TomcatA</title></head> <body&g...
-
下一篇
主流区块链技术特点及Fabric V0.6&V1.0版本特点
声明:文章内容来源于网络。 一、主流区块链技术特点 二、Hyperledger的fabric V0.6总体架构: 对应的0.6版本的运行时架构: 0.6版本的架构特点是: 结构简单: 应用-成员管理-Peer的三角形关系,主要业务功能全部集中于Peer节点; 架构问题:由于peer节点承担了太多的功能,所以带来扩展性、可维护性、安全性、业务隔离等方面的诸多问题,所以0.6版本在推出后,并没有大规模被行业使用,只是在一些零星的案例中进行业务验证; 三、Hyperledger的fabric V1.0 最新的1.0运行时架构: 1.0 架构要点: 分拆Peer的功能,将Blockchain的数据维护和共识服务进行分离,共识服务从Peer节点中完全分离出来,独立为Orderer节点提供共识服务; 基于新的架构,实现多通道(channel)的结构,实现了更为灵活的业务适应性(业务隔离、安全性等方面) 支持更强的配置功能和策略管理功能,进一步增强系统的灵活性和适应性; 1.0版本架构目标: 1、chaincode信任的灵活性:支持多个ordering服务节点,增强共识的容错能力和对抗ord...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker容器配置,解决镜像无法拉取问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- MySQL8.0.19开启GTID主从同步CentOS8
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Hadoop3单机部署,实现最简伪集群
- CentOS8编译安装MySQL8.0.19