监控CentOS上的LNMP(Linux、Nginx、MySQL、PHP)环境需覆盖系统资源、服务状态、应用性能及日志等方面,以下是具体方法:
服务状态检查
使用systemctl(CentOS 7及以上默认)查看Nginx、MySQL(MariaDB)、PHP-FPM的运行状态,确保服务正常启动:
sudo systemctl status nginx # 检查Nginx状态
sudo systemctl status mysqld # 检查MySQL状态(部分系统为mariadb)
sudo systemctl status php-fpm # 检查PHP-FPM状态
若服务未运行,可通过sudo systemctl start <服务名>启动。
进程与端口监控
ps命令确认进程是否存在:ps aux | grep nginx # 检查Nginx进程
ps aux | grep mysqld # 检查MySQL进程
ps aux | grep php-fpm # 检查PHP-FPM进程
ss(替代netstat,更高效)查看服务监听端口:sudo ss -tulnp | grep nginx # 检查Nginx监听端口(默认80/443)
sudo ss -tulnp | grep mysqld # 检查MySQL监听端口(默认3306)
sudo ss -tulnp | grep php-fpm # 检查PHP-FPM监听端口(默认9000)
```。
实时资源监控
top/htop:动态查看CPU、内存占用,按M(内存)、P(CPU)排序,快速识别高负载进程;htop需安装(sudo yum install epel-release && sudo yum install htop),支持鼠标操作。vmstat:查看虚拟内存、CPU上下文切换、磁盘IO等系统级指标,每1秒刷新一次:vmstat 1
iostat:监控磁盘I/O和CPU使用率(需安装sysstat包):sudo yum install sysstat && iostat -x 1
free:查看内存使用情况(-h表示人类可读格式):free -h
```。
网络与磁盘监控
iftop:实时显示网络带宽使用(按主机/连接排序,需安装):sudo yum install iftop && sudo iftop
iotop:按进程统计磁盘I/O(需安装):sudo yum install iotop && sudo iotop
```。
Nginx监控
sudo nginx -t # 若输出“syntax is ok”则表示配置正确
stub_status模块,修改nginx.conf并添加location /nginx_status):curl http://localhost/nginx_status # 返回活动连接数、请求数等信息
```。
MySQL监控
mysqladmin快速查看服务器状态:mysqladmin -u root -p status # 输出Uptime、Threads_connected等指标
SHOW STATUS查看详细状态变量(如连接数、缓存命中率):mysql -u root -p -e "SHOW STATUS;"
pt-query-digest分析慢查询日志(需安装Percona Toolkit):sudo yum install percona-toolkit && pt-query-digest /var/log/mysql/slow.log
```。
PHP-FPM监控
php-fpm.conf中开启pm.status_path = /status):curl http://localhost/status # 返回池状态、进程数、请求处理时间等
xdebug调试PHP代码(需安装),或通过error_log查看PHP错误日志:tail -f /var/log/php-fpm/error.log
```。
tail -f跟踪Nginx访问日志、错误日志及MySQL错误日志:tail -f /var/log/nginx/access.log # Nginx访问日志(记录请求信息)
tail -f /var/log/nginx/error.log # Nginx错误日志(记录配置/运行错误)
tail -f /var/log/mysql/error.log # MySQL错误日志(记录数据库错误)
grep搜索关键字(如“ERROR”),或用GoAccess实时分析Nginx访问日志(生成可视化报告):sudo yum install goaccess && goaccess /var/log/nginx/access.log --log-format=COMBINED
```。
Prometheus + Grafana
Node Exporter(系统指标)、MySQL Exporter(MySQL指标)、Nginx Exporter(Nginx指标)采集数据,Grafana(可视化工具)将数据渲染为仪表盘。prometheus.yml,添加LNMP Exporter作为目标;sudo yum install grafana,启动服务并登录Web界面;Zabbix
Netdata
bash <(curl -Ss https://my-netdata.io/kickstart.sh),一键安装并自动启动。通过上述方法,可实现从基础状态检查到深度性能分析的全方位监控,确保CentOS上LNMP环境的稳定运行。根据需求选择合适的工具:简单场景用命令行,复杂环境用第三方综合监控方案。