(七)史上最强ELK集群搭建系列教程——filebeat服务搭建

本文详细介绍了如何通过filebeat收集日志,从镜像拉取、配置修改到验证Kafka集群,一步步搭建filebeat服务,并演示了Logstash配置调整以接收和发送数据到Elasticsearch。

引言

filebeat是轻量级的日志收集工具,本小节我们就开始filebeat组件的搭建。filebeat组件的搭建也是我们elk集群搭建过程中的最后一小节内容,本节除了有关于filebeat的搭建过程,我们也会完整的演示一个elk集群收集日志的示例,从而验证我们整个elk集群是否能够正常工作。开始正文。

正文

  • 拉取镜像

命令:docker pull elastic/filebeat:7.11.1

  • 启动filebeat临时镜像

说明:因为filebeat的配置文件修改需要权限,我们不能直接在容器中修改,所以我们就临时启动一个filebeat镜像服务,将我们的filebeat容器中的配置文件拷贝与我们的虚拟机,在虚拟机中授权修改配置文件,然后同步到我们的容器中。

命令:docker run -d --name=elk-cluster-filebeat elastic/filebeat:7.11.1

  • 拷贝filebeat容器中的配置文件

(1)拷贝配置文件:docker cp elk-cluster-filebeat:/usr/share/filebeat /elk/

(2)授权:chmod 777 -R /elk/

(3)给filebeat的配置文件filebeat.yml授权

(4)创建一个atp目录,用于存放同步的日志文件

  • vi修改filebeat.yml配置

说明:这里我们只需要配置一下我们收集的文件路径/usr/share/filebeat/atp/*.log和kafka集群的服务地址hosts: ["192.168.23.134:9091", "192.168.23.134:9092", "192.168.23.134:9093"]以及订阅的kafka主题atp。订阅主题我们在kafka集群搭建一节中已经创建,这里直接使用就ok了。

#数据输入配置
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/share/filebeat/atp/*.log

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false

processors:
  - add_cloud_metadata: ~
  - add_docker_metadata: ~

#数据输出到kafka配置
output.kafka:
  # initial brokers for reading cluster metadata
  hosts: ["192.168.23.134:9091", "192.168.23.134:9092", "192.168.23.134:9093"]

  # message topic selection + partitioning
  topic: 'atp'
  partition.round_robin:
    reachable_only: false

  required_acks: 1
  compression: gzip
  max_message_bytes: 1000000

  • 移除我们的临时filebeat容器

命令:docker rm -f elk-cluster-filebeat

  • 重新启动一个filebeat容器

命令:docker run -d --name=elk-cluster-filebeat --restart=always --user=root --privileged=true -v /elk/filebeat:/usr/share/filebeat elastic/filebeat:7.11.1

  • 通过查看启动日志确认filebeat服务是否已经正常启动

命令:docker logs elk-cluster-filebeat

到这里,就证明我们的filebeat就正常搭建成功了,并可以收集数据到kafka集群中的atp主题中。

  • elk集群验证

修改我们logstash服务的配置文件,拉取kafka的主题消息。然后重启logstash服务。我们这里只以 elk-cluster-logstash-01容器的修改为例,其它的容器修改相同,这里不再介绍。

input{
       #方式一:直接通过logback收集日志 
       tcp{
           port => 5044
           type => "atp"
           codec => "json_lines"
       }
       #方式二:kafka方式
       kafka {
           type => 'kafka'
           bootstrap_servers => "192.168.23.134:9091,192.168.23.134:9092,192.168.23.134:9093"
           topics => "atp"
           group_id => "elk"
    }
}

output{
    if [type] == 'atp'{
        elasticsearch {
            #es地址
            hosts => "192.168.23.134:9200"
            #索引
            index => "elk-cluster-logstash-01-%{[app]}-%{+YYYY.MM.dd}"
        }
    }
    #kafka方式
    if [type] == 'kafka'{
        elasticsearch {
            #es地址
            hosts => "192.168.23.134:9200"
            #索引
            index => "elk-atp-%{+YYYY.MM.dd}"
        }
    }

}

然后重启logstash集群的服务

我们将atp的日志上传一份到我们的filebeat的日志目录

查看es集群是否收集到日志:

结语

ok,到这里我们的elk集群就搭建完成了,并对我们的集群收集日志工作流程进行了验证。好了,我们下期见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉害哥哥吖

您的支持是我创作下去的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值