Filebeat是Elastic Stack中的轻量级日志收集器,用于将Ubuntu系统的日志数据传输到Elasticsearch等中央存储库,结合Kibana可实现日志的可视化与分析。以下是详细操作流程:
在Ubuntu系统上,通过以下步骤安装Filebeat(以7.x版本为例):
sudo apt updatewget -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.listsudo apt update && sudo apt install filebeat -yFilebeat的主配置文件位于/etc/filebeat/filebeat.yml,需修改以下核心部分:
指定要收集的Ubuntu日志文件路径,常见的系统日志包括/var/log/syslog(系统日志)、/var/log/auth.log(认证日志)、/var/log/kern.log(内核日志)等。示例如下:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/syslog
- /var/log/auth.log
- /var/log/kern.log
若需收集Nginx/Apache日志,可添加对应路径(如/var/log/nginx/*.log)。
将日志发送到Elasticsearch(本地或远程),示例如下:
output.elasticsearch:
hosts: ["localhost:9200"] # 若为远程集群,替换为节点地址(如["es-node1:9200", "es-node2:9200"])
index: "ubuntu-logs-%{+yyyy.MM.dd}" # 动态生成日期索引(如ubuntu-logs-2025.10.14)
若需先发送到Logstash进行处理,可将output.elasticsearch替换为output.logstash,并指定Logstash地址。
Filebeat提供了针对Ubuntu系统日志的预构建模块(如system模块),可自动解析常见日志格式(如syslog、auth)。启用方法:
sudo filebeat modules enable system # 启用system模块
sudo filebeat setup # 加载模块配置并设置索引模板
启用后,filebeat.inputs无需手动配置系统日志路径,模块会自动处理。
sudo systemctl start filebeatsudo systemctl enable filebeatsudo systemctl status filebeat(若显示“active (running)”,则说明启动成功)sudo journalctl -u filebeat -fcurl -X GET "localhost:9200/_cat/indices?v"(应看到ubuntu-logs-*索引)。http://<kibana_host>:5601。ubuntu-logs-*索引模式,即可查看原始日志数据。filebeat.yml中添加处理器,对日志数据进行预处理(如删除敏感字段、添加标签)。示例如下:processors:
- drop_fields:
fields: ["password", "credit_card"] # 删除包含敏感信息的字段
- add_tags:
tags: ["ubuntu", "production"] # 添加自定义标签
harvester.buffer.size(缓冲区大小,默认8192)、flush.min.events(批量发送阈值,默认1024)等参数,提升日志处理效率。output.elasticsearch.ssl.verification_mode: certificate)和最小权限(seccomp.enabled: true),保障数据传输安全。通过以上步骤,可实现Ubuntu日志的收集、传输与分析。根据实际需求,可调整输入源、输出目标及处理器配置,满足不同的日志分析场景。