溫馨提示×

Ubuntu LNMP如何監控服務器狀態

小樊
47
2025-03-24 10:03:07
欄目: 云計算

在Ubuntu LNMP(Linux, Nginx, MySQL, PHP)環境中監控服務器狀態是確保系統穩定性和性能優化的關鍵步驟。以下是一些常用的監控工具和方法,可以幫助你有效地監控服務器狀態:

常用監控工具

  • top 和 htop:實時查看系統的資源占用情況,top是Linux默認安裝的命令行工具,htop是其增強版本,提供更友好的交互界面。
  • vmstat 和 free:用于查看系統虛擬內存、進程、I/O、CPU等性能的統計信息。free主要用于查看內存使用情況。
  • iostat:監控CPU的使用率和磁盤I/O性能,幫助診斷磁盤性能問題。
  • df 和 du:顯示文件系統的磁盤空間使用情況,du用于顯示指定目錄的磁盤使用情況。
  • netstat 和 ss:網絡監控工具,分別用于查看網絡連接、監聽端口等信息。
  • systemd 日志監控:使用journalctl命令查看系統日志,檢查系統異常。
  • nmon:一個綜合性能監控工具,可以同時查看CPU、內存、磁盤和網絡的性能指標。
  • Prometheus 和 Grafana:用于收集和存儲時間序列數據,并進行可視化監控。
  • Netdata:一個開源的實時系統監控工具,提供直觀的圖表展示。
  • Nagios 和 Zabbix:廣泛使用的開源監控系統,支持自定義報警規則等功能。
  • Munin:一個輕量級的監控系統,提供圖表展示。

監控腳本示例

  • CPU占用率監控
#!/bin/bash
THRESHOLD=80
EMAILS="xxxxxxx@163.com,xxxxxxx@qq.com"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
echo "$CURRENT_TIME - 當前CPU使用率:$CPU_USAGE%"
if (( $(echo "$CPU_USAGE > $THRESHOLD" | bc -l) ));then
    echo "$CURRENT_TIME - CPU 使用率超過閾值($THRESHOLD%),當前使用率:$CPU_USAGE%" | mail -s "CPU 使用率報警" $EMAILS
    echo "$CURRENT_TIME - 報警郵件已發送至 $EMAILS"
fi
  • 內存使用率監控
#!/bin/bash
MEMORY_THRESHOLD=90
EMAILS="xxxxxxx@163.com"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
MEMORY_USAGE=$(free | grep Mem | awk '{printf("%.2f"), $3/$2 * 100.0}')
echo "$CURRENT_TIME - 當前內存使用率:$MEMORY_USAGE%"
if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) ));then
    echo "$CURRENT_TIME - 內存使用率超過閾值($MEMORY_THRESHOLD%),當前使用率:$MEMORY_USAGE%" | mail -s "內存使用率報警" $EMAILS
    echo "$CURRENT_TIME - 內存報警郵件已發送至 $EMAILS"
fi
  • 磁盤空間使用率監控
#!/bin/bash
DISK_THRESHOLD=95
EMAILS="xxxxxxxxxxxx@163.com"
DISK_PARTITION="/"
CURRENT_TIME=$(date '+%Y-%m-%d %H:%M:%S')
DISK_USAGE=$(df -h $DISK_PARTITION | awk 'NR==2 {print $5}' | sed 's/%//')
echo "$CURRENT_TIME - 當前磁盤空間使用率:$DISK_USAGE%"
if (( $(echo "$DISK_USAGE > $DISK_THRESHOLD" | bc -l) ));then
    echo "$CURRENT_TIME - 磁盤空間使用率超過閾值($DISK_THRESHOLD%),當前使用率:$DISK_USAGE%" | mail -s "磁盤空間使用率報警" $EMAILS
    echo "$CURRENT_TIME - 報警郵件已發送至 $EMAILS"
fi

通過上述工具和方法,你可以有效地監控Ubuntu LNMP服務器的狀態,確保服務器的正常運行并及時發現潛在問題。

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