カテゴリ: Flask 更新日: 2026/01/29

FlaskでSentryを導入してエラー監視を行う手順まとめ!初心者でも安心のトラブル解決術

FlaskでSentryを導入してエラー監視を行う手順まとめ
FlaskでSentryを導入してエラー監視を行う手順まとめ

先生と生徒の会話形式で理解しよう

生徒

「先生!アプリを公開した後にエラーが起きても、自分が寝ている間だと気づけないですよね?誰かがエラーに遭遇したことを自動で教えてくれる便利な道具はありませんか?」

先生

「それはとても大切な視点です!『Sentry(セントリー)』というサービスを使えば、アプリでエラーが起きた瞬間にあなたのスマホやメールに通知を飛ばして、中身を詳しく教えてくれるんですよ。」

生徒

「通知が来るんですか!それはまるで見守りカメラみたいですね。パソコン操作に自信がない私でも設定できますか?」

先生

「大丈夫です。Flask専用の連携ツールがあるので、数行のコードを追加するだけで導入できます。さっそく手順を学んでいきましょう!」

1. Sentry(セントリー)とは何か?

1. Sentry(セントリー)とは何か?
1. Sentry(セントリー)とは何か?

プログラミング未経験の方にとって、「エラー監視」と言われてもピンとこないかもしれません。Sentryとは、一言で言えば「アプリ専用の自動通報システム」です。

例えば、あなたがお店を経営しているとします。店員がいない夜中にレジが故障したとき、翌朝まで気づけないのは困りますよね。Sentryを導入すると、故障した瞬間に「レジの○番の部品が壊れました!」とあなたの携帯に連絡が入るようになります。Flaskで作ったWebアプリも同じで、ユーザーが操作中にエラー画面を見てしまったとき、その情報を即座にキャッチして記録してくれるのがSentryの役割です。これにより、アプリの「可観測性(外から中身の状態がよく見えること)」が飛躍的に高まります。

2. なぜログファイルだけでは不十分なの?

2. なぜログファイルだけでは不十分なの?
2. なぜログファイルだけでは不十分なの?

これまでの学習で、自分のパソコン内に「ログファイル」を保存する方法を学びました。しかし、これには弱点があります。それは「自分からファイルを開きに行かないとエラーに気づけない」ということです。また、ファイルがどんどん増えて管理が大変になることもあります。

Sentryを使うと、エラー情報をネット上の専用画面(管理画面)にまとめてくれます。そこには、「どのOSを使っているユーザーが」「どのURLで」「どんなエラーを出したか」という詳細な情報が整理されて表示されます。つまり、日記帳(ログファイル)を自分で読み返す手間を省いて、重要な事件(エラー)だけをピックアップして教えてくれる秘書のような存在なのです。SEOキーワードとしても注目される「エラーモニタリング」の第一歩ですね。

3. Sentryのアカウント作成とDSNの取得

3. Sentryのアカウント作成とDSNの取得
3. Sentryのアカウント作成とDSNの取得

まず、Sentryの公式サイトでアカウントを作る必要があります。登録はメールアドレスがあれば簡単に行えます。ログイン後、新しく「プロジェクト」というものを作成します。ここで「Flask」を選択してください。

プロジェクトを作ると、DSN(Data Source Name)という特別な住所のような文字列が発行されます。これは、あなたのアプリが「エラーを見つけたときに、どこへ報告すればいいか」を示す宛先です。このDSNは後でプログラムに貼り付けるので、コピーしてメモしておきましょう。この設定は、初めてパソコンを触る方でも「ネット上の住所をメモするだけ」と考えれば難しくありません。

4. FlaskにSentry連携ツールをインストールする

4. FlaskにSentry連携ツールをインストールする
4. FlaskにSentry連携ツールをインストールする

次に、あなたのパソコンにSentryとFlaskを仲良しにさせるための専用部品を入れます。黒い画面(ターミナルやコマンドプロンプト)で、以下の命令を打ち込みます。


pip install sentry-sdk[flask]

「pip(ピップ)」とは、Pythonに新しい道具を追加するための魔法の合言葉です。これを実行することで、Sentryの機能があなたのFlaskアプリで使えるようになります。インストールが終われば、準備は完了です。複雑な仕組みを自分で作る必要がないのが、Flaskの拡張機能の素晴らしいところです。

5. アプリにSentryを組み込む基本コード

5. アプリにSentryを組み込む基本コード
5. アプリにSentryを組み込む基本コード

それでは、実際にPythonのコードを書いていきましょう。アプリの起動時にSentryを「初期化(動き出せる状態にすること)」する設定を加えます。


import sentry_sdk
from sentry_sdk.integrations.flask import FlaskIntegration
from flask import Flask

# Sentryの設定:dsnの中身は自分のものに書き換えてください
sentry_sdk.init(
    dsn="https://example@sentry.io/12345", # ここに自分の住所を入れる
    integrations=[FlaskIntegration()],
    # エラー情報をどのくらいの割合で送るか(1.0は100%全部送るという意味)
    traces_sample_rate=1.0
)

app = Flask(__name__)

@app.route("/")
def hello():
    return "Sentry監視がスタートしています!"

6. わざとエラーを起こして通知を確認してみよう

