溫馨提示×

Debian LNMP的監控和報警設置

小樊
38
2025-10-08 06:50:56
欄目: 智能運維

Debian LNMP監控與報警設置指南
在Debian系統的LNMP(Linux+Nginx+MySQL/MariaDB+PHP)環境中,監控與報警是保障服務穩定性的核心環節。以下從監控工具選擇、具體配置步驟、報警機制設置三方面展開說明,覆蓋系統資源、LNMP組件及日志的全方位監控。

一、基礎監控工具:系統自帶命令

系統原生工具可快速查看服務器及LNMP組件的實時狀態,適合日常巡檢:

  • top/htoptop(默認安裝)實時顯示CPU、內存、進程占用;htopsudo apt install htop)提供更友好的交互界面,支持排序和過濾。
  • systemctl:檢查LNMP服務狀態(sudo systemctl status nginx/mysql/php-fpm),確認服務是否運行正常。
  • vmstat/iostatvmstat 1(每秒刷新)查看虛擬內存、進程、CPU活動;iostat 1監控磁盤I/O性能(需安裝sysstat包)。
  • df/dudf -h查看磁盤空間使用情況;du -sh /path(如/var/log)檢查目錄大小,避免磁盤爆滿。

二、第三方監控方案:可視化與自動化

1. Prometheus + Grafana(推薦)

核心優勢:開源、靈活,支持多維度數據可視化與精準報警。

  • 部署步驟
    • 安裝Prometheus(sudo apt install prometheus):修改/etc/prometheus/prometheus.yml,添加LNMP監控目標(如Nginx exporter、MySQL exporter的IP與端口)。
    • 安裝Grafana(sudo apt install grafana):啟動服務后訪問http://服務器IP:3000,登錄后添加Prometheus為數據源。
    • 導入儀表盤:Grafana官網提供Nginx(ID: 10031)、MySQL(ID: 10032)、PHP-FPM(ID: 10033)等現成儀表盤,導入后即可查看實時指標(如Nginx請求數、MySQL查詢延遲)。
  • 報警設置:在Grafana中創建“Alert Rule”(如Nginx 5xx錯誤率超過5%、MySQL連接數超過100),配置通知渠道(郵件、Slack、Webhook等)。

2. Zabbix

核心優勢:企業級分布式監控,支持自動發現、閾值報警。

  • 部署步驟
    • 安裝Zabbix Server與Agent(sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent),配置數據庫連接(如MySQL)。
    • 添加被監控主機:在Zabbix Web界面(http://服務器IP/zabbix)創建主機,關聯“LNMP模板”(如Zabbix官方提供的Nginx、MySQL模板)。
    • 設置監控項與觸發器:例如監控Nginx的“active connections”(活躍連接數),當超過1000時觸發報警。
  • 報警方式:支持郵件、短信、釘釘等通知,可在“報警媒介類型”中配置。

三、LNMP組件專項監控

1. Nginx監控

  • 內置模塊:通過nginx -V開啟stub_status模塊(添加stub_status on;nginx.confserver塊),訪問http://服務器IP/stub_status獲取活躍連接數、請求數等指標。
  • exporter工具:使用nginx_exportersudo apt install nginx-exporter)將Nginx指標轉換為Prometheus可采集的格式,集成到Prometheus中。

2. MySQL/MariaDB監控

  • 命令行工具mysqladmin -u root -p status查看服務器狀態(如Uptime、Threads_connected);SHOW GLOBAL STATUS;查看詳細指標(如QPS、TPS)。
  • 專用工具:使用Percona Monitoring and Management (PMM)sudo apt install pmm-client),提供MySQL性能監控、慢查詢分析等功能。

3. PHP-FPM監控

  • 狀態查看:修改php-fpm.conf(或池配置文件),開啟pm.status_path = /status;通過Nginx反向隧道訪問http://服務器IP/status(需配置Nginx location),獲取PHP-FPM的進程數、請求處理時間等指標。
  • exporter工具:使用php-fpm_exportersudo apt install php-fpm-exporter)將PHP-FPM指標暴露給Prometheus。

四、報警機制設置

1. 工具內置報警

  • Grafana:通過“Alert Rule”配置閾值(如Nginx 5xx錯誤率>5%),支持郵件、Slack、Webhook等通知方式。
  • Zabbix:通過“Trigger”設置條件(如MySQL連接數>100),觸發后發送郵件或短信報警。

2. 腳本報警(簡單場景)

編寫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

添加到crontabsudo crontab -e),每5分鐘執行一次:*/5 * * * * /path/to/script.sh。

五、日志管理與監控

  • 日志輪轉:使用logrotatesudo 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環境的全棧監控及時報警,幫助運維人員快速定位問題,保障服務穩定性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女