ヤマムギ

growing hard days.

*

サイトのHTTPステータスを5分おきにチェックして200以外ならSlackに通知する

   


すいません。ここ最近出費が重なりまして、某監視サービスのプランを有料プランからFreeプランに戻しました。

なもんで、ブログサイトのステータスだけでも自前でチェックしておかなければと思いまして。

Githubはこちらです

設定方法

  1. Githubからコードをダウンロードして展開します。
  2. 同じフォルダにrequestsをインストールします。
  3. requestsもあわせてAWS Lambda関数をzipからアップロードで作成します。
  4. Slackチームを作ります。errorとnotifyチャンネルを作ります。
  5. Incoming Webhooksを設定してURLを取得します。
  6. 環境変数を設定します。
  7. トリガーをCloudWatch Eventで rate(5 minutes)として5分おきで実行します。

環境変数

  • url_1 : 監視したいURL
  • url_2 ~ 10 : 監視したいURLを10件まで登録出来ます。1だけでもOKです。
  • SLACK_URL : SlackのIncoming Webhooks URLです。

例です

コードの説明

環境変数url_1 ~ 10があればそれを配列にループして、
requests.getでstatus_codeをチェックして、
200でなければSlackのnotifyチャンネルに通知します。

動作確認

はい。5分おきに動いております。
ステータスは200なので何も起こりません。
良いことです。

ありえないページを環境変数のurl_5に追加して404を発生させてみます。

ちゃんと通知出来ましたね。
これで異常が発生したまま気づかないという事態だけは回避出来そうです。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , ,

ad

ad

  関連記事

WordPressのwp-login.php , xmlrpc.phpへのアクセスをAWS WAFで接続元IPアドレスを制限する

AWS CloudWatch LogsエージェントでAmazon EC2上のNg …

SendGridのイベントをAPI Gateway -> Lambda(Python) -> DynamoDBに格納する

SendGridのメールイベントログはコンソールで確認出来るのは直近7日分で一括 …

Amazon LinuxにAlfresco Community Editionをインストールする

ダウンロード準備 Alfresco公式サイトで、「エンタープライズコンテンツ管理 …

AWS CloudFormationでAmazon DynamoDBテーブルを作ってアイテムを追加する

デモ用にDynamoDBテーブルを作って消して、ということをたまにするので、Cl …

AWS EC2 でインスタンスにIPアドレスを紐付ける

AWS EC2で作ったサーバは何もしなければ起動するたびにIPアドレスが変わって …

AWS EC2 インスタンスステータスのチェックで失敗して起動しなくなり復旧

EC2のインスタンスに接続出来なくなったので、AMIから作成してElastic …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

AWS Well-Architected フレームワークによるクラウド ベスト プラクティスのセッションを聞いたので自アカウントの環境を確認してみる

AWS Summit Tokyo 2017で「AWS Well-Architec …

テキストをAmazon PollyでMP3に変換してS3に格納(AWS Lambda Python)

Google Calendar Twilio ReminderのテキストをAma …

TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する

Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意 …