Filebeat 采集数据到Elasticsearch

安装Filebeat,注意版本尽可能要和Elasticsearch 的版本一致

javascript 复制代码
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.12.1-linux-x86_64.tar.gz

tar -xzvf filebeat-7.12.1-linux-x86_64.tar.gz

mv filebeat-7.12.1-linux-x86_64/   filebeat-7.12.1

修改配置文件

1.开启输入

2.指定输出ES

ES多节点配置

javascript 复制代码
output.elasticsearch:
  hosts: ["192.169.208.111:9200", "192.169.208.112:9200", "192.169.208.113:9200"]
  loadbalance: true   # ← 默认就是 true,可省略

查看配置是否正常

javascript 复制代码
./filebeat test output

补充:filebeat.yml 生产级配置

javascript 复制代码
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /opt/module/log/1.log
    # - /path/to/your/other/*.log  <-- 可以在这里加更多文件

  # --- 核心:多行合并 (Multiline) ---
  
  # 1. 正则:匹配 Logback/Spring Boot 的标准时间头
  # 格式:2026-04-22 16:02:06
  # 解释:^表示行首,\d{4}表示年份,确保只有新的一行日志才会被识别为"开始"
  multiline.pattern: '^\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}'
  
  # 2. 策略:negate (取反)
  # 解释:如果一行 **不符合** 上面的时间格式(比如它是 "at com..." 或者 "Caused by..."),
  # 那么它就不是新日志,而是旧日志的一部分。
  multiline.negate: true
  
  # 3. 方向:after
  # 解释:把那些"不是新日志"的行,追加到上一行的末尾。
  multiline.match: after
  
  # 4. 兜底保护
  # 防止某个异常堆栈有几万行导致内存溢出,生产环境建议设置上限
  multiline.max_lines: 500

  # --- 额外优化:处理容器日志换行 (可选) ---
  # 如果你的日志是 Docker/K8s 打印出来的,有时候会被截断成很长的行,
  # 可以开启这个来合并被物理截断的行(通常以空格结尾)。
  # multiline2.pattern: '.*\s$'
  # multiline2.negate: true
  # multiline2.match: after
相关推荐
大强同学2 小时前
我push博客时泄露了API
大数据·elasticsearch·搜索引擎
江山与紫云3 小时前
1.2 配置开发环境(VS Code / PyCharm)
ide·python·elasticsearch·pycharm
4t4run5 小时前
1、ElasticSearch 安装
elasticsearch
2601_9491942618 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
Caspian Wren19 小时前
通过Logstash将MySQL数据同步到ES
数据库·mysql·elasticsearch·logstash
Elastic 中国社区官方博客20 小时前
使用 Remote Write 将 Prometheus 指标发送到 Elasticsearch
大数据·运维·elasticsearch·搜索引擎·全文检索·prometheus
Elasticsearch21 小时前
自动化可靠性:自愈型企业的架构
elasticsearch
SiYuanFeng1 天前
新手学Git:以一个小游戏项目为例,完成初始化、提交、查看历史与恢复版本
大数据·git·elasticsearch
骑蜗牛散步1 天前
Docker下安装ElasticSearch
大数据·elasticsearch·jenkins