阅读量:54
1. 系统自带工具:基础性能监控
Debian系统内置的命令行工具可快速查看LNMP组件的实时状态及系统资源使用情况。
- 服务状态检查:使用
systemctl命令确认Nginx、MySQL/MariaDB、PHP-FPM服务是否运行正常,例如sudo systemctl status nginx、sudo systemctl status mysql、sudo systemctl status php8.2-fpm(PHP版本需根据实际调整)。 - 实时资源监控:
top命令展示CPU、内存、进程的实时占用;htop(需安装,sudo apt install htop)提供更直观的界面和排序功能;vmstat 1每秒刷新虚拟内存、进程、CPU活动数据;iostat监控磁盘I/O性能(需安装sysstat包)。 - 日志分析:通过
tail -f实时查看错误日志(Nginx:/var/log/nginx/error.log;MySQL:/var/log/mysql/error.log;PHP-FPM:/var/log/php8.2-fpm.log),快速定位故障;awk、grep等工具可分析访问日志(Nginx:/var/log/nginx/access.log),统计流量、请求响应时间等指标。
2. 专用监控工具:实时与可视化
针对LNMP环境的特性,可选择以下工具实现更全面的监控:
- netdata:轻量级实时监控工具,安装后自动展示CPU、内存、磁盘、网络、Nginx/MySQL/PHP-FPM等指标,通过浏览器访问
http://服务器IP:19999即可查看,无需额外配置。 - glances:跨平台的系统监控工具,支持命令行和Web界面,可监控系统资源、进程、网络连接及Nginx/MySQL的状态(需安装
glances包,sudo apt install glances)。 - Monit:进程管理与监控工具,可监控Nginx、MySQL、PHP-FPM进程是否存活,自动重启异常进程,并发送邮件告警(安装后编辑
/etc/monit/monitrc配置监控项)。
3. 第三方监控方案:分布式与高级功能
对于需要长期存储、可视化及告警的场景,推荐以下方案:
- Prometheus + Grafana:Prometheus是开源时间序列数据库,负责收集指标;Grafana是可视化工具,可将Prometheus中的数据转换为仪表盘。需安装Prometheus(配置
prometheus.yml添加Nginx、MySQL、PHP-FPM的抓取目标)、Node Exporter(收集系统指标)、MySQL Exporter(收集MySQL指标)、Nginx Exporter(收集Nginx指标),并在Grafana中添加Prometheus作为数据源,导入预制的LNMP仪表盘。 - Zabbix:企业级开源监控解决方案,支持分布式监控、告警规则、自动发现等功能。安装Zabbix Server、MySQL数据库、Zabbix Agent,配置Zabbix Web界面,添加LNMP服务器为主机,设置监控项(如Nginx的请求数、MySQL的查询数、PHP-FPM的进程数)及触发器(如CPU使用率超过80%触发告警)。
4. 组件专项监控:针对性优化
针对LNMP各组件,可使用专用工具进行深度监控:
- Nginx:通过
nginx -V开启stub_status模块(需修改配置文件),使用curl http://localhost/nginx_status获取活跃连接数、请求数等指标;或使用Nginx Exporter配合Prometheus监控更详细的指标(如请求延迟、响应状态码分布)。 - MySQL/MariaDB:使用
mysqladmin命令(如mysqladmin -u root -p status查看连接数、查询缓存命中率);或使用SHOW STATUS;、SHOW PROCESSLIST;命令查看详细状态;推荐使用Percona Monitoring and Management(PMM)进行专业的MySQL性能分析(支持慢查询分析、InnoDB引擎监控)。 - PHP-FPM:通过
php-fpm -i查看配置信息;使用status指令(需在php-fpm.conf中开启pm.status_path = /status),通过curl http://localhost/status获取进程池状态(如活跃进程数、闲置进程数);或使用PHP APM工具(如New Relic、Datadog)监控PHP应用的性能(如脚本执行时间、数据库查询时间)。