ELK+kafka集成
1、因为本项目采用的log4j2,所以在log4j2中直接配置
<Kafka name="Kafka" topic="XX_log"> <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss}||%p||%c{1}||XX_web||%m%n"/> <Property name="bootstrap.servers">127.0.0.1:9092</Property> <Property name="timeout.ms">500</Property> </Kafka>
PatternLayout 中格式采用了||将内容连接起来目的为了logstash进行切分,其中增加timeout.ms属性为了保证日志系统挂掉的情况不会对业务系统产生较大影响,当然kafka可以采用集群的方式,bootstrap.servers多个地址用“,”分隔。XX_web代表当前业务平台。
2、搭建kafka集群这里就不多介绍了官网很全,
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
3、创建logstash动态模板
{ "template": "*", "settings": { "index.refresh_interval": "5s", "number_of_replicas": "0", "number_of_shards": "3" }, "mappings": { "_default_": { "_all": { "enabled": false }, "dynamic_templates": [ { "message_field": { "match": "message", "match_mapping_type": "string", "mapping": { "type": "string", "index": "analyzed" } } }, { "string_fields": { "match": "*", "match_mapping_type": "string", "mapping": { "type": "string", "index": "not_analyzed" } } } ], "properties": { "dateTime": { "type": "date", "format": "yyy-MM-dd HH:mm:ss" }, "@version": { "type": "integer", "index": "not_analyzed" }, "context": { "type": "string", "index": "analyzed" }, "level": { "type": "string", "index": "not_analyzed" }, "class": { "type": "string", "index": "not_analyzed" }, "server": { "type": "string", "index": "not_analyzed" } } } } }
4、配置logstash
input{ kafka { zk_connect =>"127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183" group_id =>"logstash" topic_id =>"XX_log" reset_beginning => false consumer_threads => 5 decorate_events => true } } filter { mutate{ split=>["message","||"] add_field => { "dateTime" => "%{[message][0]}" } add_field => { "level" => "%{[message][1]}" } add_field => { "class" => "%{[message][2]}" } add_field => { "server" => "%{[message][3]}" } add_field => { "context" => "%{[message][4]}" } remove_field => ["message"] } date { match => ["logdate", "yyyy-MM-dd HH:mm:ss"] } } output{ elasticsearch { hosts => ["127.0.0.1:9200"] index => "XX_log-%{+YYYY-MM}" codec => "json" manage_template => true template_overwrite => true flush_size => 50000 idle_flush_time => 10 workers => 2 template => "E:\logstash\template\template_log.json" } }
按照年月将日志保存进ES索引中index => "XX_log-%{+YYYY-MM}",logstash从kafka集群中读取日志信息。
5、搭建ZK集群,这里就不多介绍了,网上资料比较多
6、搭建ES集群,ES集群比较简单,设置的参数不要太多就可以使用。
7、配置kibana
server.port: 5601 # 服务端口 # The host to bind the server to. server.host: "115.28.240.113" elasticsearch.url: http://127.0.0.1:9200 ES地址-集群 kibana.index: "kibana"
8、版本 JKD 1.7 ES-2.4, logstash 2.4, kafka-2.10,kibana-4.6.4
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
搭建Hadoop处理环境,零基础学习大数据
由于Hadoop需要运行在Linux环境中,而且是分布式的,因此个人学习只能装虚拟机,本文都以VMware Workstation为准,安装CentOS7,具体的安装此处不作过多介绍,只作需要用到的知识介绍。 VMware的安装,装好一个虚拟机后利用复制虚拟机的方式创建后面几个虚拟机,省时省力,需要注意的是需要修改每个虚拟机的IP与主机名。 所有虚拟机采用NAT模式上网,而且要保证与物理主机的IP互相能访问。 需要注意的几个问题。nat如果上网首先需要查看物理机(pc机)这个服务器已经启动。上网的原理:流量是走的物理网卡,但是它的ip,却是和物理机没有关系的。也就是说,无论你怎么更换网络环境,你的虚拟机都不需要做改变。这就是它的优点。 首先在安装VMware 之后,我们会看到多了两个网卡 这个如果经过网络配置的折磨,应该能找到着两个网卡:vmnet1和vmnet8,这里讲的是vmnet8。 重点看右侧第三图你会看到ip地址,这个ip地址,因个人而异,也就是说不同网络,不同环境,这个ip变化的概率是很大的。可能是192.168.0.1等等。这里也相当于我们编程的一个变量,这里是需要你根据...
- 下一篇
MySQL分布式集群搭建
1、准备集群搭建环境 使用6台虚拟机来搭建MySQL分布式集群,相应的实验环境与对应的MySQL节点之间的对应关系如下图所示: 管理节点(MGM):这类节点的作用是管理MySQLCluster内的其他节点,如提供配置数据,并停止节点,运行备份等。由于这类节点负责管理其他节点的配置,应该在启动其他节点之前启动这类节点。MGM节点是用命令“ndb_mgmd”启动的; 数据节点(NDB):这类节点用于保存Cluster的数据,数据节点的数目与副本的数目相关,是片段的倍数。例如,对于两个副本,每个副本有两个片段,那么就有4个数据节点,没有必要设定过多的副本,在NDB中数据会尽量的保存在内存中。数据节点使用命令“ndb”启动的; SQL节点:这是用来访问Cluster数据的节点,对于MySQL Cluster,客户端节点是使用NDB Cluster存储引擎的传统MySQL服务器。通常,SQL节点使用命令“mysqld-ndbcluster”启动的; 2、准备安装包 在官网上下载mysql的安装包: mysql-cluster-gpl-7.4.11-Linux-glibc2.5-x86_64.ta...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS关闭SELinux安全模块
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题