6. わざとエラーを起こして通知を確認してみよう
6. わざとエラーを起こして通知を確認してみよう

設定ができたら、本当に動くかテストしてみましょう。プログラミングでは、わざと失敗させてみることも大切な練習です。以下のコードを追加して、エラーが発生したときにSentryの画面に情報が飛んでいくか確かめます。


@app.route('/debug-error')
def trigger_error():
    # ゼロで割り算をするというエラーをわざと発生させる
    division_by_zero = 1 / 0
    return "このメッセージは表示されないはずです"

if __name__ == "__main__":
    app.run()

ブラウザで /debug-error にアクセスすると、画面にはエラーが出ますが、その裏側でSentryが「大変だ!エラーが起きたぞ!」と記録を取ってくれます。Sentryの管理画面を開いて、新しいエラーが届いているのを確認できた時の感動は、初心者の方にとって大きな自信になるはずです。

7. エラー以外の便利な情報「パンくずリスト」とは?

7. エラー以外の便利な情報「パンくずリスト」とは?
7. エラー以外の便利な情報「パンくずリスト」とは?

Sentryのすごいところは、エラーが起きた瞬間だけでなく、その「直前の動き」も教えてくれる点です。これをBreadcrumbs(パンくずリスト)と言います。童話のヘンゼルとグレーテルが道に迷わないようにパンくずを落としたのが由来です。

「エラーが起きる前に、ユーザーはどのボタンを押したのか」「どんなログが出ていたのか」が時系列で表示されます。これにより、犯人探し(デバッグ)が圧倒的に楽になります。もしあなたがパソコン操作に慣れていなくても、このリストを見れば「あ、この操作がきっかけだったんだな」と直感的に理解できるようになります。

8. メッセージを直接Sentryに送る方法

8. メッセージを直接Sentryに送る方法
8. メッセージを直接Sentryに送る方法

プログラムが完全に壊れていなくても、「ここを通ったときに注意しておきたいな」というメッセージを手動で送ることもできます。これは、日記に「今日はちょっとレジの調子が怪しかった」と書き残すようなものです。


from flask import Flask
import sentry_sdk

app = Flask(__name__)

@app.route('/warn')
def send_warning():
    # エラーではないけれど、Sentryにメッセージを記録する
    sentry_sdk.capture_message("誰かが警告ページにアクセスしました!")
    return "Sentryにメッセージを送りました。"

9. セキュリティとプライバシーの注意点

9. セキュリティとプライバシーの注意点
9. セキュリティとプライバシーの注意点

Sentryは非常に便利ですが、注意点もあります。それは、ユーザーのパスワードやクレジットカード番号などの「個人情報」をうっかり送らないようにすることです。デフォルトではある程度保護されていますが、ログの内容をそのまま送信する設定にしている場合は、機密情報が含まれないよう気を配る必要があります。

「何でもかんでも監視すれば良い」のではなく、「安全に、必要な情報だけを監視する」のがプロのエンジニアへの道です。初心者の方はまず、パスワードなどの入力を扱うページでは、むやみに詳細なメッセージを記録しないということを意識しておきましょう。

10. 運用を楽にする通知設定のカスタマイズ

10. 運用を楽にする通知設定のカスタマイズ
10. 運用を楽にする通知設定のカスタマイズ

最後に、Sentryの通知設定について触れておきます。エラーのたびにメールが来ると、忙しいときは大変ですよね。Sentryでは「同じエラーが10回起きたら通知する」とか「特定の重大なエラーのときだけSlack(チャットツール)に送る」といった細かいルールが決められます。

これによって、あなたは本当に対応が必要なときだけアプリと向き合えば良くなります。自分の時間を大切にしながら、アプリの品質を高く保つ。これこそがSentryを導入する最大のメリットです。ぜひ、あなたのFlaskアプリにもこの「頼れる監視員」を招待してあげてくださいね!

カテゴリの一覧へ
新着記事
New1
Flask
Flaskのログレベル(DEBUG/INFO/WARNING/ERROR)を使い分ける方法を完全ガイド!
New2
Python
Pythonのfrozensetとは?ミュータブルなsetとの違いをわかりやすく解説
New3
Python
Pythonでセットを活用してデータをフィルタリングする方法!初心者でもわかるセットの基本と使い方
New4
Python
Pythonの辞書操作まとめ!初心者が知っておくべき便利ワザ集
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonの文字列から一部を抽出する方法!スライスを使った基本的な切り出し方
No.2
Java&Spring記事人気No2
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.3
Java&Spring記事人気No3
Flask
FlaskアプリのSECRET_KEYの設定方法を完全ガイド!初心者でもわかるセキュリティ対策
No.4
Java&Spring記事人気No4
Flask
Flaskで非同期処理を成功させるベストプラクティス集|初心者でも失敗しない考え方
No.5
Java&Spring記事人気No5
Django
Djangoモデル入門|初心者が最初に知るべきORMの基本操作
No.6
Java&Spring記事人気No6
Python
Pythonのリストを分割する方法を完全ガイド!初心者でもわかるスライス・split・itertoolsの使い方
No.7
Java&Spring記事人気No7
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.8
Java&Spring記事人気No8
Flask
Flaskのログをファイルに保存する方法!初心者でもわかる設定手順を徹底解説