docker filebeat 将日志多级目录和多维json数据日志同步到es

使用的时候先调试调试配置,调试成功在尝试写入es,如果es写入失败就是es账户.密码/白名单.和index未创建的问题,细节可以留言

setup.template.priority 模板优先级 调整这个可以配置一台机器多个filebeat 容器启动

多级目录日志和多维josn日志结构

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - '/home/data/logs/test/*.log'
      - '/home/data/logs/upload/logs/**/*.log'
    json.keys_under_root: true  
    json.add_error_key: true
    json.message_key: json  

processors:
  - decode_json_fields:
      fields: ["json"]
      process_array: false
      max_depth: 1
      target: ""

docker 直接启动

以docker形式启动filebeat

docker run -d \
  --name=filebeat \
  --user=root \
  --volume="/home/golang/gopath/filebeat/test/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  --volume="/home/data/logs/test:/home/data/logs/test/logs:ro" \
  docker.elastic.co/beats/filebeat:8.6.2 filebeat -e --strict.perms=false 


#调试
docker run  \
  --name=filebeat \
  --user=root \
  --volume="/home/golang/gopath/filebeat/test/filebeat.docker.yml:/usr/share/filebeat/filebeat.yml:ro" \
  --volume="/var/run/docker.sock:/var/run/docker.sock:ro" \
  --volume="/home/data/logs/test:/home/data/logs/test/logs:ro" \
  docker.elastic.co/beats/filebeat:8.6.2 filebeat -e --strict.perms=false 

filebeat 配置 filebeat.docker.yml

filebeat.config:
  modules:
    path: ${path.config}/modules.d/*.yml
    reload.enabled: false
    
filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - '/home/data/logs/test/*.log'
      - '/home/data/logs/upload/logs/**/*.log'
    json.keys_under_root: true  
    json.add_error_key: true
    json.message_key: json  

processors:
  - decode_json_fields:
      fields: ["json"]
      process_array: false
      max_depth: 1
      target: ""

output.elasticsearch:
  ssl.verification_mode: none
  hosts: ["https://127.0.0.1:9200"]
  username: "test"
  password: "12345"
  index: "metricbeat-test"

setup.template.name: "metricbeattest"
setup.template.pattern: "metricbeat-*"
setup.template.priority: 50

filebeat 调试配置

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

filebeat.inputs:
  - type: log
    enabled: true
    paths:
      - '/home/data/logs/test/*.log'
      - '/home/data/logs/upload/logs/**/*.log'
    json.keys_under_root: false
    json.add_error_key: true
    json.message_key: log

processors:
  - decode_json_fields:
      fields: ["log"]
      process_array: false
      max_depth: 1
      target: ""
      
      
  # 丢掉不需要的字段
  - drop_fields:
      fields: ["agent","input","ecs","message","host", "log","error","level"]

# 配置输出到控制台
output.console:
  pretty: true

setup.template.name: "metricbeat-test"
setup.template.pattern: "metricbeat-*"
setup.template.priority: 50

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 11:56:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 11:56:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 11:56:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 11:56:03       18 阅读

热门阅读

  1. 在矩阵回溯中进行累加和比较的注意点

    2024-01-13 11:56:03       36 阅读
  2. 数据分析---SQL(2)

    2024-01-13 11:56:03       36 阅读
  3. Python修改二值图像某特定颜色

    2024-01-13 11:56:03       34 阅读
  4. 微服务入门介绍(一)

    2024-01-13 11:56:03       25 阅读
  5. 编程笔记 html5&css&js 037 CSS选择器

    2024-01-13 11:56:03       25 阅读
  6. textarea文本框根据输入内容自动适应高度

    2024-01-13 11:56:03       31 阅读
  7. Linux部署excalidraw-cn白板

    2024-01-13 11:56:03       33 阅读
  8. 行为型设计模式—职责链模式

    2024-01-13 11:56:03       28 阅读