• linux安装filebeat并收集日志到elasticsearch


    摘要:

    通过filebeat收集服务器上各个应用的日志到elasticsearch,通过tags区分不同的应用创建不同的索引保存日志。

    官网地址:

    https://www.elastic.co/cn/downloads/past-releases#filebeat

    安装步骤:

    1:下载并解压(以7.9.3版本为例)

    1. cd /usr/local/src
    2. wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz
    3. tar -zxvf filebeat-7.9.3-linux-x86_64.tar.gz

    2:修改配置文件filebeat.yml

    1. cd filebeat-7.9.3-linux-x86_64
    2. vi filebeat.yml

    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /logs/app1*.log
      tags: ["app1"]
    - type: log
      enabled: true
      paths:
        - /logs/app2*.log
      tags: ["app2"]

    output.elasticsearch:
      hosts: ["172.19.12.3:9200"]
      protocol: "http"
      username: "elastic"
      password: "123456"
      indices:
        - index: "app1-%{+yyyy-MM-dd}"
          when.contains:
            tags: "app1"
        - index: "app2-%{+yyyy-MM-dd}"
          when.contains:
            tags: "app2"

    3:启动filebeat

    1. ./filebeat -e -c filebeat.yml
    2. #后台运行
    3. nohup ./filebeat -c filebeat.yml -e >/dev/null 2>&1 &

    问题与解决:

    问题一:runtime/cgo: pthread_create failed: Operation not permitted

     解决:

    在filebeat.yml配置文件添加如下配置,重启filebeat

    1. seccomp:
    2. default_action: allow
    3. syscalls:
    4. - action: allow
    5. names:
    6. - rseq

    参考文档:

    Filebeat and GLIBC Errors on Ubuntu 22.04 - Beats - Discuss the Elastic Stack

    问题二:错误日志分行显示

     解决:添加正则表达式多行合并,以时间开头的放在一起

    1. multiline:
    2. pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
    3. negate: true
    4. match: after

    pattern:正则表达式
    negate:true 或 false;默认是false,匹配pattern的行合并到上一行;true,不匹配pattern的行合并到上一行
    match:after 或 before,合并到上一行的末尾或开头
    max_lines:合并最大行,默认500
    timeout:一次合并事件的超时时间,默认5s,防止合并消耗太多时间甚至卡死

    参考文档:(八)Filebeat收集日志方法_filebeat按日期收集-CSDN博客 

    问题三:Filebeat运行一段时间后自动关闭问题解决 

     问题解决:

    3.1:在 /etc/systemd/system目录下创建一个filebeat.service文件,写入如下内容

    1. [Unit]
    2. Description=Filebeat is a lightweight shipper for metrics.
    3. Documentation=https://www.elastic.co/products/beats/filebeat
    4. Wants=network-online.target
    5. After=network-online.target
    6. [Service]
    7. Environment="LOG_OPTS=-e"
    8. Environment="CONFIG_OPTS=-c /usr/local/src/filebeat-7.9.3-linux-x86_64/filebeat.yml"
    9. Environment="PATH_OPTS=-path.home /usr/local/src/filebeat-7.9.3-linux-x86_64/filebeat -path.config /usr/local/src/filebeat-7.9.3-linux-x86_64 -path.data /usr/local/src/filebeat-7.9.3-linux-x86_64/data -path.logs /usr/local/src/filebeat-7.9.3-linux-x86_64/logs"
    10. ExecStart=/usr/local/src/filebeat-7.9.3-linux-x86_64/filebeat $LOG_OPTS $CONFIG_OPTS $PATH_OPTS
    11. Restart=always
    12. [Install]
    13. WantedBy=multi-user.target

    3.2:给文件授权限

    chmod +x /etc/systemd/system/filebeat.service

     3.3:启动并查看状态

    启动:
    systemctl daemon-reload
    systemctl enable filebeat
    systemctl start filebeat

    查看状态

    systemctl status filebeat

  • 相关阅读:
    洛谷千题详解 | P1014 [NOIP1999 普及组] Cantor 表【C++、Java语言】
    Redis集群高可用架构
    DCM 中间件家族迎来新成员
    GJB 5000B简介
    手边酒店V2独立版小程序 1.0.21 免授权+小程序前端
    道路建设(最小生成树)
    编码与解码
    mysql数据库设计理论
    一天快速掌握Mybaits[一]
    vueDay04——v-if else show
  • 原文地址:https://blog.csdn.net/qq_36793589/article/details/133387126