【小ネタ】MackerelでBasic認証がかかっているページを外形監視する #mackerelio

こんばんわ、札幌のヨシエです。

少し時間が取れる状況になったので少しずつ自分が試した検証を出していってます。
MackerelでBasic認証をかかっているページを確認する方法を試してみました。

概要

まず、以下のようなURLがあるとします。

http://yoshie-basic

このURLにBasic認証がかかっていると、以下のように401エラーが帰ってきます。

# curl http://yoshie-basic
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>
<hr>

Mackerelの外形監視では、2xx/3xxのレスポンスコードが帰ってくることを監視します。
URL外形監視をおこなう

この前提から監視方法はBasic認証を通過しないことには正常な監視が出来ません。

そのため、対応方法としては2パターン存在すると思います。
※以下のユーザー情報はテストとして、yoshie/passwordで試してます。

パターン①:外形監視URLへユーザー/パスワードを埋め込んでリクエスト送出

外形監視URLへユーザー/パスワード情報を埋め込んでリクエストを送出する形です。

# curl http://yoshie:password@yoshie-basic
BasicAuthentication OK! 

パターン②:外形監視URLへのリクエスト送出時にAuthorizationヘッダーを付与する

次にAuthorizationヘッダーにbase64でエンコードしたユーザー情報を入れてリクエストを送出する形です。

curl http://yoshie-basic -H "Authorization:Basic eW9zaGllOnBhc3N3b3Jk"
BasicAuthentication OK!

実際の設定値について

ここで本題ですが、上記で紹介した2パターンの設定をMackerelで設定する方法を記載します。

パターン①の対応

以下のように監視対象のURL指定へユーザー情報を入れ込みます。

パターン②の対応

HTTPリクエストヘッダにAuthorizationヘッダを追加します。
※NameにAuthorization、Valueにはbasic + <パスワード>を入力します

最後に

Mackerelでの外形監視方法について少し記載させてもらいました。
外形監視にはSSL証明書の有効期限やレスポンスまでの秒数監視も出来るのでぜひ試して頂けると幸いです。