Linux下监控LNMP(Linux+Nginx+MySQL+PHP)资源的方法可分为系统级基础监控、服务组件专项监控、专业工具全面监控及告警与日志分析四大类,以下是具体实施方案:
通过Linux自带命令行工具快速查看系统整体资源使用情况,适合日常巡检和快速定位瓶颈:
top/htop:动态显示CPU、内存、进程占用排名(htop需安装,界面更友好,支持鼠标操作);vmstat:监控虚拟内存、CPU利用率、磁盘I/O及进程状态(如vmstat 1 5每1秒刷新1次,共5次);iostat(需安装sysstat包):分析CPU利用率及磁盘读写性能(如iostat -x 1查看磁盘I/O等待时间);netstat/ss:查看网络连接状态(如netstat -tulnp查看监听端口,ss -s统计连接数);df -h/du -sh:检查磁盘空间使用情况(df查看分区整体空间,du查看目录具体占用)。针对Nginx、MySQL、PHP-FPM三大核心组件,通过内置模块或命令行工具获取详细运行指标:
ngx_http_stub_status_module模块(默认未开启),在配置文件中添加location /status { stub_status; },访问http://服务器IP/status可查看活跃连接数、请求数、请求处理速率等指标;nginx -t测试配置文件语法,systemctl status nginx检查服务状态。mysqladmin命令获取状态(如mysqladmin -uroot -p status查看连接数、查询缓存命中率);pt-query-digest(Percona Toolkit工具)分析慢查询日志(定位SQL性能瓶颈);SHOW STATUS/SHOW VARIABLES命令查看具体参数(如SHOW STATUS LIKE 'Threads_connected'查看当前连接数)。php-fpm.conf配置文件(如pm.max_children设置最大子进程数),通过systemctl status php-fpm检查服务状态;php-fpm -t测试配置文件语法,netstat -tulnp | grep php-fpm查看PHP-FPM进程监听端口。借助第三方工具实现可视化、告警、历史数据存储等高级功能,适合生产环境长期监控:
nginx_exporter(收集Nginx指标)、mysqld_exporter(收集MySQL指标)、node_exporter(收集系统指标)采集数据;check_nginx、check_mysql)监控LNMP组件状态,支持分布式监控和告警(如服务宕机时发送短信)。checklnmp.sh),定期检查服务状态,若异常则执行重启操作或发送告警(需配合cron定时执行)。/var/log/nginx/error.log)、MySQL错误日志(/var/log/mysql/error.log)、PHP错误日志(路径通常为/var/log/php7.x/error.log),使用tail -f实时查看最新日志,通过grep过滤关键词(如“ERROR”“timeout”)快速定位问题。