こんにちは。 在宅勤務で予想通り肥大化して、顔がアンパンマン化しつつある Bigface 代表)荒井です。
本日は、Webサイトの死活監視を超簡単に実施する方法を紹介します。
なるべく話を複雑にしたくないため、定期的に接続チェックし、接続不可だった時はしかるべき宛先に通知する。というシンプルシナリオで作りました。
上級者は自動対処まで実装など、チャレンジいただいても楽しいと思います。
Logic Appsを使ったWebサイトの死活監視で必要なものは、以下のとおりです。
【必要なもの】
1)死活監視したい対象サイトのURL
2)サイトが接続不可になっている場合の通知先(メール、Slack、何でもOK)
3)マウスを操作するスキル
4)Azureサブスクリプション
【大まかな流れ】
1)Azure Portal上でLogic Appsを作成します。
2)Logic Appsで実行スケジュールを作成します。
3)Logic Appsで接続チェック対象のサイトを登録します。
4)Logic Appsで接続OK、NG時の通知先、内容を決めます。
5)いざ!動作確認!!&お疲れ様でした!
実施手順
1.Azure Portalへログインし、「リソースの作成」を選択します
2.Marketplaceで「Logic Apps」と入力&検索します
3.「作成」を選択します
4.Logic Appsのアプリ名の入力と配置先のリージョン、リソースグループを選び、「確認と作成」を選択します
5.作成されたLogic Appsの概要ページから「空のロジックアプリ+」を選択します
6.検索欄に「繰り返し」と入力し検索。表示された「スケジュール - 繰り返し」を選択します
7.表示された「繰り返し」の間隔、頻度を任意の値に修正し、監視対象のWebサイトの接続頻度を設定します。続いて「+新しいステップ」を選択します
8.検索欄に「スコープ」と入力し検索。表示された「制御 - スコープ」を選択します
9.スコープ内の「アクションの追加」を選択します
10.検索欄に「HTTP」と入力し検索。表示された「HTTP」を選択します
11.監視対象のWebサイトに関する情報を登録します。方法は「GET」、URIは「監視対象のWebサイトのURL」を入力します。
12.続いて、HTTP実施後の通知処理を定義します。スコープ内の「+アクションを追加」を選択します。
13.検索欄に「条件」と入力し検索。表示された「制御 - 条件」を選択します
14.監視対象のWebサイトが動いているか否か判断させます。以下の画面のように設定します。状態コードはHTTPの結果が200なら正常、それ以外は、それ以外だよ!ってことです。詳細は「Azure Logic Apps から HTTP または HTTPS でサービス エンドポイントを呼び出す - 出力の詳細」を参考にどうぞ。
15.【ここが重要!】「条件」の「…」を選択し、「実行条件の構成」を選択します。
16.【ここが重要!】表示されるチェックボックスは全部レ点します。ここで全部レ点しないと、状態コード200以外が発生した時にfalse判定されなくなるので超注意!
17.続いて、true/false判定時のアクションを定義します。「+アクションの追加」を選択します。
18.検索欄に「メールの送信」と入力し検索。表示された「Office 365 Outlook - メールの送信(V2)」を選択します。本ブログではメールの通知を参考として記載していますがSlack連携等、お好みの連絡方法で設定いただいて全然大丈夫です。また、true判定時の通知がうざければtrue時のアクションは無しでも全然いいと思います。
19.後は表示された内容に、「宛先」、「件名」、「本文」等を入力するだけです。17.~18.の手順を行いfalse判断時の通知方法も合わせて作ります。
以下の画面ではtrue判断時の通知、false判断時の通知設定を終えた画面サンプルになります。
20.最後にLogic Appsでこのアプリの設定を保存します。「保存」を選択します。
21.後は7.で定義した繰り返しの頻度で監視対象のWebサイトが動いているのか、お亡くなりになっているのか、Logic Apps経由で定期的な確認が入り、Webサイトの状態を評価してtrue/falseで定義した通知が届くという感じです。
以上です。いかがでしたでしょうか?
マウス操作とキーワード入力のみで従来の運用監視ソフトや負荷分散装置が担っていたことを簡単に作れましたね。
簡単で効果的で最高ですね。Logic App最強だな。
つまり、Azure最高ッ!!!
ということで「超簡単!Logic Appsを使ったWebサイトの死活監視方法をご紹介!」でした―
最後までお読みいただき、ありがとうございました。
追伸:
なぜ、スコープを定義しないといけないのか?という疑問が残った方向けの情報です。スコープを使用せずに、「条件」を定義すると、「実行構成の条件」が設定不可となり、状態コード200以外の例外が発生した時にエラー制御できません。「実行構成の条件」が無くても「条件」がいい感じに実施してくれそうな雰囲気がありますが、全然ダメで「条件」のアクションが異常終了し、Logic Appとしても異常終了しちゃいます。なのでこれはオマジナイなんだ!と思って、スコープ内で「条件」を使ってみてくださいませ。