引言
本小节我们开始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中,敬请期待,我们下期见。