美文网首页Elasticsearch Java技术升华我爱编程
elk+filebeat+kafka分布式日志管理平台搭建

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

作者: wangjl_jimmy | 来源:发表于2018-03-30 09:32 被阅读1780次

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

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

    (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.该平台的搭建是比较简便的方式,大家可以更加灵活以及动态的配置该平台。

    相关文章

      网友评论

      • liaomufeng:不错。我采用的是跟楼主是一样的架构。不过我用docker部署
      • 天夭夭:楼主,elk还有在收集什么日志呢?
        liaomufeng:@天夭夭 系统日志、tomcat、nginx、数据库、info、error等等,基本能想到的,都可以集中管理

      本文标题:elk+filebeat+kafka分布式日志管理平台搭建

      本文链接:https://www.haomeiwen.com/subject/fzqvcftx.html