Linuxコマンドでサーバーの死活監視、Webサーバー監視を行う方法

WindowsやLinuxなどのサーバー環境をしっかりと監視する場合は、監視ツールを導入することが多いですが、監視ツールを導入するほどでない場合でも、標準的なコマンドだけで、ある程度の監視ができます。

そこで、ここではLinux(CentOS7)マシンから、標準的なコマンドでサーバーの死活監視やWebサーバーの監視を行う方法を紹介します。

動作環境

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
CentOS Linux 7.6.1810

対象マシンの死活を監視する

死活をチェックするコマンドといえば「ping」です。

以下のコマンド例では、pingコマンドを利用して対象マシン(192.168.XXX.XXX)の死活をチェックし、応答がなかった場合に、指定した宛先(hogehoge@example.com)に電子メールを送信します。

# ping -c 1  192.168.XXX.XXX > /dev/null 2>&1 || (echo "no response from 192.168.XXX.XXX" | mail -s ping_alert hogehoge@example.com)

なお、mailコマンドで外部メール送信するには、事前設定が必要な場合があります。

詳しくは以下の記事をご参照ください。

CentOS7で外部にメール送信できない理由と対処方法
自宅サーバー(CentOS7)から外部へメールを送信しようとしても、ほとんどの場合、そのままの設定では宛先のメールサーバーへ直接メールを...

Webサーバーのサービスを監視する

Webサーバーのサービス稼働状況を監視する場合は「wget」コマンドが便利です。

以下のコマンド例では、指定したURL(https://www.hogehoge.com)へ接続できるかを確認し、接続できなかった場合に、指定した宛先(hogehoge@example.com)に電子メールを送信します。

# wget -q -o /dev/null --spider https://www.hogehoge.com || (echo "no response from www.hogehoge.com" | mail -s HTTP_alert hogehoge@example.com)

繰り返し実行する

上記のコマンドは、どちらも1回だけの実行ですが、whileコマンドと組み合わせることで、繰り返し実行することもできます。

たとえば、上記のコマンドで常時監視したい場合は、次のように実行することで、キーボードから「CTRL」+「C」を入力するまで実行し続けることができます。

以下のコマンド例では、30秒間隔で実行しています。

# while true; do ping -c 1  192.168.XXX.XXX > /dev/null 2>&1 || (echo "no response from 192.168.XXX.XXX" | mail -s ping_alert hogehoge@example.com);sleep 30; done

あとがき

詳細に監視する用途には向きませんが、状況だけでもチェックしておきたい場合には、ここで紹介したようにコマンドで何とかできます。

なお、コマンドで何とかする場合はあまり凝りすぎないことをおススメします。最初に書いていますが、詳細にチェックしたいなら、素直に監視ツールを導入することをおススメします。

おすすめコンテンツ:
トップへ戻る