PHP 監測伺服器

在網上的伺服器監測程式有很多, 功能都十分完善, 但如果你像我一樣只要監測伺服器是否 down 機, 而且全都是 httpd 伺服器, 可以透過 PHP 簡單實現, 例如這樣就可以很簡單地看到伺服器是否可以連接:

當然上面的程式很陽春, 只會印出伺服器是否可以連接, 而且只可以人手打開上面 PHP 網頁才可以監測。其實只要透過 crontab 自動執行 PHP, 就可以讓 PHP 自動監測伺服器, 並在發生問題時以電郵通知管理員。另外也可以在要監測的伺服器上放一個細小的 PHP 程式, 會印出系統的 load average, 當發覺 load average 超過指定數值時同樣發電郵通知管理員。


以下兩個 PHP, 分別放到要監測的伺服器以及執行監測的伺服器上, 先將以下 server-status.php 放到要監測的伺服器上, 讓外部可以存取:

server-status.php

然後將以下 server-monitor.php 放到執行監測的伺服器, 不放在 web 目錄都可以, 因為只是透過 crontab 執行:
server-monitor.php

將上面 server-monitor.php 設定成可執行及放到 crontab :

chmod +x server-monitor.php
crontab -e

開啟 crontab 後, 加入這行:

*/5 * * * * /path/to/server-monitor.php > /dev/null 2>&1

儲存後便完成了, 上面這行是每 5 分鐘自動執行 /path/to/server-monitor.php, 當要監測的伺服器無法連接, 或 load average 到達 2 時, 就會發電郵通知定義了的管理員電郵.


Leave a Reply