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環境的全棧監控與及時報警,幫助運維人員快速定位問題,保障服務穩定性。