日志收集到kibana分为3步,第一步收集,第二步存储,第三步展示
本文第一步收集采用的是 filebeat,当然也有别的方式,常见的比如log-stash,之所以用filebeat是因为它占用内存资源少,10m就差不多了;
第二步存储是采用es;
第三步展示是使用kibana;
整体就是这样,整个流程如图一所示,描述为 filebeat先从机器上收集指定目录指定文件日志(需要在每个机器上安装filebeat),然后发送到kafka消息队列中,spark读取kafka数据流,以指定格式写入到es中(源码在log-steaming simplifed分支中),kibana到es中去拉取日志展示到前端。
图一 日志收集数据流程1、filebeat 安装和配置:
本文安装的是6.3.2版本,更高的版本配置是不一样的,需要pe权限,用原生的filebeat就可以了,不用增强的
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-linux-x86_64.tar.gz或者
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.3.2-linux-x86_64.tar.gz
tar xzvf filebeat-6.3.2-linux-x86_64.tar.gz
配置 解压目录下的filebeat.yml 文件,具体配置就不贴了,有敏感信息,可以网络上自己搜搜看,挺多的,特别注意的是不同版本的配置是不一样的;
./filebeat -c filebeat.yml -e 前台启动,注意如果下线关闭了窗口 是会关闭filebeat进程的
启动之后,如果配置没问题的话就会把数据输出到kafka了,之后验证kafka中的数据和自己配置的对不对。
2、kafka数据验证:
找一台安装了kafka的机器,采用kafka自带的kafka-console-comsumer,启动它带上自己配置的topic,看看kafka收到的数据格式有没有自己配置的几个项,有的话说明对了,没有的话,说明格式有问题,查看filebeat.yml 配置
3、写spark 读取kafka的数据流,然后写入到es中
4、jenkins发布log-streaming 项目 ,带上自己配置的topic,可能没有权限,得找对应的同事发一下
5、kibana配置好后直接拉取es的数据展示;
网友评论