温馨提示×

Debian LAMP怎么监控运行

小樊
40
2025-12-30 11:34:07
栏目: 智能运维

Debian LAMP 运行监控实操指南

一 快速巡检与日志定位

  • 服务状态与端口连通
    • 查看服务:sudo systemctl status apache2;sudo systemctl status mysql;如启用 PHP-FPM:sudo systemctl status php7.x-fpm
    • 端口监听:sudo netstat -tulpen | grep -E ‘:(80|443|3306)’
  • 资源与磁盘
    • 资源快照:top/htop、free -m、df -h、du -sh /var/log /var/lib/mysql /var/www/html
  • 日志定位
    • Apache:/var/log/apache2/error.log
    • MariaDB/MySQL:/var/log/mysql/error.log
    • PHP-FPM:/var/log/php7.x-fpm.log 或 /var/log/php-fpm.log(以实际配置为准)
  • 进程与连接
    • 进程排查:ps aux | grep -E ‘apache|mysql|php’
  • 说明
    • 以上命令覆盖 LAMP 四层的关键可观测点,适合作为日常巡检与故障定位的第一步。

二 持续监控与可视化

  • 轻量长期观测
    • 系统性能历史:sar(需安装并启用 sysstat),配合 crontab 定期采集,便于回溯分析
    • 增强型实时监控:atop、htop(交互式查看 CPU、内存、I/O 与进程)
  • 指标可视化与告警
    • 方案:Prometheus + Node Exporter + mysqld_exporter + Apache/PHP-FPM Exporter + Grafana
    • 作用:统一采集系统、数据库与 Web/PHP 指标,面板可视化与阈值告警,适合7×24稳定运行
  • 可用性与健康检查
    • 主机/服务监控:Nagios、Monit(探活与自动恢复,异常时重启服务或告警)
  • 面板化运维
    • 可选:宝塔面板(内置资源监控与站点管理,适合快速上手)
  • 说明
    • 轻量工具用于日常查看;可视化与告警平台用于长期、可回溯、可告警的监控体系。

三 关键监控项与阈值建议

组件 关键指标 建议阈值或关注点 采集方式
系统 CPU 使用率、负载 1/5/15 负载持续高于 CPU 核数需排查;关注 iowait top/htop、sar
系统 内存使用率、Swap 尽量避免频繁 Swap;关注缓存与可用内存 free、smem
系统 磁盘空间与 Inode 使用率>**80%**告警;检查日志与数据库数据目录 df、du
系统 I/O 等待 iowait 高时优先排查慢查询/磁盘 vmstat、iostat、atop
Apache 进程/连接数 关注 MaxRequestWorkers 与当前连接,避免排队 systemctl、netstat、mod_status
Apache 响应时延与错误 5xx/4xx 突增、慢请求增多需定位 error.log、access.log
MariaDB/MySQL 连接数/线程 接近 max_connections 需扩容或优化 SHOW STATUS LIKE ‘Threads_connected’;
MariaDB/MySQL 缓冲池命中 InnoDB Buffer Pool Hit Rate 低需加内存或优化查询 SHOW ENGINE INNODB STATUS;
MariaDB/MySQL 慢查询 开启 slow_query_log,定位全表扫描/缺失索引 mysqld_exporter + Grafana
PHP-FPM 进程池使用 进程耗尽导致 502/504,调整 pm.max_children php-fpm status、Grafana
PHP-FPM 脚本耗时 长脚本影响吞吐,优化代码与 OPcache slowlog、Grafana
  • 说明
    • 阈值需结合实例规格与业务特性微调;数据库与 PHP-FPM 建议以“利用率 + 错误/慢日志”双维度判定。

四 告警与自动化恢复

  • 告警规则示例
    • 主机:CPU>80%持续5分钟、内存>90%、磁盘>80%、iowait>20%
    • Apache:5xx 错误率>1%、服务宕机
    • MySQL:Threads_connected 接近 max_connections、慢查询突增
    • PHP-FPM:进程池耗尽、大量慢请求
  • 自动化动作
    • 服务异常自动重启:Monit/Nagios 可配置“探活失败 → 重启服务 → 再次检测 → 升级告警”
    • 日志告警:结合 fail2ban/自定义脚本对异常访问与爆破进行封禁与通知
  • 说明
    • 建议先“告警→人工确认”,稳定后再逐步启用自动恢复,避免雪崩与掩盖根因。

五 5分钟上手清单

  • 立即巡检
    • 运行:systemctl status apache2 mysql;netstat -tulpen | grep -E ‘:(80|443|3306)’
    • 查看:free -m、df -h、top;tail -n50 /var/log/apache2/error.log /var/log/mysql/error.log
  • 建立轻量长期观测
    • 安装:sudo apt install sysstat htop atop
    • 采集:确认 sar 定时任务已启用(/etc/cron.d/sysstat),按需查看 sar -u/-r/-d
  • 配置可视化与告警(可选进阶)
    • 部署 Prometheus + Node Exporter + mysqld_exporter + Grafana,导入 LAMP 面板;Nagios/Monit 负责探活与自动恢复。

0