Debian LNMP监控与报警设置指南
在Debian系统的LNMP(Linux+Nginx+MySQL/MariaDB+PHP)环境中,监控与报警是保障服务稳定性的核心环节。以下从监控工具选择、具体配置步骤、报警机制设置三方面展开说明,覆盖系统资源、LNMP组件及日志的全方位监控。
系统原生工具可快速查看服务器及LNMP组件的实时状态,适合日常巡检:
top(默认安装)实时显示CPU、内存、进程占用;htop(sudo apt install htop)提供更友好的交互界面,支持排序和过滤。sudo systemctl status nginx/mysql/php-fpm),确认服务是否运行正常。vmstat 1(每秒刷新)查看虚拟内存、进程、CPU活动;iostat 1监控磁盘I/O性能(需安装sysstat包)。df -h查看磁盘空间使用情况;du -sh /path(如/var/log)检查目录大小,避免磁盘爆满。核心优势:开源、灵活,支持多维度数据可视化与精准报警。
sudo apt install prometheus):修改/etc/prometheus/prometheus.yml,添加LNMP监控目标(如Nginx exporter、MySQL exporter的IP与端口)。sudo apt install grafana):启动服务后访问http://服务器IP:3000,登录后添加Prometheus为数据源。核心优势:企业级分布式监控,支持自动发现、阈值报警。
sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent),配置数据库连接(如MySQL)。http://服务器IP/zabbix)创建主机,关联“LNMP模板”(如Zabbix官方提供的Nginx、MySQL模板)。nginx -V开启stub_status模块(添加stub_status on;到nginx.conf的server块),访问http://服务器IP/stub_status获取活跃连接数、请求数等指标。nginx_exporter(sudo apt install nginx-exporter)将Nginx指标转换为Prometheus可采集的格式,集成到Prometheus中。mysqladmin -u root -p status查看服务器状态(如Uptime、Threads_connected);SHOW GLOBAL STATUS;查看详细指标(如QPS、TPS)。Percona Monitoring and Management (PMM)(sudo apt install pmm-client),提供MySQL性能监控、慢查询分析等功能。php-fpm.conf(或池配置文件),开启pm.status_path = /status;通过Nginx反向隧道访问http://服务器IP/status(需配置Nginx location),获取PHP-FPM的进程数、请求处理时间等指标。php-fpm_exporter(sudo apt install php-fpm-exporter)将PHP-FPM指标暴露给Prometheus。编写Shell脚本监控关键指标(如CPU使用率),超过阈值时发送邮件:
#!/bin/bash
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
THRESHOLD=80
if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) )); then
echo "Warning: CPU usage is ${CPU_USAGE}%" | mail -s "CPU Alert" admin@example.com
fi
添加到crontab(sudo crontab -e),每5分钟执行一次:*/5 * * * * /path/to/script.sh。
logrotate(sudo apt install logrotate)防止日志文件过大。编辑/etc/logrotate.d/nginx(示例):/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 www-data www-data
}
ELK Stack(Elasticsearch+Logstash+Kibana)集中管理Nginx、MySQL、PHP日志,通过Kibana创建仪表盘查看访问趋势、错误日志,或设置日志关键词报警(如“ERROR”“500”)。通过上述组合方案,可实现Debian LNMP环境的全栈监控与及时报警,帮助运维人员快速定位问题,保障服务稳定性。