Linux LNMP如何监控资源
导读:Linux下监控LNMP(Linux+Nginx+MySQL+PHP)资源的方法可分为系统级基础监控、服务组件专项监控、专业工具全面监控及告警与日志分析四大类,以下是具体实施方案: 一、系统级基础资源监控 通过Linux自带命令行工具快速查...
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查看目录具体占用)。
二、LNMP服务组件专项监控
针对Nginx、MySQL、PHP-FPM三大核心组件,通过内置模块或命令行工具获取详细运行指标:
- Nginx监控:
- 启用ngx_http_stub_status_module模块(默认未开启),在配置文件中添加location /status { stub_status; },访问http://服务器IP/status可查看活跃连接数、请求数、请求处理速率等指标;
- 使用nginx -t测试配置文件语法,systemctl status nginx检查服务状态。
 
- 启用
- MySQL监控:
- 用mysqladmin命令获取状态(如mysqladmin -uroot -p status查看连接数、查询缓存命中率);
- 通过pt-query-digest(Percona Toolkit工具)分析慢查询日志(定位SQL性能瓶颈);
- 使用SHOW STATUS/SHOW VARIABLES命令查看具体参数(如SHOW STATUS LIKE 'Threads_connected'查看当前连接数)。
 
- 用
- PHP-FPM监控:
- 修改php-fpm.conf配置文件(如pm.max_children设置最大子进程数),通过systemctl status php-fpm检查服务状态;
- 使用php-fpm -t测试配置文件语法,netstat -tulnp | grep php-fpm查看PHP-FPM进程监听端口。
 
- 修改
三、专业监控工具全面覆盖
借助第三方工具实现可视化、告警、历史数据存储等高级功能,适合生产环境长期监控:
- Zabbix:开源分布式监控系统,支持监控服务器硬件(CPU、内存、磁盘)、LNMP服务状态(通过自定义监控项),可设置触发器(如CPU利用率超过80%触发告警),并提供Web界面查看趋势图。
- Prometheus+Grafana:
- Prometheus:时间序列数据库,通过nginx_exporter(收集Nginx指标)、mysqld_exporter(收集MySQL指标)、node_exporter(收集系统指标)采集数据;
- Grafana:可视化工具,将Prometheus中的数据转换为仪表盘(如Nginx请求量趋势、MySQL查询延迟热力图),支持实时告警(如邮件、短信通知)。
 
- Prometheus:时间序列数据库,通过
- Netdata:轻量级实时监控工具,安装后自动生成系统资源、服务状态的动态仪表盘(如CPU使用率曲线、内存占用饼图),无需复杂配置,适合快速部署。
- Nagios:成熟开源监控系统,通过插件(如check_nginx、check_mysql)监控LNMP组件状态,支持分布式监控和告警(如服务宕机时发送短信)。
四、告警机制与日志分析
- 告警设置:
- 在Zabbix、Prometheus等工具中配置阈值告警(如PHP-FPM空闲子进程数低于5时触发告警),通知方式包括邮件、短信、企业微信等;
- 编写自动化脚本(如checklnmp.sh),定期检查服务状态,若异常则执行重启操作或发送告警(需配合cron定时执行)。
 
- 日志分析:
- 定期检查Nginx错误日志(/var/log/nginx/error.log)、MySQL错误日志(/var/log/mysql/error.log)、PHP错误日志(路径通常为/var/log/php7.x/error.log),使用tail -f实时查看最新日志,通过grep过滤关键词(如“ERROR”“timeout”)快速定位问题。
 
- 定期检查Nginx错误日志(
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Linux LNMP如何监控资源
本文地址: https://pptw.com/jishu/740068.html
