systemctl命令查看服务状态systemctl是Ubuntu系统管理systemd服务的核心工具,可直接查看Filebeat服务的运行状态(包括是否启动、启动时间、进程ID等)。执行以下命令:
sudo systemctl status filebeat
若Filebeat正在运行,输出会显示**Active: active (running),并标注主进程ID、日志片段及服务配置信息(如是否开机自启);若未运行,状态会显示为inactive (dead)**,并提示最近停止时间或原因。
Filebeat的日志默认存储在/var/log/filebeat/目录下(文件名通常为filebeat或带日期后缀,如filebeat-2025-11-09.log)。使用以下命令实时查看最新日志,快速定位运行异常(如无法连接Elasticsearch、权限不足或配置错误):
sudo tail -f /var/log/filebeat/filebeat
若需查看特定时间段或关键词的日志,可结合grep筛选(例如查找所有“error”级别的日志):
sudo grep "error" /var/log/filebeat/filebeat
此外,也可通过journalctl命令查看systemd管理的Filebeat日志(更全面的系统级日志):
sudo journalctl -u filebeat -f # 实时查看
sudo journalctl -u filebeat -n 100 # 查看最近100条日志
Filebeat提供HTTP API用于暴露自身运行状态和性能指标(如事件处理数量、队列长度、输出目标状态、CPU/内存使用率等)。默认情况下,API监听8080端口(部分版本可能为5066或12200,需以实际配置为准)。执行以下命令获取JSON格式的详细指标:
curl http://localhost:8080/stats?pretty
返回结果包含**events(处理的事件总数、失败数)、queue(队列长度、丢弃事件数)、outputs**(Elasticsearch/Logstash连接状态、发送成功的事件数)等关键信息,可用于深入分析Filebeat的运行效率和潜在问题。
通过top、htop或atop等系统工具,可实时监控Filebeat进程的资源消耗(CPU、内存、磁盘I/O),快速识别资源瓶颈(如CPU占用过高导致日志处理延迟)。例如,使用以下命令仅显示Filebeat进程的资源占用:
top -p $(pgrep filebeat)
或使用htop(需安装):
sudo apt install htop # 安装htop
htop
在htop中,可通过F3搜索“filebeat”进程,查看其实时CPU、内存使用率。
若需长期、可视化监控Filebeat状态,可集成Prometheus(指标收集)与Grafana(可视化展示)。步骤如下:
/etc/filebeat/filebeat.yml中添加以下配置,开启Prometheus指标输出:output.prometheus:
enabled: true
hosts: ["localhost:9200"] # Prometheus服务器地址
重启Filebeat使配置生效:sudo systemctl restart filebeat
prometheus.yml,添加Filebeat作为抓取目标:scrape_configs:
- job_name: 'filebeat'
static_configs:
- targets: ['filebeat_server_ip:9200'] # Filebeat服务器IP
重启Prometheus后,在Grafana中添加Prometheus数据源,导入Filebeat官方仪表板(如ID: 10501),即可可视化查看事件速率、错误数、延迟分布等指标,实现实时监控与告警。