温馨提示×

ubuntu如何通过filebeat分析日志

小樊
38
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:

  • 输出到Elasticsearch(本地实例):
    output.elasticsearch: hosts: ["localhost:9200"] index: "filebeat-%{[agent.version]}-%{+yyyy.MM.dd}" # 按日期分割索引 
  • 输出到Logstash(需处理复杂日志):
    output.logstash: hosts: ["localhost:5044"] 

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