オープンソースステータスページ比較:Upptime vs Cachet vs Gatus でサービス稼働状況を公開する
オープンソースラボ編集部 ・ 2026年6月13日
オープンソースステータスページ比較:Upptime vs Cachet vs Gatus でサービス稼働状況を公開する
Atlassian Statuspage(月額$29〜)やBetterUptime(月額$20〜)を使わなくても、サービスの稼働状況をオープンソースでリアルタイム公開できます。顧客に対するインシデント対応の透明性を低コストで確保しましょう。
なぜステータスページが必要か
障害時に顧客が最初にすることは「公式ステータスページを確認する」ことです。ステータスページがなければ:
- サポートチケットが殺到して対応工数が増大
- SNSで混乱した情報が拡散
- 顧客の信頼を失う
ステータスページ1ページでサポートコストを大幅削減できます。
主要3ツールの概要
Upptime
GitHubリポジトリとGitHub Actionsだけで動作する画期的なステータスページです。サーバーが不要で、GitHub ActionsがURLを定期的にチェックし、ダウン時は自動でGitHub Issueを作成します。
# .github/workflows/uptime.yml(Upptimeの設定例)
name: Upptime
on:
schedule:
- cron: "0 * * * *"
workflow_dispatch:
jobs:
summary:
runs-on: ubuntu-latest
steps:
- uses: lowlighter/upptime@v2
with:
token: ${{ secrets.GH_PAT }}
# .upptime.yml(監視サイトの設定)
owner: your-org
repo: upptime
sites:
- name: メインサイト
url: https://example.com
- name: API
url: https://api.example.com/health
- name: 管理画面
url: https://admin.example.com
expectedStatusCodes: [200, 302]
Cachet
Laravelで書かれた洗練されたインシデント管理+ステータスページです。コンポーネント・インシデント・メンテナンス通知を管理でき、Slack/メール通知との統合も容易です。
docker run -d --name cachet \
-e APP_KEY=your-laravel-key \
-e DB_DRIVER=pgsql \
-e DB_HOST=postgres \
-e DB_DATABASE=cachet \
-p 8000:8000 \
cachethq/docker:latest
Gatus
Goで書かれた高速・軽量ヘルスダッシュボードです。HTTP・TCP・DNS・ICMP・gRPCのエンドポイント監視と、Prometheus metricsエクスポートを組み合わせたシンプルなステータスページを構築できます。
# gatus.yaml
endpoints:
- name: API
url: https://api.example.com/health
interval: 1m
conditions:
- "[STATUS] == 200"
- "[RESPONSE_TIME] < 500"
- "[BODY] == pat(*healthy*)"
alerting:
slack:
webhookUrl: $SLACK_WEBHOOK
- name: Database TCP
url: tcp://postgres:5432
interval: 30s
conditions:
- "[CONNECTED] == true"
機能比較表
| 比較項目 | Upptime | Cachet | Gatus |
|---|---|---|---|
| インフラ不要 | ✅ GitHub Actions | ❌ | ❌ |
| インシデント管理 | ✅ GitHub Issues | ✅ 高機能 | ⚠️ |
| カスタムドメイン | ✅ GitHub Pages | ✅ | ✅ |
| コンポーネント別 | ✅ | ✅ | ✅ |
| メンテナンス通知 | ✅ | ✅ | ❌ |
| Slack通知 | ✅ | ✅ | ✅ |
| メール通知 | ✅ | ✅ | ✅ |
| Prometheusメトリクス | ❌ | ❌ | ✅ |
| APIエンドポイント | ✅ | ✅ | ✅ |
| 監視間隔(最小) | 1分 | 手動 | 1秒 |
| TCP/DNS監視 | ❌ | ❌ | ✅ |
| レスポンスボディ確認 | ❌ | ❌ | ✅ |
| ライセンス | MIT | BSD 3-Clause | Apache 2.0 |
| GitHub Stars | 15k+ | 14k+ | 6k+ |
Upptimeの自動インシデント管理
Upptimeのユニークな機能は「GitHub Issueがそのままインシデント管理」になる点です。URLがダウンすると自動でGitHub Issueが開かれ、復旧時に自動クローズされます。Issue本文にはダウン時間・レスポンスコードが自動記録されます。GitHub ActionsのシークレットにSlack Webhook URLを登録すれば、インシデント発生・解消のSlack通知も自動化できます。
コミュニケーション・チーム通知ツールはコミュニケーションカテゴリ(/categories/communication)で、DevOpsモニタリングツールはDevOpsカテゴリ(/categories/devops)でも探せます。
FAQ
Q. AtlassianStatuspageとの違いは何ですか?
A. Statuspageは月額$29〜のSaaSで、Jira Software・Confluenceとの統合が強力です。UpptiME/Cachet/Gatusはセルフホストで費用はインフラ代のみです(Upptimeは完全無料)。デザインはStatuspageの方が洗練されていますが、機能的には十分代替できます。
Q. Upptimeはどこにステータスページをホストしますか?
A. GitHub PagesにSPAとしてデプロイされます。カスタムドメインも設定可能(GitHub Pagesのカスタムドメイン機能を使用)です。完全に無料で、GitHub ActionsのFree枠(2,000分/月)で十分運用できます。
Q. GatusはPrometheusとどう連携しますか?
A. Gatus自体がPrometheusのメトリクスエンドポイント(/metrics)を提供します。Prometheusでスクレイプしてエンドポイントの可用性・レスポンスタイムをGrafanaでグラフ化するスタックが人気です。既存のGrafana/Prometheusスタックがあるチームに最適です。
Q. 複数サービス(Web・API・DB・CDN)を分けて表示できますか?
A. 3ツールとも「コンポーネント」単位で分けて表示できます。例: サービス全体→Webフロント・API・Supabase・Cloudflare CDNをそれぞれ別コンポーネントとして表示し、部分障害(「APIは正常、WebのみCDN問題あり」等)を正確に伝えられます。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| インフラ不要・コストゼロ | Upptime |
| インシデント管理+美しいUI | Cachet |
| 詳細な監視・Prometheus連携 | Gatus |