Webサービスのエラー監視について

HTTPのステータスコード500系をわざと発生させてみました。Webサービスの監視・障害対応をされている方の参考になればと思います。
2022.05.30

はじめに

こんにちは。ネクストモード株式会社 のharuです。

ネクストモードではMackerelをベースとしたAWSの監視・障害対応を実施する 運用アシスタント サービスを提供しており、私は該当サービスの企画担当をしています。

現在多くのお客様に「運用アシスタント」をご利用いただいておりますが、どういったアラートが多いのか確認したところ、HTTPステータスコードの500系エラーが多かったため今回500系エラーについてブログにしてみました。

Webサービスは多くの企業でご利用されているかと思いますが、MackerelではApacheのログ監視やALBのHTTPステータスコードの監視が可能でエラー発生時にアラートを通知します。また、エラー発生時にプロセスの再起動、EC2の再起動といった障害対応も運用アシスタントで実施しております。運用アシスタントのご利用に最低台数はないので1台からでも安心してお申込み頂けます。Webサイトからのアラート確認が深夜もあって疲弊している、担当者が退職してしまいナレッジ・スキルが無くて不安などお悩みがある方はぜひお気軽にご相談いただければと存じます。

さて本題ですが今回はHTTPステータスコードが500系エラーがどういったときに発生するのかを実際試してみたくて、わざとエラーを発生させてみました。

1.構成

Webサーバー、APサーバ、DBサーバのWeb3層構造を構築しました。なお、WebサーバーはApacheを利用しています。

2.HTTPステータスコードのエラー検証

今回は下記のエラーコードをわざと発生させてみました。

500 Internal Server Error

502 Bad Gateway

3.500 Internal Server Error

サーバー内部にエラーが発生した場合に発生します。サーバーに使われているPHPにエラーが発生しているときなどに出るそうですが、今回は「.htaccess」をわざと記載ミスしてみました。

■「.htaccess」ファイルの最終行に「ss」という文字を記載

<Files ~ ".(log)$">
    deny from all
</Files>
ss

■ブラウザでWebサイトにアクセスした結果

下記の通り「500」エラーが発生しました。

■Mackerelの結果

MackerelでALBの「HTTP Code Count」を確認しましたが、ちゃんとカウントアップしてますし、更に5xxエラーが〇回発生したらアラート通知するといったことも可能です。

4.502 Bad Gateway

Webサーバーとの通信に問題があるときに発生します。今回はApacheを停止してブラウザでWebサイトにアクセスしました。

■ブラウザでWebサイトにアクセスした結果

■Mackerelの結果

5.まとめ

今回は500、502エラーをわざと発生させてMackerelでちゃんと監視できていることを見てみました。次回は503、504エラーをわざと発生させてみます。

Webサイトは一般的なものだからこそ、監視・障害対応で苦労されている方も多いはずです。Webサイトの企画に注力したいけど、アラート通知が多くて困っている、サイト構築に手一杯で監視・障害対応を考えて余裕がないなど、Webサイトの監視・障害対応で悩んでいる方は弊社サービスの運用アシスタントまでお気軽にご相談いただければと思います。