插件窝 干货文章 LNMP服务器资源监控技巧

LNMP服务器资源监控技巧

监控 状态 status Nginx 562    来源:    2025-05-08

LNMP服务器资源监控技巧

作为IT工程师,监控LNMP(Linux+Nginx+MySQL+PHP)服务器的资源使用情况至关重要。以下是一些实用的监控技巧和工具:

基础监控工具

  1. top/htop

    • 实时查看CPU、内存使用情况
    • htop提供更友好的界面和更多功能
    • apt install htop (Debian/Ubuntu) 或 yum install htop (CentOS/RHEL)
  2. vmstat

    • 查看系统整体资源使用情况
    • vmstat 1 每秒刷新一次
  3. iostat

    • 监控磁盘I/O性能
    • iostat -x 1 查看详细磁盘统计
  4. iftop

    • 实时网络流量监控
    • iftop -n 显示IP而非主机名

LNMP组件专用监控

Nginx监控

  1. Nginx状态模块

    location /nginx_status {
     stub_status on;
     access_log off;
     allow 127.0.0.1;
     deny all;
    }
    
    • 访问http://your-server/nginx_status获取连接数、请求数等
  2. 日志分析

    • 使用goaccess分析访问日志
    • goaccess /var/log/nginx/access.log -a

MySQL监控

  1. MySQL自带命令

    • SHOW STATUS - 查看服务器状态变量
    • SHOW PROCESSLIST - 查看当前连接和查询
  2. mysqladmin

    • mysqladmin -u root -p extended-status 查看扩展状态
  3. 慢查询日志

    SET GLOBAL slow_query_log = 'ON';
    SET GLOBAL long_query_time = 1;
    SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
    

PHP监控

  1. PHP-FPM状态页

    pm.status_path = /status
    
    location ~ ^/(status|ping)$ {
     include fastcgi_params;
     fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
     allow 127.0.0.1;
     deny all;
    }
    
    • 访问http://your-server/status查看PHP-FPM状态
  2. OPcache状态

    opcache_get_status();
    

综合监控解决方案

  1. Prometheus + Grafana

    • 使用node_exporter收集系统指标
    • mysqld_exporter监控MySQL
    • nginx-prometheus-exporter监控Nginx
    • Grafana可视化展示
  2. Netdata

    • 实时监控所有系统资源
    • 简单安装:bash <(curl -Ss https://my-netdata.io/kickstart.sh)
  3. Zabbix

    • 企业级监控解决方案
    • 支持告警和长期趋势分析

自动化监控脚本示例

#!/bin/bash

# 监控LNMP状态脚本

# 系统负载
echo "===== 系统负载 ====="
uptime
echo ""

# 内存使用
echo "===== 内存使用 ====="
free -h
echo ""

# 磁盘空间
echo "===== 磁盘空间 ====="
df -h
echo ""

# Nginx连接数
echo "===== Nginx状态 ====="
curl -s 127.0.0.1/nginx_status
echo ""

# MySQL状态
echo "===== MySQL状态 ====="
mysqladmin -u root -p"$MYSQL_ROOT_PASSWORD" status
echo ""

# PHP-FPM状态
echo "===== PHP-FPM状态 ====="
curl -s 127.0.0.1/status | grep -E "pool|process manager|active processes"
echo ""

告警设置建议

  1. CPU使用率 > 90%持续5分钟
  2. 内存使用率 > 90%
  3. 磁盘空间 < 10%
  4. MySQL连接数 > 最大连接数的80%
  5. Nginx 5xx错误数突然增加

通过以上监控手段,您可以全面掌握LNMP服务器的运行状态,及时发现并解决潜在问题。