ElK集成filebeat以及kafka
ELK分别代表Elasticsearch,Logstash,Kibana。
Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。
Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。
为了在生产中处理大量数据,所以再集成filebeat,kafka。filebeat性能非常好,部署简单,是一个非常理想的文件采集工具。kafka能帮助我们削峰。
结构如下图所示:
图片.pngfilebeat获取日志文件内容,发送到kafka,logstash获取kafka的内容,输出到elasticsearch。kibaba查看elasticsearch中的日志内容
一、kafka安装:
下载地址:[**http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz**](http://mirrors.tuna.tsinghua.edu.cn/apache/kafka/1.1.0/kafka_2.11-1.1.0.tgz)
- 下载文件
kafka_2.11-1.1.0.tgz
并解压tar
-xzf kafka_2.11-1.1.0.tgz
- Kafka 使用 ZooKeeper 所以你需要首先启动ZooKeeper服务
bin``/zookeeper-server-start``.sh config``/zookeeper``.properties
- 再启动kafka服务
bin``/kafka-server-start``.sh config``/server``.properties
注意:server.properties文件需要修改,将该内容补齐,否则默认为localhost,导致filebeat启动时连接kafka会有问题:
图片.png
- 创建一个topic
bin``/kafka-topics``.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic
kklog
如果控制台打印的内容没有显示服务shutdown则为安装成功
二、Elasticsearch安装:
下载地址:[https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz](https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.tar.gz)
1.下载完成后的文件为:elasticsearch-6.2.4.tar.gz。
2.输入以下命令解压文件:tar -zxvf elasticsearch-6.2.4.tar.gz
3.输入以下命令编辑配置文件:vi config/elasticsearch.yml
修改以下4个属性的内容
cluster.name: my-application (集群名称)
node.name: node-1 (节点名称)
path.data: /Users/software/software/path/data (存储数据的目录,需要根据具体服务器目录配置)
path.logs: /Users/software/software/path/logs (存储日志的目录,需要根据具体服务器目录配置)
network.host: localhost (ip地址,需要根据具体服务器地址配置)
http.port: 9200 (端口号,默认为9200)
4. 输入./bin/elasticsearch -d (输入-d表示后台运行) Linux下
elasticsearch不允许root用户运行,需要切换到其他用户执行该命令
5.在浏览器上输入localhost:9200 如果显示以下页面则说明安装成功
图片.png如果出现类似
max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536]
max number of threads [1024] for user [lishang] likely too low, increase to at least [2048]
这种报错信息,参考https://www.cnblogs.com/sloveling/p/elasticsearch.html
如果安装成功浏览器却无法访问,需要放开端口配置,安装下述的Kibana也是一样,需要开放端口
三、Logstash安装:
下载地址:[https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz](https://artifacts.elastic.co/downloads/logstash/logstash-6.2.4.tar.gz)
- 下载完成后的文件为logstash-6.2.4.tar.gz
- 输入以下命令解压文件tar -zxvf logstash-6.2.4.tar.gz
- 在config文件中定义一个kafka.conf文件,定义input以及output,
- 启动服务 ./bin/logstash -f config/kafka.conf
- 如果控制台没有报错信息即认为成功启动
四、Kibana安装:
下载地址:[https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz](https://artifacts.elastic.co/downloads/kibana/kibana-6.2.4-linux-x86_64.tar.gz)
- 下载后的文件为:kibana-6.2.4-darwin-x86_64.tar.gz,解压文件
- 修改config 文件中的kibana.yml文件,更改以下字段
server.port: 5601 #默认值: 5601 Kibana 由后端服务器提供服务,该配置指定使用的端口号。
server.host: "localhost" #默认值: "localhost" 指定后端服务器的主机地址。
elasticsearch.url: "http://localhost:9200" #默认值: "http://localhost:9200" 用来处理所有查询的 Elasticsearch 实例的 URL 。 - 输入 ./bin/kibana启动服务
-
在浏览器中输入localhost:5601。弹出以下页面即为安装成功:
图片.png
六、filebeat安装:
下载地址:https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.2.4-linux-x86_64.tar.gz
- 下载后的文件为filebeat-6.2.4-darwin-x86_64.tar.gz,解压。
-
修改filebeat.yml文件
内容为:输入内容log方式,path为读取的日志文件的地址
图片.png
输出为kafka服务地址,topic为需要监控的topic名称
图片.png
3.启动filebeat ./filebeat -e -c filebeat.yml
4.如果控制台没有报错信息,则为安装成功。