监控Debian系统上LNMP(Linux+Nginx+MySQL/MariaDB+PHP)的运行状态,需覆盖服务状态、系统资源、应用性能、日志分析等多个维度,以下是具体方法:
使用systemctl命令(Debian默认服务管理工具)检查LNMP各组件的运行状态、重启服务及查看日志:
sudo systemctl status nginx(查看服务是否运行)、sudo systemctl restart nginx(重启服务)、sudo tail -f /var/log/nginx/error.log(实时查看错误日志)。sudo systemctl status mysql(或mariadb)、sudo systemctl restart mysql、sudo tail -f /var/log/mysql/error.log。sudo systemctl status php-fpm(版本号因安装而异,如php8.2-fpm)、sudo systemctl restart php-fpm、sudo tail -f /var/log/php-fpm.log(或/var/log/php8.2-fpm.log)。通过以下工具实时查看CPU、内存、磁盘、网络等资源使用情况,快速定位资源瓶颈:
top是命令行实时监控工具(按q退出),htop是其增强版(需安装:sudo apt install htop),提供更直观的界面、进程排序(如按CPU/内存)及颜色标识。sudo apt install netdata),访问http://服务器IP:19999即可查看CPU、内存、磁盘、网络等实时图表,无需额外配置。sudo apt install glances),支持命令行(glances)和Web界面(glances -w),可监控本地/远程服务器资源。若需要历史数据存储、告警、多服务器集中管理,可使用以下工具:
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf),支持监控服务器、网络设备、应用性能,可通过Web界面配置告警(如Nginx宕机、MySQL连接数超标)。sudo apt install prometheus):时间序列数据库,负责采集和存储监控数据;sudo apt install grafana):可视化工具,添加Prometheus为数据源后,可创建自定义仪表盘(如Nginx请求量、MySQL查询速率)。sudo apt install nagios3 nagios-nrpe-server),支持插件扩展(如check_nginx、check_mysql),适合传统运维场景。针对LNMP各组件的具体性能指标进行深入监控:
nginx -t检查配置文件语法;stub_status模块(需修改Nginx配置):在nginx.conf中添加location /nginx_status { stub_status; },访问http://服务器IP/nginx_status可查看活跃连接数、请求数等指标;goaccess分析访问日志(安装:sudo apt install goaccess):goaccess /var/log/nginx/access.log --log-format=COMBINED,生成实时访问报告(如PV/UV、请求耗时)。mysqladmin命令:sudo mysqladmin -u root -p status(查看连接数、查询次数)、sudo mysqladmin -u root -p extended-status(查看详细状态变量);SHOW GLOBAL STATUS;(查看全局状态)、SHOW ENGINE INNODB STATUS;(查看InnoDB引擎状态)、SHOW PROCESSLIST;(查看当前连接)。php-fpm -i查看配置信息;php-fpm.conf):添加pm.status_path = /status,访问http://服务器IP/status(需Nginx配置反向代理)可查看PHP进程数、请求处理时间等指标;sudo tail -f /var/log/php-fpm.log(定位PHP代码错误)。通过日志收集和分析,及时发现异常(如攻击、错误):
journalctl查看系统日志(sudo journalctl -xe),过滤Nginx/MySQL相关日志(如sudo journalctl -u nginx)。sudo apt install monit):监控进程、文件变化(如Nginx配置文件修改),配置/etc/monit/monitrc(如check process nginx with pidfile /run/nginx.pid),异常时自动重启服务。以上方法可根据需求组合使用:小型环境用systemctl+htop+日志分析即可;中型环境建议加入netdata/glances;大型环境需用Zabbix/Prometheus+Grafana实现集中监控。