AI

オープンソースステータスページ比較: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"

機能比較表

比較項目UpptimeCachetGatus
インフラ不要✅ GitHub Actions
インシデント管理✅ GitHub Issues✅ 高機能⚠️
カスタムドメイン✅ GitHub Pages
コンポーネント別
メンテナンス通知
Slack通知
メール通知
Prometheusメトリクス
APIエンドポイント
監視間隔(最小)1分手動1秒
TCP/DNS監視
レスポンスボディ確認
ライセンスMITBSD 3-ClauseApache 2.0
GitHub Stars15k+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
インシデント管理+美しいUICachet
詳細な監視・Prometheus連携Gatus

関連外部リソース

他の記事も読む

Let's Build Together

OSS導入、自社だけで悩まない。

ツール選定から構築・運用・AI活用まで、オープンソースラボ運営元のClasslessが伴走します。初回のご相談は無料です。