温馨提示×

Debian LNMP如何监控管理

小樊
41
2025-12-20 17:52:31
栏目: 智能运维

Debian LNMP 监控与管理实操指南

一 服务状态与日志监控

  • 使用 systemctl 管理并查看组件状态,异常时及时重启;按需查看 NginxMySQL/MariaDB 的错误日志,定位启动失败、权限、连接等问题;分析 Nginx 访问日志 了解流量与错误码分布;对 PHP-FPM 则结合其进程管理与错误日志排查脚本异常与慢请求。
  • 常用命令示例:
    • 服务状态与重启
      • sudo systemctl status nginx
      • sudo systemctl status mysql 或 sudo systemctl status mariadb
      • sudo systemctl status php-fpm 或 sudo systemctl status php8.2-fpm
      • sudo systemctl restart nginx && sudo systemctl restart mysql && sudo systemctl restart php-fpm
    • 日志实时查看
      • sudo tail -f /var/log/nginx/error.log
      • sudo tail -f /var/log/mysql/error.log
      • sudo tail -f /var/log/nginx/access.log
      • PHP-FPM 错误日志路径取决于 php.ini 的 error_log 指令
    • 访问与错误分析
      • 统计状态码:awk ‘{print $9}’ /var/log/nginx/access.log | sort | uniq -c | sort -nr
      • 查找 5xx 错误:awk ‘$9 >= 500 && $9 < 600’ /var/log/nginx/access.log | head
    • MySQL 运行状态
      • mysqladmin status
      • mysqladmin --relative --sleep 5 extended-status # 观察 QPS、Threads、Slow_queries 等变化
  • 建议将以上命令固化为日常巡检脚本,并结合时间戳输出到巡检日志,便于回溯。

二 资源与应用性能观测

  • 系统层:用 top/htop 观察 CPU、内存与负载;用 vmstat 查看上下文切换与内存压力;用 iostat 关注磁盘 I/O 利用率与等待;用 ss/netstat 检查连接数、TIME_WAIT 与端口占用,定位连接瓶颈与异常来源。
  • 应用层:
    • Nginx:启用 stub_status 模块暴露连接/请求指标(Active connections、Reading、Writing、Waiting),便于判断并发与排队情况。
    • MySQL/MariaDB:开启 慢查询日志性能模式(performance_schema),配合 EXPLAIN 与 Percona Toolkit 做索引与 SQL 优化。
    • PHP-FPM:开启 慢日志 slowlogrequest_slowlog_timeout,定位耗时脚本与函数;结合 opcache 提升性能并减少重复编译开销。
    • APM:对 PHP 应用接入 New Relic / Datadog APM,获取端到端事务追踪、错误与数据库调用分析。

三 可视化监控与告警方案

  • 轻量即时可视化
    • Netdata:实时展示 CPU、内存、磁盘、网络、Nginx、MySQL、PHP-FPM 等指标,默认端口 19999,适合快速上手与临时排障。
    • Glances:跨平台监控,支持终端与 Web,适合中小型环境统一观测。
  • 企业级与可观测平台
    • Zabbix:集中监控、灵活告警(邮件/短信/Webhook 等),适合多主机与复杂业务场景。
    • Prometheus + Grafana:以 Node Exporter 采集系统指标,配合 Nginx Exporter / PHP-FPM Exporter / mysqld_exporter 抓取应用指标,Grafana 做统一可视化与阈值告警。
  • 告警建议
    • 关键阈值示例:CPU 持续 > 80%、内存使用 > 80%、磁盘使用 > 80%、Nginx 5xx 比例异常、MySQL 连接数接近上限、慢查询突增、PHP-FPM 进程耗尽或大量慢请求。

四 日常运维与稳定性加固

  • 变更与更新:定期 apt update && apt upgrade 与安全修复,保持 Nginx/MySQL/PHP 为稳定版本;变更前备份配置与数据,变更后回归验证。
  • 安全基线:仅开放 80/443/SSH 等必要端口,使用 UFW/iptables 限制来源;SSH 采用密钥登录、禁用 root 远程;数据库仅监听内网或按需开放,执行 mysql_secure_installation
  • 连接与会话:适度调优内核与网络参数(如文件描述符、somaxconn、tcp_tw_reuse 等),并优化 PHP-FPM 进程模型(pm.max_children/start_servers/min_spare_servers/max_spare_servers)Nginx worker_processes/worker_connections,避免连接耗尽与进程饥饿。
  • 备份与恢复:定期备份 /etc、网站目录与数据库(如 mysqldump 或物理备份),保留多份与异地副本,定期演练恢复流程。

0