LinuxのCronとシェルスクリプトで気軽に外部サービスのヘルスチェックを行う方法

広告

ZabbixやNagios、Prometheusは大きすぎる!

大規模な監視システムを設定することなく、Linuxシステムで簡単に外部サービスのヘルスチェックを行いたい場合があります。ZabbixやNagios、Prometheusなどの監視ツールは強力ですが、設定が複雑であったり、小規模な用途にはオーバースペックであったりすることがあります。本記事では、シンプルなスクリプトを用いて特定のサーバーの特定のポートに対するヘルスチェックを行う方法を書き溜めます。

使うもの

  • nc (netcat) コマンド

ステップ1: ヘルスチェックスクリプトの作成

  1. スクリプトの作成: 以下の内容で health_check.sh という名前のファイルを作成します。この スクリプトは設定ファイルからホスト名、ポート、そしてラベルを読み取り、それぞれのサービスに対してヘルスチェックを行います。
  1. スクリプトに実行権限を付与: 次のコマンドを実行して、スクリプトに実行権限を付与します。

ステップ2: 設定ファイルの作成

  1. 設定ファイルの作成: hosts.txt という名前の設定ファイルを作成し、以下の形式でサービスの情報を記載します。各行には ラベル:ホスト:ポート の形式で記述します。

ステップ3: スクリプトの実行と監視

  1. スクリプトの実行: 以下のコマンドでスクリプトを実行し、各サービスのヘルスチェックを行います。
  1. 定期的なヘルスチェック: 必要に応じて、cron を使用してこのスクリプトを定期的に実行する ように設定することができます。

下記の例は10分単位でヘルスチェックします。

まとめ

この方法を用いることで、複雑な監視システムを設定することなく、簡単に外部サービスの稼働状況をヘルスチェックできます。

Linux最高!

ncコマンドについて詳しくはこちら
https://linux.die.net/man/1/nc

じゃあねー。