首页主机资讯LNMP如何监控服务器

LNMP如何监控服务器

时间2025-12-18 13:18:04发布访客分类主机资讯浏览893
导读:LNMP监控体系与落地步骤 一、监控目标与分层 系统层:CPU、内存、磁盘IO、网络、文件句柄、负载等基础资源。 服务层:Nginx(连接/请求、状态码)、MySQL(连接、慢查询、复制)、PHP-FPM(进程池、排队、响应时间)。 应用...

LNMP监控体系与落地步骤

一、监控目标与分层

  • 系统层:CPU、内存、磁盘IO、网络、文件句柄、负载等基础资源。
  • 服务层:Nginx(连接/请求、状态码)、MySQL(连接、慢查询、复制)、PHP-FPM(进程池、排队、响应时间)。
  • 应用层:关键接口时延、错误率、吞吐、依赖可用性。
  • 日志层:Nginx 访问/错误MySQL 错误/慢查询PHP-FPM 错误、系统日志。
  • 告警层:阈值/异常检测、多渠道通知、告警升级与收敛。

二、快速上手 命令行巡检与日志

  • 系统资源
    • 实时与概况:top/htopvmstatiostat -x 1(需安装 sysstat)、free -mdf -hdu -sh /var/log
    • 网络与连接:ss -tulpen | headnetstat -tulpen | head(两者皆可,ss更快)。
  • 服务状态
    • sudo systemctl status nginxsudo systemctl status mysqlsudo systemctl status php-fpm
  • Nginx
    • 配置检查:nginx -t;优雅重载:nginx -s reload
    • 状态页:启用模块 ngx_http_stub_status_module,在 server 中配置 location /status 并访问查看连接与请求数。
  • MySQL
    • 运行状态:mysqladmin statusmysqladmin --relative --sleep 5 extended-status(增量)、SHOW STATUS LIKE ‘Threads_connected’; SHOW PROCESSLIST;
    • 慢查询:开启慢查询日志,定期分析定位性能瓶颈。
  • PHP-FPM
    • 进程池状态:配置 pm.status_path(如 /fpm-status),通过 Nginx 受限访问;关注 active/ idle/ max children/ queue
  • 日志排查
    • tail -n50 /var/log/nginx/error.logtail -n50 /var/log/mysql/error.logtail -n50 /var/log/php-fpm.log(路径因发行版/版本不同可能位于 /var/log/php/7.x-fpm.log 等)。

三、组件关键指标与采集方式

组件 关键指标 采集方式
Linux CPU利用率、内存使用、swap、磁盘IO、网络吞吐、文件句柄 top/htop、vmstat、iostat、free、df、ss
Nginx 活跃/等待连接、接受/处理请求数、读/写等待、5xx/4xx 状态码 stub_status、访问日志分析、错误日志
MySQL 连接数、慢查询数、查询缓存命中、复制延迟、线程/临时表 mysqladmin、SHOW STATUS/PROCESSLIST、慢查询日志
PHP-FPM 进程池活跃/空闲/最大、排队请求、慢请求、请求耗时 status_path、日志、PHP 慢日志
应用 关键接口P95/P99时延、错误率、吞吐 APM(如 New Relic/Datadog)、自定义埋点
以上指标与采集方式可组合使用命令行与状态页,形成持续观测基线。

四、可视化与告警方案

  • 开源自建
    • Prometheus + Grafana:以 Nginx stub_status/Exporter、MySQL Exporter、PHP-FPM Exporter 采集指标,Grafana 做可视化与阈值告警(如连接数、慢查询、5xx 比例、磁盘使用率)。
    • Zabbix:部署 Server/Agent,创建 Nginx/MySQL/PHP-FPM 监控项与触发器模板,配置邮件/企业微信/钉钉等通知。
    • Nagios:通过插件监控主机与服务状态,设置告警升级策略。
    • Netdata:一键安装,面向实时可视化与告警,适合快速补齐可视化能力。
  • 托管与APM
    • New Relic / Datadog:集成 Nginx/MySQL/PHP,提供应用性能分析、分布式追踪与告警,降低自建运维成本。
  • 告警建议
    • 关键阈值示例:CPU持续> 80%、内存> 80%、磁盘> 80%、Nginx **5xx> **1% 持续5分钟、MySQL Threads_connected 接近上限、PHP-FPM queue > 0 持续1分钟。
    • 通知渠道:邮件 + 即时通讯(企业微信/钉钉/Slack),按严重级别分级与升级。

五、自动化自愈与巡检脚本

  • 服务存活巡检与自启(示例思路)
    • systemctl is-activecurl -f 探测 Nginx/PHP-FPM/MySQL;异常时执行 systemctl restart 并记录日志,加入 crontab 每分钟执行。
    • 示例(需按实际环境调整路径与重启命令):
      • */1 * * * * /usr/local/bin/check_lnmp.sh > > /var/log/monitor.log 2> & 1
  • 慢查询与错误日志巡检
    • 定时分析 MySQL 慢查询日志(如 pt-query-digest),对 Top SQL 建立索引或改写;对 Nginx/PHP-FPM 错误日志做关键字告警(如 “upstream timed out”、“PHP Fatal”)。
  • 风险提示
    • 自动重启可能掩盖根因,建议配合告警与工单闭环;重启前尽量采集现场信息(如 dmesg、netstat -s、SHOW FULL PROCESSLIST)。

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


若转载请注明出处: LNMP如何监控服务器
本文地址: https://pptw.com/jishu/775026.html
LNMP如何实现自动部署 如何优化debian deluser命令性能

游客 回复需填写必要信息