首页主机资讯如何监控Ubuntu上的LNMP

如何监控Ubuntu上的LNMP

时间2025-11-26 23:39:03发布访客分类主机资讯浏览551
导读:Ubuntu 上 LNMP 监控实操指南 一 快速巡检与系统指标 服务存活与端口 使用 systemd 查看状态:sudo systemctl status nginx、sudo systemctl status mysql、sudo...

Ubuntu 上 LNMP 监控实操指南

一 快速巡检与系统指标

  • 服务存活与端口
    • 使用 systemd 查看状态:sudo systemctl status nginxsudo systemctl status mysqlsudo systemctl status php-fpm
    • 使用进程与端口检查:ps aux | grep -E ‘nginx|mysqld|php-fpm’ss -tulpen | grep -E ‘80|443|3306’
  • 资源与负载
    • 实时与交互:top/htop(htop 需安装:sudo apt-get install htop
    • 内存与交换:free -h
    • 虚拟内存与 CPU:vmstat 1
    • 磁盘 I/O:iostat -x 1(需安装:sudo apt-get install sysstat
  • 日志定位
    • Nginx/var/log/nginx/error.log
    • MySQL/var/log/mysql/error.log
    • PHP-FPM/var/log/php-fpm/error.log
  • 一键巡检脚本示例
    • 保存为 check_lnmp.sh,执行:bash check_lnmp.sh
    • 用途:快速判断服务存活、端口监听与关键错误日志是否出现
    #!/usr/bin/env bash
    set -e
    echo "=== 服务状态 ==="
    systemctl is-active --quiet nginx &
        &
         echo "Nginx: active" || echo "Nginx: inactive"
    systemctl is-active --quiet mysql  &
        &
         echo "MySQL:  active" || echo "MySQL:  inactive"
    systemctl is-active --quiet php-fpm &
        &
         echo "PHP-FPM: active" || echo "PHP-FPM: inactive"
    
    echo "=== 端口监听 ==="
    ss -tulpen | egrep '(:80|:443|:3306)'
    
    echo "=== 近期错误日志 ==="
    tail -n50 /var/log/nginx/error.log /var/log/mysql/error.log /var/log/php-fpm/error.log 2>
    /dev/null | sed 's/^/  /'
    
    以上命令与路径覆盖了 Ubuntu 上 LNMP 的常用巡检与系统级监控要点,适合作为日常排障与值守基线。

二 组件级监控要点

  • Nginx
    • 启用状态页:在 server 配置中加入
      location /nginx_status {
          
          stub_status on;
          
          allow 127.0.0.1;
          
          deny all;
      
      }
          
      
      重载:sudo systemctl reload nginx;访问:http://服务器IP/nginx_status
    • 关键指标:Active connectionsaccepts/handled/requestsReading/Writing/Waiting
  • MySQL/MariaDB
    • 运行状态:mysqladmin -u root -p status
    • 慢查询分析:mysqldumpslow /var/log/mysql/slow.log
    • 深入诊断:使用 pt-query-digest(Percona Toolkit)分析慢查询,定位性能瓶颈
  • PHP-FPM
    • 进程与池状态:ps aux | grep php-fpm;检查 /etc/php//fpm/pool.d/.confpm.max_childrenpm.start_servers
    • 日志:/var/log/php-fpm/error.log,关注 WARNING/ERROR 与慢请求日志(若启用)
  • 小结
    • Nginx 状态页提供连接与请求吞吐;MySQL 通过管理命令与慢查询日志定位负载与 SQL 问题;PHP-FPM 关注进程池与错误日志,三者配合可快速闭环性能与可用性。

三 可视化与告警方案

  • Prometheus + Grafana(开源、灵活)
    • 典型抓取目标与端口
      • 节点资源:Node Exporter :9100
      • Nginx(状态页或 Nginx Exporter):nginx_status :9113
      • MySQL:mysqld_exporter :9104
    • 部署步骤
      • 安装 Prometheus,配置 prometheus.yml 抓取上述目标
      • 安装 Grafana,添加 Prometheus 数据源,导入 Node Exporter/MySQL/Nginx 仪表盘
  • Zabbix(企业级、开箱即用)
    • 安装 Zabbix Server/Agent,在 Web 界面添加主机,配置监控项(CPU、内存、磁盘、Nginx、MySQL、PHP-FPM)、触发器与告警媒介
  • 其他可选
    • Nagios(成熟稳定,插件丰富)、Netdata(轻量实时)、New Relic/Datadog(SaaS,集成度高)
  • 选型建议
    • 需要自建与可控:优先 Prometheus + Grafana
    • 需要快速交付与完善告警:选择 Zabbix
    • 追求低门槛与即时可视化:尝试 Netdata 以上方案在 LNMP 场景下被广泛采用,均支持指标采集、可视化与告警能力。

四 日志集中与 PHP 性能分析

  • 日志集中与可视化
    • 使用 ELK Stack(Elasticsearch + Logstash + Kibana) 聚合 Nginx/MySQL/PHP-FPM 日志,进行检索、分析与可视化
  • PHP 应用性能分析
    • Xdebug:代码级调试与性能分析(开发/预发环境)
    • Blackfire.io:生产友好的性能剖析与调用图
    • New Relic/Datadog APM:应用性能监控与事务追踪
  • 建议
    • 生产环境优先使用 采样与限流 的 APM,避免额外开销;日志与指标分离存储,便于扩容与回溯。

五 告警阈值与日常巡检清单

  • 建议阈值与动作
    • CPU 持续 > 80% 持续 5 分钟:扩容或降载,检查热点进程
    • 内存可用 < 10%:排查缓存/泄漏,增加内存或优化应用
    • 磁盘使用 > 80%:清理日志/归档,扩容磁盘
    • Nginx 5xx 比例 > 1%(5 分钟):检查后端 PHP-FPM/MySQL 健康与超时配置
    • MySQL 慢查询数/秒突增:用 pt-query-digest 分析,优化索引与 SQL
    • PHP-FPM 进程耗尽或队列堆积:调优 pm.max_children/pm.start_servers,检查慢脚本
  • 日常巡检清单
    • 每日:服务存活、端口监听、错误日志关键字、磁盘/IO、慢查询
    • 每周:Nginx/MySQL/PHP-FPM 配置与版本审计、备份有效性、证书有效期
    • 每月:容量与性能回顾、告警演练、基线对比与优化
  • 安全提示
    • 状态页与 Exporter 仅对内网开放,或加 IP 白名单/认证;数据库与后台管理口限制来源;密钥与凭据妥善存储 以上阈值与清单可作为起步基线,需结合业务峰值与 SLA 持续调优。

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


若转载请注明出处: 如何监控Ubuntu上的LNMP
本文地址: https://pptw.com/jishu/757249.html
如何优化Ubuntu上的LNMP Debian系统中缓存如何清理

游客 回复需填写必要信息