向伺服器發出無限 icmp 請求是監視連線的好方法嗎?

向伺服器發出無限 icmp 請求是監視連線的好方法嗎?

我有一個自託管 vps 伺服器,我希望始終在我的家用電腦的系統托盤中查看其狀態(如果可以訪問或無法訪問)。為此,我編寫了一個簡單的 bash 腳本,如下所示:

#! /bin/bash

while true
do
    if ping -c 1 -W 1 vps > /dev/null
    then
        # Draw green icon in the tray
    else
        # Draw red icon in the tray
    fi
    sleep 1
done

就是這樣。這種連續的請求會對頻寬產生任何有意義的影響嗎?有更好的方法來監控連線嗎?

答案1

評論交流讓我更多地思考這個問題,並最終產生了一系列需要實際答案的想法。

答案是否定的,如果您的目標是了解 VPS 是啟動還是關閉,那麼 ping 並不是監控 VPS 連線的好方法。

此問題中的ping(或ICMP 請求)會從您的電腦發送一個小資料包,發送到您的路由器、互聯網、資料中心、他們的路由器,可能還會發送到伺服器,最後發送到該伺服器上的虛擬實例。

通常,資料中心的網路中會有智慧型交換器來偵測 ICMP 請求,這些交換器會回應並確認您的 ICMP 請求。 Ping 不會告訴您 VPS 是否正在運作。

此外,如果您從電腦和網路中的某個位置執行 ping 操作,則會出現問題:例如。糟糕的互聯網連接,有問題的調製解調器/路由器,將無法發送 ICMP 請求,給出錯誤的請求響應,考慮到您 ping 您的 VPS 可能會觸發 VPS 已關閉,但實際上它是您自己的互聯網無法正常工作。

與資料中心網路和 VPS 伺服器相比,家庭網路經常無法正常運作。

VPS 當然可能會當機,但使用 ICMP 套件並不能告訴您是否是這種情況。

在許多情況下,當您租用 VPS 時,提供者也會提供您可以尋找的服務狀態頁面。該頁面通常由監控工具自動生成,並且更加準確。

此外,還可以在 VPS 上安裝監控工具,定期檢查遠端伺服器,如果檢查失敗,遠端伺服器會說:“嘿,我錯過了來自伺服器 X 的檢查”,如果發生這種情況,例如…連續5次,會傳送電子郵件給您。

最後一種方法是您最好的選擇。如果你擅長編程,你可以用 php 編程一些簡單的東西,儘管你在其他地方需要網頁寄存服務。 VPS 將在瀏覽器中開啟一個 URL,該頁面每 10 秒刷新一次,並且該頁面也會將上次刷新寫入日誌中。同一網頁伺服器上的 cron 作業會檢查上次刷新情況,如果發生時間太久,則會向您發送電子郵件。

當然,如果 VPS 重新啟動,您將必須再次開啟瀏覽器,但有一些方法可以自動執行此操作。

還有專門用於監控伺服器的程序,但我想不出有什麼便宜的。

相關內容