Elasticsearch Java技术升华我爱编程

elk+filebeat+kafka分布式日志管理平台搭建

2018-03-30  本文已影响1780人  wangjl_jimmy

一.先描述一下使用这种框架搭建平台的工作流程。

二.对上面的工作流程进行简单描述。

(1)将filebeat部署到需要采集日志的服务器上,filebeat将采集到的日志数据传输到kafka中。

(2)kafka将获取到的日志信息存储起来,并且作为输入(input)传输给logstash。

(3)logstash将kafka中的数据作为输入,并且把kafka中的数据进行过滤等其他操作,然后把操作后得到的数据输入(output)到es(elasticsearch)中。

 (4)es(基于lucene搜索引擎)对logstash中的数据进行处理,并且将数据作为输入传送给kibna进行显示。

三.部署该平台需要的软件,本次部署使用的软件及版本如下:

  (1)  elasticsearch-6.1.3.tar.gz

(2)filebeat-6.1.3-linux-x86_64.tar.gz

(3)kibana-6.1.3-linux-x86_64.tar.gz

(4)logstash-6.2.3.tar.gz

(5)kafka_2.12-1.0.0.tgz

以上软件可以到elasticsearch官网下载需要的软件:

https://www.elastic.co/cn/products

四.安装以及配置各软件。

(1)elasticsearch安装配置

          1.首先解压elasticsearch-6.1.3.tar.gz

             tar -zxvf elasticsearch-6.1.3.tar.gz

          2.修改config/elasticsearch.yml配置文件

            将配置中的network.host修改为本机的ip地址,配置配置自己的端口号

           3.启动elasticsearch(启动该软件不能使用root用户,需要普通用户,可以新建普通用户,将 目录的权限都赋予给该新用户)

               nohup bin/elasticsearch &

               验证是否启动成功:

(2)kibana安装配置:

          vim config/kibana.yml

          具体配置如下(根据自己的ip以及端口情况进行配置)

       启动kibana: nohup bin/kibana &

       在浏览器中验证是否启动成功:

(3)kafka安装与配置:

    请参考http://blog.51cto.com/xiangcun168/1933375

(4)logstash安装与配置:

在logstash安装软件中新建test.conf配置文件。

配置如下,该配置中没有加过滤器filter

上述配置说明如下:

topics后面的test和logstash-tomcat表示从kafka中topic为test与logstash-tomcat的主题中获取数据,此处的配置根据自己的具体情况去配置。

bootstrap_servers表示配置kafka的ip与端口。

output配置中的hosts表示elasticsearch的ip和端口好,index的配置是用于后面在kibana中配置index使用。

启动logstash:nohup bin/logstash -f test.conf &

(5)filebeat安装与配置:

修改filebeat的配置文件filebeat.yml

paths后的值表示从/home/elk/log/access.log中获取数据,tags表示日志标签,在后面的kibna中查看数据时可以找到该tag标签,并且可以根据该tag标签查找过滤查找数据。

添加kafka输出的配置,将elasticsearch输出配置注释掉。hosts表示kafka的ip和端口号,topic表示filebeat将数据输出到topic为test的主题下,此处也根据自己情况修改。

启动filebeat: nohup ./filebeat -c filebeat.yml &

(6)在kibana操作:

以上平台都搭建好以后在kibana上创建index索引,该index索引和logstash配置中的output中的index对应。

该index名称要和logstash配置中的index正则匹配,否则新增不了。

验证搭建的平台,日志数据是否能正常获取及显示。在filebeat配置文件中paths对应的目录下新增access.log文件,并且添加数据进去,然后在kibana上查看数据是否正常显示。

点开任何一条数据可以查看详细情况:

截图中的tags即表示filebeat中配置文件中的tags配置,可以将tags作为filter过滤条件进行查询。

在分布式系统中,可以将某一类服务器日志归为一个tag,这样在查询日志时可以减小查询的区域。

说明:

1.在部署的过程中可能会遇到各种情况,此时根据日志说明都可以百度处理(如部署的过程中不能分配内存的问题)。

2.如果完成后如果数据显示不了,可以先到根据工作流程到各个节点查询数据是否存储和传输成功。如查询filebeat是否成功把数据传输到了kafka,可以使用kafka中如下命令查询:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic test --from-beginning

查看日志filebeat中的数据是否正常在kafka中存储。

在filebeat配置的日志中手动添加日志: echo "test" > access.log,可以在kafka中动态的显示出该信息

3.该平台的搭建是比较简便的方式,大家可以更加灵活以及动态的配置该平台。

上一篇下一篇

猜你喜欢

热点阅读