首页主机资讯如何通过Filebeat检测CentOS系统异常

如何通过Filebeat检测CentOS系统异常

时间2025-11-20 13:38:03发布访客分类主机资讯浏览610
导读:通过 Filebeat 检测 CentOS 系统异常 一 架构与思路 使用 Filebeat 采集 /var/log/ 下的系统与安全日志,统一发送到 Elasticsearch 或 Logstash;在 Kibana 中做可视化与告警。...

通过 Filebeat 检测 CentOS 系统异常

一 架构与思路

  • 使用 Filebeat 采集 /var/log/ 下的系统与安全日志,统一发送到 ElasticsearchLogstash;在 Kibana 中做可视化与告警。
  • 建议同时部署 Metricbeat 采集系统指标(CPU、内存、磁盘、网络),与日志联动判断“异常行为+异常指标”的复合场景。
  • Elasticsearch/Kibana 中配置告警规则(如 X-Pack Alerting/Watcher 或 Kibana 告警),对关键事件进行实时通知。

二 安装与最小配置

  • 安装 Filebeat(以 yum 为例)
    • 导入 Elastic GPG 并安装:sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    • 创建 repo 文件 /etc/yum.repos.d/elastic.repo,内容:
      • [elastic-8.x]
      • name=Elastic repository for 8.x packages
      • baseurl=https://artifacts.elastic.co/packages/8.x/yum
      • gpgcheck=1
      • enabled=1
      • autorefresh=1
      • type=rpm-md
    • 安装:sudo yum install -y filebeat
  • 最小配置示例(/etc/filebeat/filebeat.yml)
    • filebeat.inputs:
      • type: filestream id: system enabled: true paths:
        • /var/log/messages
        • /var/log/secure
        • /var/log/audit/audit.log
    • output.elasticsearch:
      • hosts: [“es.example.com:9200”]
    • setup.kibana:
      • host: “kibana.example.com:5601”
    • 启动与开机自启:sudo systemctl enable --now filebeat
  • 验证
    • 查看服务:sudo systemctl status filebeat
    • 查看采集日志:sudo tail -f /var/log/filebeat/filebeat

三 关键异常场景与检测规则

异常场景 采集与解析 检测逻辑(Kibana/ES 查询或 Watcher 条件) 建议动作
多次登录失败(暴力破解) 采集 /var/log/secure;用 Ingest Pipeline 或 Logstash grok 解析出 user、src_ip、result 统计每 5 分钟同一 src_ip 的失败次数 > 5 触发告警,封禁来源 IP,记录工单
sudo 提权滥用 解析 secure 中 sudo 执行记录 出现 root 执行的 sudo 且 success=failed 或异常命令 告警并核查是否为合法维护
SSH 异常登录 解析 secure 中 sshd 日志 非常用端口登录、非常用用户登录、来源地异常 告警并联动防火墙
关键服务崩溃 采集 messages 中 systemd 单元状态 出现 FailedStopped 且服务为 sshd/nginx/mysql 告警并自动重启或切换备机
审计规则被篡改 采集 audit/audit.log 删除/修改审计规则(如 -D/-w 高优先级告警,立即核查
可疑内核/系统调用 采集 audit/audit.log(syscall) 非常见系统调用突增、权限提升调用异常 告警并取证
  • 示例 Watcher(每分钟检查 filebeat-* 中 ERROR 日志并告警)
    • PUT _watcher/watch/error_log_monitor
      • trigger: { schedule: { interval: “1m” } }
      • input: { search: { indices: [“filebeat-*”], body: { query: { bool: { must: [ { match: { “log.level”: “error” } } ] } } } }
      • condition: { compare: { “ctx.payload.hits.total.value”: { gt: 0 } } }
      • actions: { email: { to: “sec-team@example.com”, subject: “Error log alert”, body: “New error logs detected.” } }
  • 也可在 Kibana > Stack Management > Alerts 中创建规则,条件如:KQL 搜索 “log.level: error”,阈值计数 > 10/1m,动作发送邮件/Slack。

四 可视化与告警落地

  • Kibana 创建 Dashboard,使用字段如 host.name、log.level、source.ip、user.name、systemd.unit 构建图表与表格。
  • 建立 Index Pattern(如 filebeat-*),在 Discover 中验证字段解析是否正确。
  • 配置 告警规则:选择数据视图(filebeat-*)、设置阈值与评估窗口、绑定通知渠道(Email/Slack/Webhook)。

五 故障排查与安全加固

  • 排查要点
    • 查看 Filebeat 自身日志:tail -f /var/log/filebeat/filebeat;服务状态:systemctl status filebeat
    • 校验配置与路径:确认 inputs 路径(如 /var/log/messages、/var/log/secure、/var/log/audit/audit.log)与输出地址正确
    • 权限与资源:确保 Filebeat 对日志有读权限,系统资源充足
    • 网络与防火墙:开放到 Elasticsearch/Kibana/Logstash 的端口(如 9200/5601/5044
  • 安全加固
    • 非 root 用户运行 Filebeat,最小化权限
    • 限制配置文件与日志文件的访问权限(如 600/644)
    • 定期更新 Filebeat 版本,修补安全漏洞
    • 通过防火墙仅允许受信任网段访问输出目标

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何通过Filebeat检测CentOS系统异常
本文地址: https://pptw.com/jishu/751997.html
CentOS下Filebeat与其他监控工具如何协同 CentOS上Filebeat版本如何升级

游客 回复需填写必要信息