温馨提示×

centos lamp网站性能监控

小樊
34
2025-12-27 12:03:35
栏目: 云计算

监控目标与分层

  • 面向 CentOS 上的 LAMP(Linux、Apache、MySQL/MariaDB、PHP),建议按层次建立监控:系统基础(CPU、内存、磁盘、网络)、Web 服务(Apache 吞吐与连接)、数据库(连接、慢查询、复制)、应用与 PHP(执行耗时、内存、错误)、日志与可用性(服务状态、端口、日志异常、可用性探测)。这样能快速定位瓶颈并减少平均修复时间(MTTR)。

快速排障与命令行基线

  • 系统资源与负载
    • 实时与整体:top/htopvmstat 1uptime
    • 内存与交换:free -h
    • 磁盘与 I/O:df -hdu -sh /var/www/html/*iostat -x 1(关注 %util,持续高于 70% 需警惕)
    • 网络与端口:ss -tulpen | grep -E ':(80|443|3306)'netstat -tuln | grep -E ':(80|443|3306)'
  • 日志与可用性
    • 服务状态:systemctl status httpdsystemctl status mysqld
    • 系统日志:journalctl -xe/var/log/messages/var/log/secure
    • 日志摘要:logwatch --output text
  • LAMP 组件快速检查
    • Apache:apachectl status;启用 mod_status 后访问 /server-status?auto 查看当前请求与进程状态
    • MySQL:mysqladmin statusSHOW STATUS LIKE 'Threads_connected';SHOW PROCESSLIST;
    • PHP-FPM:systemctl status php-fpm;配合 OpCache 提升脚本执行效率
  • 建议将上述命令固化为巡检脚本,定时记录与告警,便于回溯分析。

可视化与集中监控方案

  • 平台选型与特点
    • Zabbix:企业级分布式监控,支持 Agent/HTTP 采集、灵活告警、图形与模板生态完善
    • Nagios:成熟稳定,插件丰富,适合传统 IT 与网络设备的可用性监控
    • Cacti:基于 SNMP + RRDtool,擅长流量与接口历史趋势图
    • Prometheus + Grafana:时序数据 + 强大可视化,适合云原生与动态环境
    • Netdata:轻量实时,开箱即用的 Web 仪表盘
    • Cockpit:CentOS 自带 Web 管理,系统资源与容器监控易上手
  • 快速落地建议
    • 单机或中小规模:优先 Zabbix(Agent 采集系统/端口/进程/日志)或 Netdata(即时可视化)
    • 需要历史趋势与自定义大盘:采用 Prometheus + Grafana,配合 node_exporter 采集主机指标
    • 有网络设备与流量趋势诉求:引入 CactiSNMP 流量图,与主机监控分层互补。

组件级监控要点与关键指标

  • Apache
    • 关键指标:请求速率(Req/s)并发连接数Worker/进程状态响应码分布带宽占用
    • 实施要点:启用 mod_status 获取实时状态;按需调整 prefork/worker 参数(如 MaxRequestWorkersMaxConnectionsPerChild);开启 mod_cache/mod_deflate/mod_expires 提升静态资源性能与命中率
  • MySQL/MariaDB
    • 关键指标:Threads_connectedQueries/s(QPS)Slow queriesInnoDB 缓冲池命中率复制延迟
    • 实施要点:开启 slow_query_log 与合理 long_query_time;定期分析慢查询并优化索引/SQL;使用 Prometheus + MySQL ExporterPMM 做深度分析与可视化
  • PHP
    • 关键指标:脚本执行时间内存占用FPM 进程数/队列错误与异常
    • 实施要点:启用 OpCache;使用 Xdebug/Tideways/Blackfire 做代码级剖析,定位慢函数与热点路径。

告警阈值与自动化巡检示例

  • 建议阈值与动作
    • CPU 负载:持续 > 5(按核数折算)触发告警,排查进程与 I/O
    • 内存:可用内存 < 10%Swap 使用率 > 5% 告警,检查缓存/泄漏
    • 磁盘:%util > 70% 持续 5 分钟 告警,定位高 I/O 进程与日志增长
    • Apache:5xx 比例 > 1%响应时间 P95 > 2s 告警,检查后端与慢查询
    • MySQL:Threads_connected > 0.8×max_connections 告警,优化连接池与慢查询
    • 端口:80/443/3306 任一端口不可用立即告警,联动恢复与切换
  • 自动化巡检脚本骨架(可配合 cron 与邮件/企业微信/钉钉 Webhook)
    • 检查项:负载、内存、磁盘、Apache 进程与端口、MySQL 端口、关键日志错误
    • 动作:阈值超限即推送告警;每日生成巡检摘要并归档
    • 扩展:接入 Zabbix AgentUserParameterPrometheus Exporter,统一告警路由与可视化
  • 注意
    • 生产环境请先在测试环境验证阈值与告警策略,避免误报风暴
    • 涉及变更(如调整 Apache/MySQL 参数)请做好备份与回滚预案,并在低峰期执行。

0