作为IT工程师,监控LNMP(Linux+Nginx+MySQL+PHP)服务器的资源使用情况至关重要。以下是一些实用的监控技巧和工具:
top/htop
htop提供更友好的界面和更多功能apt install htop (Debian/Ubuntu) 或 yum install htop (CentOS/RHEL)vmstat
vmstat 1 每秒刷新一次iostat
iostat -x 1 查看详细磁盘统计iftop
iftop -n 显示IP而非主机名Nginx状态模块
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
http://your-server/nginx_status获取连接数、请求数等日志分析
goaccess分析访问日志goaccess /var/log/nginx/access.log -aMySQL自带命令
SHOW STATUS - 查看服务器状态变量SHOW PROCESSLIST - 查看当前连接和查询mysqladmin
mysqladmin -u root -p extended-status 查看扩展状态慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';
PHP-FPM状态页
pm.status_path = /status
location ~ ^/(status|ping)$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
allow 127.0.0.1;
deny all;
}
http://your-server/status查看PHP-FPM状态OPcache状态
opcache_get_status();
Prometheus + Grafana
node_exporter收集系统指标mysqld_exporter监控MySQLnginx-prometheus-exporter监控NginxNetdata
bash <(curl -Ss https://my-netdata.io/kickstart.sh)Zabbix
#!/bin/bash
# 监控LNMP状态脚本
# 系统负载
echo "===== 系统负载 ====="
uptime
echo ""
# 内存使用
echo "===== 内存使用 ====="
free -h
echo ""
# 磁盘空间
echo "===== 磁盘空间 ====="
df -h
echo ""
# Nginx连接数
echo "===== Nginx状态 ====="
curl -s 127.0.0.1/nginx_status
echo ""
# MySQL状态
echo "===== MySQL状态 ====="
mysqladmin -u root -p"$MYSQL_ROOT_PASSWORD" status
echo ""
# PHP-FPM状态
echo "===== PHP-FPM状态 ====="
curl -s 127.0.0.1/status | grep -E "pool|process manager|active processes"
echo ""
通过以上监控手段,您可以全面掌握LNMP服务器的运行状态,及时发现并解决潜在问题。