• docker安装filebeat 进行日志收集


    1.介绍

    filebeat和beats的关系
    首先filebeat是Beats中的一员。
      Beats在是一个轻量级日志采集器,其实Beats家族有6个成员,早期的ELK架构中使用Logstash收集、解析日志,但是Logstash对内存、cpu、io等资源消耗比较高。相比Logstash,Beats所占系统的CPU和内存几乎可以忽略不计。
    目前Beats包含六种工具:
    Packetbeat:网络数据(收集网络流量数据)
    Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)
    Filebeat:日志文件(收集文件数据)
    Winlogbeat:windows事件日志(收集Windows事件日志数据)
    Auditbeat:审计数据(收集审计日志)
    Heartbeat:运行时间监控(收集系统运行时的数据)

    filebeat是什么
    Filebeat是用于转发和集中日志数据的轻量级传送工具。Filebeat监视您指定的日志文件或位置,收集日志事件,并将它们转发到Elasticsearch或 Logstash进行索引。

    Filebeat的工作方式如下:启动Filebeat时,它将启动一个或多个输入,这些输入将在为日志数据指定的位置中查找。对于Filebeat所找到的每个日志,Filebeat都会启动收集器。每个收集器都读取单个日志以获取新内容,并将新日志数据发送到libbeat,libbeat将聚集事件,并将聚集的数据发送到为Filebeat配置的输出。

       工作的流程图如下:
    
    • 1

    在这里插入图片描述

    2.安装

    下载镜像

    docker pull elastic/filebeat:7.5.1
    
    • 1

    临时启动启动镜像

    docker run -d --name=filebeat elastic/filebeat:7.5.1
    
    • 1

    拷贝数据文件

    docker cp filebeat:/usr/share/filebeat /data/elk7/
    chmod 777 -R /data/elk7/
    chmod go-w /data/elk7/filebeat.yml
    chmod 777 /var/log/messages
    
    • 1
    • 2
    • 3
    • 4

    编辑filebeat.yml

    filebeat.config:
      modules:
        path: ${path.config}/modules.d/*.yml
        reload.enabled: false
    
    processors:
    - add_cloud_metadata: ~
    - add_docker_metadata: ~
    
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
       - /var/log/messages
    
    
    output.elasticsearch:
      hosts: '10.0.42.211:9200'
    #  username: '${ELASTICSEARCH_USERNAME:}'
    #  password: '${ELASTICSEARCH_PASSWORD:}'
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    启动

    docker rm -f filebeat
    docker run -d \
      --name=filebeat \
      --restart=always \
      --network=host \
      -v /data/elk7:/usr/share/filebeat \
      -v /var/log/messages:/var/log/messages \
      elastic/filebeat:7.5.1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    查看

    在这里插入图片描述

    备注

    elastic search curl 报错’Content-Type header [application/x-www-form-urlencoded] is not supported’
    从 elastic search 6.0 起,就需要显式地声明 content-type ,改成这样就好了:

    curl -XPOST -H 'Content-Type: application/json' http://10.0.42.211:9200/filebeat-7.5.1-2022.11.26-000001/_search?pretty=true -d '{"query":{"match_all":{}}}'
    
    • 1
  • 相关阅读:
    【Java】方法入门&扩展知识点
    linux base64编码、解码
    《管理学原理》题库(4套)
    css总结
    项目知识点
    目标检测技术概述
    不能触发进程撤销的事件是什么?进程撤销与进程控制
    SpringBoot集成Prometheus实现监控
    GB28181控制、传输流程和协议接口之注册|注销和技术实现
    新手使用php7的加密方法来保护代码的安全性
  • 原文地址:https://blog.csdn.net/liuyunshengsir/article/details/128048685