オープンソース死活監視ツールの決定版:Uptime Kuma vs Gatus vs Upptime 比較ガイド
オープンソースラボ編集部 ・ 2026年6月13日
オープンソース死活監視ツールの決定版:Uptime Kuma vs Gatus vs Upptime 比較ガイド
サービスが落ちていることをユーザーから報告される前に、自分たちで検知できていますか?死活監視(Uptime Monitoring)は、SREの基本中の基本です。本記事では、オープンソースの主要3ツールを比較し、導入方法から通知設定まで解説します。
なぜ死活監視が必要なのか
平均的なWebサービスのダウンタイムコストは1分あたり数千〜数万円とも言われます。早期検知で対応時間を短縮することが収益保護に直結します。監視SaaS(Pingdom、Statuspage)は月額数万円かかりますが、オープンソースなら自前でホストして同等機能を実現できます。
主要3ツールの概要
Uptime Kuma
GitHub Stars 65k+を誇る圧倒的人気No.1の自己ホスト型監視ツールです。Netflixのような洗練されたダークテーマUIで、非エンジニアでも直感的に操作できます。
docker run -d --restart=always \
-p 3001:3001 \
-v uptime-kuma:/app/data \
--name uptime-kuma \
louislam/uptime-kuma:1
Gatus
Go言語製の設定ファイル(YAML)ベースの監視ツールです。Infrastructure as Codeの考え方で監視設定をコード管理でき、Kubernetes環境との相性が抜群です。
endpoints:
- name: My API
url: https://api.example.com/health
interval: 30s
conditions:
- "[STATUS] == 200"
- "[RESPONSE_TIME] < 500"
- "[BODY] jp .status == healthy"
alerts:
- type: slack
failure-threshold: 2
send-on-resolved: true
Upptime
GitHub Actionsをランナーとして使い、GitHub Pagesでステータスページをホストするユニークなアーキテクチャのツールです。インフラ不要で完全無料(GitHub無料枠内)で運用できます。
機能比較表
| 比較項目 | Uptime Kuma | Gatus | Upptime |
|---|---|---|---|
| インフラ要件 | Docker/Node.js | Docker/Go | GitHub Actions |
| 設定方法 | GUI | YAML | YAML(GitOps) |
| HTTP監視 | ✅ | ✅ | ✅ |
| TCP/Ping監視 | ✅ | ✅ | ❌ |
| DNS監視 | ✅ | ✅ | ❌ |
| SSL証明書監視 | ✅ | ✅ | ✅ |
| キーワード監視 | ✅ | ✅ JSONPath | ✅ |
| ステータスページ | ✅ 内蔵 | ✅ 内蔵 | ✅ GitHub Pages |
| 通知先 | 90+チャンネル | 多数 | 多数 |
| Slack通知 | ✅ | ✅ | ✅ |
| PagerDuty連携 | ✅ | ✅ | ✅ |
| カスタムドメイン | ✅ | ✅ | ✅ |
| マルチユーザー | ✅ | ❌ | ❌ |
| 軽量さ | ★★★☆☆ | ★★★★★ | ★★★★★ |
| UI使いやすさ | ★★★★★ | ★★★☆☆ | ★★★☆☆ |
| GitHub Stars | 65k+ | 7k+ | 15k+ |
アラート疲れを防ぐベストプラクティス
死活監視で最大の課題は「アラート疲れ」です:
- 連続失敗後に通知: 1回の失敗ではなく2〜3回連続で通知する
- 時間帯を考慮: 深夜の低トラフィック時は閾値を緩める
- エスカレーション: Slack通知→PagerDuty→電話の段階的アラート
- メンテナンスウィンドウ: 計画メンテ中の通知を一時停止
GatusのKubernetes統合
apiVersion: v1
kind: ConfigMap
metadata:
name: gatus-config
data:
config.yaml: |
endpoints:
- name: Frontend
url: https://app.example.com
interval: 1m
conditions:
- "[STATUS] == 200"
- name: API Health
url: https://api.example.com/health
interval: 30s
conditions:
- "[STATUS] == 200"
- "[BODY] jp .status == ok"
DevOps関連ツールの全体像はDevOpsカテゴリ(/categories/devops)で確認でき、セキュリティ監視ツールはセキュリティカテゴリ(/categories/security)にも多数あります。
FAQ
Q. Uptime Kumaは無料で使えますか?サーバーコストはどのくらいですか?
A. Uptime Kumaのソフトウェア自体は完全無料(MIT ライセンス)です。サーバーコストは、VPS(Hetzner CX11: 月$4〜、Oracle Cloud無料枠)で十分動作します。100監視項目・1分間隔でも512MB RAMで安定稼働します。
Q. 複数拠点からの監視(マルチリージョン)はできますか?
A. Uptime Kumaは単一インスタンスからの監視のみです。マルチリージョン監視が必要な場合、複数リージョンにUptime Kumaを立て、それぞれの結果を集約するか、GatusをKubernetesの複数クラスタにデプロイする方法があります。
Q. APIエンドポイントのレスポンスボディを検査できますか?
A. できます。Uptime Kumaでは「キーワード監視」でレスポンスボディに特定の文字列が含まれるかを確認できます。GatusではJSONPath式で詳細な検査が可能です(例: [BODY] jp .data.status == active)。
Q. ステータスページをカスタムドメインで公開できますか?
A. Uptime Kumaはリバースプロキシ(Nginx/Caddy)経由でカスタムドメインを設定できます。Upptimeのステータスページ(GitHub Pages)はCNAMEレコードでカスタムドメインを設定できます。
Q. ダウンタイムの履歴レポートを出力できますか?
A. Uptime KumaはWebUI上でSLA率(可用性)を確認でき、CSVエクスポートも可能です。GatusはメトリクスをPrometheus形式で出力でき、Grafanaダッシュボードで過去のUptime率を可視化できます。
まとめ
| ユースケース | 推奨ツール |
|---|---|
| 非エンジニアも使う・GUI重視 | Uptime Kuma |
| Kubernetes・GitOps環境 | Gatus |
| インフラゼロコストで始めたい | Upptime |