温馨提示×

如何利用日志监控CentOS性能

小樊
45
2026-01-10 13:49:12
栏目: 智能运维

利用日志监控 CentOS 性能的可落地方案

一 监控思路与数据来源

  • 系统日志与内核事件:用 journalctl 集中查看内核与系统服务日志,按时间、优先级、字段过滤,适合发现异常重启、驱动/磁盘告警等性能相关事件。
  • 内核环缓冲区:用 dmesg 快速定位硬件与 I/O 错误(如磁盘、网卡),可与 journalctl -k 互补。
  • 应用与访问日志:对 Nginx/Apache 的访问与错误日志做结构化解析,统计 QPS、响应时延、5xx 错误率 等关键指标。
  • 系统性能计数:借助 Sysstat(sar/iostat/vmstat/mpstat) 记录历史性能数据,与日志联动回溯性能拐点。
  • 审计与安全事件:用 auditd 记录关键系统调用与登录审计,辅助排查异常进程与资源滥用。
  • 日志轮转与保留:用 logrotate 控制日志体积,避免磁盘被占满导致监控失真或服务异常。

二 快速上手命令与阈值示例

  • 实时查看系统与服务日志:
    • 查看本次启动日志:journalctl -b
    • 实时跟踪:journalctl -f
    • 按时间窗口:journalctl --since “2025-01-10 09:00:00” --until “2025-01-10 10:00:00”
    • 按优先级:journalctl -p err,warn(错误与告警优先排查)
  • 内核与硬件告警:
    • 查看错误与警告:dmesg -l err,warn
    • 带时间戳跟踪:dmesg -T | grep -i “error|i/o error”
  • Web 性能从日志看趋势:
    • 统计每分钟请求数:
      awk ‘{print $4}’ /var/log/httpd/access_log | cut -d: -f2 | cut -d. -f1 | sort | uniq -c | sort -nr
    • 实时可视化分析:goaccess /var/log/httpd/access_log -o report.html
  • 历史性能回溯:
    • 安装 Sysstat:sudo yum install sysstat
    • CPU/内存/磁盘历史:sar;磁盘 I/O:iostat;进程/内存细节:vmstat/mpstat
  • 审计关键行为:
    • 查看登录与关键调用:sudo ausearch -m USER_LOGIN -ts recent;必要时配置 /etc/audit/audit.rules 持久化规则

三 集中化日志平台搭建 ELK 或 EFK

  • 架构建议:在业务节点部署 Filebeat(轻量采集),可选 Logstash(复杂解析与 enrich),写入 Elasticsearch,用 Kibana 做可视化与告警。
  • 采集与解析要点:
    • Filebeat 读取应用与系统日志(如 /var/log/*.log、journald),推荐输入类型 filestream;多行日志用 multiline 正确合并堆栈;启用 持久化队列 提升可靠性;可按需压缩与批量发送。
    • Logstash 使用 grok/date/mutate 将非结构化日志解析为结构化字段(如 status、request_time、bytes、host、service)。
  • 指标与可视化:
    • 在 Kibana 建立索引模式,绘制 QPS、5xx 错误率、P95/P99 响应时延、每分钟错误数 等时序图与仪表盘;结合 阈值告警(如 5xx 在 5 分钟内 > 100 次触发通知)。

四 关键指标与日志解析样例

  • 建议优先从以下维度建立日志指标与可视化面板:
维度 关键指标 日志来源与字段 常用工具/查询
Web 访问性能 QPS、P95/P99 时延、5xx 错误率 Nginx/Apache access_log(如:$status、$request_time、$bytes、$host) goaccess;Filebeat+Logstash 解析后在 Kibana 做时序与百分位统计
系统健康 内核错误/告警、OOM、磁盘 I/O 错误 dmesg、journalctl -k/-p err,warn dmesg -T
资源瓶颈定位 CPU、内存、I/O、负载趋势 Sysstat(sar/iostat/vmstat/mpstat)历史数据 + 应用错误日志关联 sar -u/-r/-d;iostat -x 1;在 Kibana 将 sar 数据入库做对比分析
审计与安全 异常登录、提权、关键文件访问 auditd(ausearch) ausearch -m USER_LOGIN -ts recent;结合失败登录与 sudo 审计定位异常行为

五 告警规则与日常巡检清单

  • 告警规则示例(可按业务调整阈值与窗口):
    • Web:5xx 错误数在 5 分钟 内超过 100 次;P95 响应时延 > 2s;每分钟请求数突降 > 50%(异常波动)。
    • 系统:journalctl 在 15 分钟 内出现 err/warn 超过 10 条;dmesg 出现 I/O error;磁盘剩余空间 < 10%
    • 审计:同一来源 5 分钟 内失败登录 > 5 次;出现 sudo 提权或敏感文件访问异常。
  • 日常巡检与维护:
    • 每日:查看 Kibana 仪表盘趋势,确认峰值与异常;检查 Filebeat/Logstash/ES 运行与延迟。
    • 每周:审计规则有效性复核;清理或归档过期索引;复核告警静默与误报。
    • 必备:配置 logrotate 策略,确保日志滚动与保留;为 Sysstat、auditd、journald 配置合适的存储与轮转,避免磁盘被占满。

0