curlコマンドを利用して、簡易URL監視システムを作成

curlコマンドを利用して、簡易URL監視システムを作成

大体のLinux機には、curlコマンドが利用可能であるため、今回はcurlコマンドを利用して
簡易的なURL監視システムを構築してみます。

前提

  • Linux機にcurlコマンドがインストールされていること
  • 監視シェルを実行するサーバがインターネットに接続できること
  • bash環境であること
  • cron設定が可能であること
  • chatwork APIが発行済みであること
  • 通知用のグループチャットが作成済みであること

chatworkのAPI発行手順等については、以前の記事
SSHログイン時に、ログインユーザをchatworkに通知させる方法
を参照してください。

シェルの作成

シェルを利用して今回構築します。
下記の内容で、お好きな場所に保存してください。
変数は、自身が管理しているURL等でお試しください。

ステータスコードが200意外の場合にすべてエラーで通知する内容になっています。
リダイレクト系の300であった場合においても、すべてエラーとして通知しますのでご注意ください。

動作確認

シェルを実行して動作確認をします。

問題なくステータスコード200が返ってきた場合には、標準出力にOKと表示します。

URLを書き換えて再度実行させ、エラー状態で実行した場合には下記のようにchatworkに通知がされます。

supurlwatch

定期実行

毎回手動でシェルを実行するわけにもいかないので、cronに登録し定期的にURLを監視するようにします。
30分に1回に今回はしてみました。

私の場合での配置場所なので、こちらもご自身の環境にあわせて変更してください。

まとめ

どうしても外部の監視システムが利用できない場合にこういった形で外部監視の仕組みを入れるのもいいかもしれません。
このスクリプトでは単独URLしか監視ができないので、シェルにもう一工夫必要かと思います。
curlではレスポンスタイムも出力可能なので、シェルを修正すると応答時間を毎回通知することも可能になります。
グラフにするのが大変かもしれませんが・・・。

今回はシェルでやりましたが、結構準備や手間が必要なので外部監視等であれば是非弊社のモニタリングプラスをご検討ください。
モニタリングプラスであれば、エラー検知はもちろんのこと応答時間が自動的にグラフ化されるため、パフォーマンス資料に最適です。

monitoring
また世界5カ所からの監視にも対応しているため、グローバル展開されている場合においてはアクセス元ごとの応答時間統計を取得できるため対応を検討することができます。

モニタリングプラスの問い合わせはこちらからどうぞ!