如何在CentOS上使用Filebeat监控系统日志
Filebeat是Elastic官方提供的轻量级日志收集器,支持CentOS系统。安装方式有两种:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch sudo tee /etc/yum.repos.d/elasticsearch.repo <<EOF [elasticsearch-7.x] name=Elastic repository for 7.x packages baseurl=https://artifacts.elastic.co/packages/7.x/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 autorefresh=1 type=rpm-md EOF sudo yum install -y filebeat filebeat-7.14.0-x86_64.rpm),再用rpm命令安装:sudo rpm -ivh filebeat-7.14.0-x86_64.rpm Filebeat的核心配置文件位于/etc/filebeat/filebeat.yml,需修改以下关键部分:
log类型输入,指定要监控的系统日志路径。例如,监控/var/log目录下所有.log文件(包括messages、secure等系统日志):filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log ignore_older: 72h # 忽略72小时前的旧日志(可选,减少资源占用) /var/log/messages和/var/log/secure),可调整为:paths: - /var/log/messages - /var/log/secure output.elasticsearch: hosts: ["localhost:9200"] # Elasticsearch地址(若不在本地,替换为IP) index: "system-logs-%{+yyyy.MM.dd}" # 自定义索引名称(按日期分割) output.logstash: hosts: ["localhost:5044"] # Logstash地址 配置完成后,启动Filebeat服务并设置为开机自启:
sudo systemctl daemon-reload # 重新加载systemd配置(若有修改) sudo systemctl start filebeat # 启动Filebeat sudo systemctl enable filebeat # 设置开机自启 sudo systemctl status filebeat sudo tail -f /var/log/filebeat/filebeat Filebeat提供了针对常见系统日志(如system、nginx、mysql)的预定义模块,可直接使用:
sudo filebeat modules enable system /var/log/messages、/var/log/secure等系统日志,并应用预定义的解析规则。/etc/filebeat/modules.d/system.yml,可根据需求调整(如过滤字段、添加标签)。sudo systemctl restart filebeat filebeat.yml中增加max_procs(CPU核心数)和queue.mem.events(内存队列大小),提升处理能力:max_procs: 4 # 使用4个CPU核心 queue.mem.events: 4096 # 内存队列大小(默认1024) bulk_max_size(每次发送的日志条数),减少网络请求次数:output.elasticsearch: bulk_max_size: 512 # 默认为20 filestream输入类型(替代老旧的log类型),性能更优:filebeat.inputs: - type: filestream enabled: true paths: - /var/log/*.log 通过以上步骤,即可完成Filebeat在CentOS上的部署,实现对系统日志的实时监控与传输。后续可通过Kibana连接Elasticsearch,进行日志的可视化分析与告警配置。