ubuntu

ubuntu如何通过filebeat分析日志

小樊
39
2025-10-02 05:59:20
栏目: 智能运维

Ubuntu系统使用Filebeat分析日志的完整流程

1. 安装Filebeat

首先更新系统包列表,然后导入Elastic官方GPG密钥并添加APT仓库,最后安装Filebeat:

sudo apt update && sudo apt upgrade -y
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update && sudo apt install filebeat -y

注意:若需安装其他版本,可将7.x替换为目标版本号(如8.x)。

2. 配置Filebeat

Filebeat的主配置文件位于/etc/filebeat/filebeat.yml,需修改以下核心部分:

2.1 配置输入源(Inputs)

指定要收集的日志文件路径,支持通配符(如*.log)。例如,收集系统日志(syslogauth.log)和Apache日志:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/syslog
    - /var/log/auth.log
    - /var/log/apache2/*.log
  ignore_older: 72h  # 忽略超过72小时的旧日志(可选)

2.2 配置输出目标(Outputs)

将日志发送到Elasticsearch(推荐)或Logstash:

2.3 可选:启用预构建模块(简化配置)

Filebeat提供systemnginxmysql等预构建模块,自动配置输入、解析规则和Kibana仪表板。例如,启用system模块:

sudo filebeat modules enable system

模块配置文件位于/etc/filebeat/modules.d/system.yml,可根据需求调整。

3. 启动与验证Filebeat

3.1 启动服务并设置开机自启

sudo systemctl start filebeat
sudo systemctl enable filebeat

3.2 检查服务状态

sudo systemctl status filebeat

若状态显示active (running),则说明服务已启动。

3.3 查看Filebeat日志

通过日志排查配置错误:

sudo journalctl -u filebeat -f

3.4 验证数据是否发送到Elasticsearch

使用curl命令检查Elasticsearch中的索引:

curl -X GET "localhost:9200/_cat/indices?v"

若看到filebeat-*开头的索引,说明数据已成功发送。

4. 分析日志(通过Kibana)

4.1 安装并配置Kibana

若未安装Kibana,可通过以下命令安装:

sudo apt install kibana -y
sudo systemctl start kibana
sudo systemctl enable kibana

访问http://<服务器IP>:5601进入Kibana界面。

4.2 创建索引模式

  1. 进入Kibana的Management > Index Patterns页面。
  2. 点击“Create index pattern”,输入filebeat-*(匹配Filebeat创建的索引)。
  3. 选择时间字段(如@timestamp),完成创建。

4.3 使用Discover探索日志

  1. 进入Discover页面,选择刚创建的filebeat-*索引模式。
  2. 通过左侧字段筛选日志(如messagestatusclientip),或使用KQL(Kibana Query Language)查询(如status: 500查找500错误)。
  3. 可自定义表格列、时间范围,或导出日志数据进行分析。

5. 高级配置(可选)

5.1 多行日志合并

若日志是多行的(如Java异常堆栈),需配置multiline选项。例如,合并以^[^\[]开头的行(非时间戳行):

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/app/*.log
  multiline.pattern: '^[^\[]'
  multiline.negate: true
  multiline.match: after

5.2 JSON日志解析

若日志为JSON格式,可自动解析字段:

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/app/json.log
  json.keys_under_root: true  # 将JSON字段提升到根级别
  json.add_error_key: true    # 添加错误字段(解析失败时)

5.3 字段映射与处理器

通过processors对日志数据进行预处理(如删除敏感字段、重命名字段):

processors:
- drop_fields:
    fields: ["password", "credit_card"]
- rename:
    fields:
      - from: "src_ip"
        to: "clientip"

将上述配置添加到filebeat.inputs对应的输入项中。

通过以上步骤,即可在Ubuntu系统上使用Filebeat完成日志收集、传输,并通过Kibana实现日志分析与可视化。

0
看了该问题的人还看了