引言
本小节我们开始logstash服务的安装,这里要特别说明一下,作者并不是直接从前到后开始搭建这套ELK集群环境,而是以ES集群为核心,采用由点到面的搭建过程,因为其它的服务搭建过程大多数都是依赖elasticsearch的,我们搭建好了elasticsearch服务之后,相对来说,其它服务的正常与否和验证也就更加方便了。logstash其实本身就具有日志收集的能力,以及信息过滤处理等功能,但是为了使我们的日志收集系统更加高可用,发挥其性能优势,我们这里就采用了filebeat这款轻量级的日志收集器,外加kafka这款吞吐量高效的消息队列中间键分发消息给我们的logstash,最大化的发挥我们logstash的性能,这里不做赘述。由于logstash是一个无状态的流处理软件,本身是没有集群方案的,我们这里只是做一个横向扩展,通过kafka分发消息,logstash消费消息,从而增加其吞吐量。好了,开始我们的logstash服务搭建之旅。
正文
- 拉取镜像
命令:docker pull logstash:7.11.1
- docker-compose启动配置文件logstash-cluster.yml如下:
#elk集群版logstash配置 version: '3' services: logstash-01: image: logstash:7.11.1 container_name: elk-cluster-logstash-01 hostname: logstash restart: always ports: - 9600:9600 - 5044:5044 logstash-02: image: logstash:7.11.1 container_name: elk-cluster-logstash-02 hostname: logstash restart: always ports: - 9601:9600 - 5045:5044 logstash-03: image: logstash:7.11.1 container_name: elk-cluster-logstash-03 hostname: logstash restart: always ports: - 9602:9600 - 5046:5044
- vi创建启动配置文件
- docker-compose 启动logstash集群
命令:docker-compose -f logstash-cluster.yml -p logstash up -d
特别说明:这里因为前面已经使用docker-compose启动过es集群,所以我们加一个 -p的参数作为区别,不然容器创建的目录是相同的,会有一个警告,不加也不影响,作者这里就加上了。
- 修改logstash集群默认配置:
特此说明:以elk-cluster-logstash-01的配置为例说明,其它同上,这里就不在记录。因为目前还没有集成到kafka的消息,我们先以我们前面提到的ATP应用测试平台地址(atp: 应用测试平台)测试平台产生一些日志数据,以供logstash收集,从而验证我们logstash是否可以正常工作。
(1)进入容器,vi编辑器修改logstash.yml配置
命令:docker exec -it elk-cluster-logstash-01 /bin/bash
(2)进入容器,vi编辑器修改logstash.conf配置
命令:docker exec -it elk-cluster-logstash-01 /bin/bash
input{ #方式一:直接通过logback收集日志 tcp{ port => 5044 type => "atp" codec => "json_lines" } #方式二:kafka方式 } output{ if [type] == 'atp'{ elasticsearch { #es地址 hosts => "192.168.23.134:9200" #索引 index => "elk-cluster-logstash-01-%{[app]}-%{+YYYY.MM.dd}" } } #kafka方式 }
注意:这里只是elk-cluster-logstash-01的配置修改,其它俩个的修改同上。区别只在于将output中的index索引换成自己的。这里其它部分一致,只以01,02,03区别。
- 重启logstash集群
命令:docker-compose -f logstash-cluster.yml -p logstash restart
- 验证logstash是否可以收集数据
这里我们使用atp应用传输一些数据给logstash,具体的操作可以参考作者的单机版elk验证过程(一)ELK单机版日志系统搭建——docker方式
(1)使用es-head查看数据
(2)使用kibana查看数据
结语
ok,到这里我们logstash集群就安装完成了,后续我们会把kafka的数据也收集到logstash中,敬请期待,我们下期见。