
オープンソースのアラートエンジン。時系列モニタリングデータに対応し、Prometheus、VictoriaMetrics、ElasticSearchなどのデータソースに接続。20以上の通知チャネル、アラートノイズ低減、エスカレーション、自己修復自動化をサポート。
<p align="center">
<a href="https://github.com/ccfos/nightingale">
<img src="https://assets.kitploit.com/production/public/readmes/6912/478fc7d999847e20a15fb5b231650ebbb0d483edba4ce0b313091fac474416f2.png" alt="Nightingale" width="100" />
</a>
</p>
<p align="center">
<b>既存のスタックのためのオープンソースアラート</b>
</p>
<p align="center">
<a href="https://github.com/ccfos/nightingale/releases"><img alt="Latest release" src="https://img.shields.io/github/v/release/ccfos/nightingale" /></a>
<a href="https://github.com/ccfos/nightingale/blob/main/LICENSE"><img alt="Apache-2.0 license" src="https://img.shields.io/badge/license-Apache--2.0-blue" /></a>
<a href="https://github.com/ccfos/nightingale/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/ccfos/nightingale" /></a>
<a href="https://hub.docker.com/r/flashcatcloud/nightingale"><img alt="Docker pulls" src="https://img.shields.io/docker/pulls/flashcatcloud/nightingale" /></a>
<a href="https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw"><img alt="Join the Nightingale Slack community" src="https://img.shields.io/badge/Slack-join%20the%20community-brightgreen" /></a>
</p>
<p align="center">
<a href="#quick-start">クイックスタート</a> ·
<a href="https://n9e.github.io/docs">ドキュメント</a> ·
<a href="https://n9e.github.io/download">ダウンロード</a> ·
<a href="https://github.com/ccfos/nightingale/releases">リリース</a> ·
<a href="#community">コミュニティ</a>
</p>
[English](https://github.com/ccfos/nightingale/blob/main/README.md) | [中文](https://github.com/ccfos/nightingale/blob/main/README_zh.md)
Nightingale は、アラートルール、イベント処理、通知ルーティングを一か所にまとめます。すでに運用している Prometheus、VictoriaMetrics、Elasticsearch、Loki、ClickHouse などのデータソースを接続し、アラートを Slack、PagerDuty、およびチームが既に利用しているツールに配信します。
**セルフホスト · Apache-2.0 · 組み込み AI エージェント · MCP サーバー**

## なぜ Nightingale なのか?
- **チームにアラートの所有権を持たせる。** ルールをビジネスグループに整理し、チームの権限を割り当て、UI と API を通じてルールと通知設定を管理します。
- **散在するアラートを一か所に集約する。** 既存のコレクター、ストレージ、Grafana ダッシュボードを維持したまま、メトリクス、ログ、SQL データソースに対してルールを評価します。
- **アラートに何が起きたかを理解する。** ルール評価の記録、過去のイベント、通知結果を確認し、クエリから配信までの流れを追跡します。
## クイックスタート
Git と Docker Compose がインストールされている状態で、同梱の評価用スタックを起動します:
```bash
git clone https://github.com/ccfos/nightingale.git
cd nightingale/docker/compose-bridge
docker compose up -d
```
これにより、Nightingale、MySQL、Redis、VictoriaMetrics、Categrafが起動します。[http://localhost:17000](http://localhost:17000) を開き、**`root` / `root.2020`** でサインインします。
最初のアラートを受け取るには:
1. **データソースを接続します。** 既存のPrometheus互換エンドポイントを追加するか、このComposeスタック内のVictoriaMetricsインスタンスには `http://victoriametrics:8428` を使用します。
2. **アラートルールを作成します。** ビジネスグループとデータソースを選択し、PromQL式を入力します。常に発火するテストには `vector(1) > 0` を使用し、durationを `0` に設定します。
3. **配信を設定します。** 通知チャネルを設定し、通知ルールを作成して、それをアラートルールに紐付けます。テスト通知が届くことを確認してから、テストアラートを無効化します。
このComposeスタックはサンプルの認証情報を使用し、ローカルでの評価用にサービスポートを公開しています。共有ホストやパブリックホストにデプロイする前に、認証情報を変更し、ネットワークアクセスを確認してください。Nightingaleを実行する他の方法については、[デプロイオプション](#deployment)を参照してください。
## スタックへの組み込み方
Nightingaleはデータソースにクエリを実行し、アラート条件を評価し、イベントを処理し、通知をルーティングします。既存のデータは現在のストアにそのまま保持されます。
可視化にはGrafanaを、スケジューリング、エスカレーション、インシデント対応にはオンコールプラットフォームを引き続き使用してください。Nightingaleには、アラートと並行してデータを探索したいチーム向けのダッシュボードも含まれています。
監視スタックなしで始める場合、スタンドアロン構成には小規模な単一インスタンスデプロイ向けのオプションの組み込みTSDBが含まれています。[Categraf](https://github.com/flashcatcloud/categraf) は、ホスト、ミドルウェア、データベース、ネットワークデバイス向けのオプションのコレクターです。
## 主な機能
| 機能 | できること |
| --- | --- |
| データソースをまたぐアラート | PromQL、ログクエリ、SQLを使用して条件を定義します。同じデータソースタイプの複数インスタンスにルールを適用できます。 |
| チームのオーナーシップ | ルールとダッシュボードをビジネスグループで分類し、チームの権限を割り当て、サインイン用にOIDC、OAuth2、LDAP、CASを接続します。 |
| イベント処理とルーティング | 通知をミュートし、アラートを購読し、ラベルをエンリッチまたは書き換え、条件付きパイプラインを通じてイベントをルーティングします。 |
| アラート実行記録 | 評価クエリと結果、アクティブおよび履歴のイベント、通知配信記録を確認します。 |
| 再利用可能なインテグレーション | バンドルされたコレクター設定、アラートルール、ダッシュボードから始められます。有効化する前に、お使いの環境に合わせてクエリとしきい値を確認してください。 |
| 分散評価 | ルールを複数のアラートエンジンに分散し、`n9e-edge` を使用してリモートデータソースの近くでアラートを評価します。 |
通知インテグレーションには **Slack、PagerDuty、Discord、Email、Telegram、Mattermost、Jira、Jira Service Management** が含まれ、カスタム送信先向けにHTTP webhookとスクリプトも利用できます。設定の詳細については、[ネイティブ通知チャネルリファレンス](https://github.com/ccfos/nightingale/blob/main/doc/api/notify-channel-native.md)を参照してください。
自動対応には、[ibex](https://github.com/flashcatcloud/ibex) を接続して、アラート発火時に事前定義された修復スクリプトを実行できます。
<a id="-mcp-server"></a>
<a id="ai-assistant-and-mcp"></a>
## 組み込みAIエージェント
Nightingaleには、Web UIで直接使用できるAIエージェントが含まれています。このエージェントはNightingale内で動作し、ツールを呼び出して監視データと設定を検査し、複数のステップにわたってタスクを処理します。
- **アラートを調査する。** 関連するメトリクスとログをクエリし、影響を受けたホストを検査し、取得したデータを使って調査結果を説明します。
- **アラート処理のプロセスをトラブルシューティングする。** ルール、評価ログ、ミュート設定、イベント処理、通知結果を検査して、アラートが発火しなかった、または宛先に届かなかった理由を特定します。
- **設定を作成・更新する。** アラートルールとダッシュボードを構築し、PromQL と SQL を生成し、会話を通じて通知ルール、ミュート、サブスクリプションを設定します。既存のアラートルールとダッシュボードを更新するための組み込みツールは、確認のために変更案を提示します。
- **Skills で拡張する。** 同梱の Skills は一般的な監視ワークフローをカバーしています。チームの手順、参考資料、スクリプトをカスタム Skills として追加できます。Git からインポートした Skills も含まれます。
例:
> このアラートはなぜ発火したのですか?トリガー時刻前後の影響を受けたホストのメトリクスとログを確認してください。
> 本番ホスト向けのメモリ使用量アラートを作成し、Slack でチームに通知してください。
開始するにはモデルエンドポイントを設定してください。エージェントは OpenAI 互換 API、Claude、Gemini、および互換性のあるセルフホストモデルをサポートしています。モデルサービスと認証情報はご自身で選択します。コアのアラート機能はエージェントとは独立して動作します。
[モデルプロバイダーの設定](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-llm-config.md) · [Skill の管理](https://github.com/ccfos/nightingale/blob/main/doc/api/ai-skill.md) · [同梱の Skills](https://github.com/ccfos/nightingale/blob/main/aiagent/skill/embedded/builtin)
### 外部エージェントの接続
- **MCP** により、外部アシスタントが Nightingale のツールを呼び出せます。サーバーは Nightingale 内の `/mcp` で動作し、デフォルトで読み取りツールを公開し、呼び出し元の既存の API 権限を適用します。書き込みツールには明示的な設定が必要です。[MCP のセットアップ](https://github.com/ccfos/nightingale/blob/main/doc/api/mcp-server.md)を参照してください。
- **A2A** により、別のエージェントが Nightingale の組み込みエージェントにタスクを委任できます。[A2A 連携](https://github.com/ccfos/nightingale/blob/main/doc/api/a2a-integration.md)を参照してください。
## 製品のスクリーンショット
データソースとビジネスグループ別にアラートルールを管理:

## デプロイ
| オプション | 開始点 |
| --- | --- |
| Docker Compose によるローカル評価 | [同梱の Compose スタック](https://github.com/ccfos/nightingale/blob/main/docker/compose-bridge/docker-compose.yaml) |
| amd64 および arm64 向け Linux バイナリ | [リリースのダウンロード](https://github.com/ccfos/nightingale/releases) と [設定リファレンス](https://github.com/ccfos/nightingale/blob/main/etc/config.toml) |
| Kubernetes | [Helm チャートとインストール手順](https://github.com/flashcatcloud/n9e-helm) |
本番環境では、リリースを固定し、認証情報と TLS を設定し、メタデータデータベースをバックアップし、ルール評価と通知の失敗を監視してください。複数の Nightingale インスタンスはメタデータデータベースと Redis を共有します。マルチインスタンスのデプロイでは外部の時系列ストレージを使用してください。組み込み TSDB は 1 つのインスタンスのローカルディスクにデータを保存します。
詳細なガイダンスとサポート対象バージョンについては、[ドキュメント](https://n9e.github.io/docs)、[インストールガイド](https://n9e.github.io/docs/install/overview)、[リリースノート](https://github.com/ccfos/nightingale/releases)、[セキュリティポリシー](https://github.com/ccfos/nightingale/blob/main/SECURITY.md)を参照してください。
## FAQ
**コレクターを置き換えたり、監視データを移行したりする必要はありますか?**
いいえ。Nightingale は既存のデータソースを直接クエリできます。エクスポーターとコレクターはそのまま使用してください。Categraf と組み込み TSDB は、収集やローカルストレージが必要な場合に利用できます。
**既存の Prometheus アラートルールをインポートできますか?**
はい。ルールのインポートは Prometheus YAML をサポートしており、式、期間、ラベル、アノテーションを含みます。変換されたルールを確認し、Nightingale で通知ルーティングを再構築してください。インポートは `alertmanager.yml` の完全な変換ではありません。通知を切り替える前に、評価期間中は両方のシステムを並行して実行してください。
**Git と CI を通じてルールを管理できますか?**
ルールは JSON としてエクスポートでき、HTTP API を通じて作成または更新できるため、バージョン管理された設定を中心としたワークフローを構築できます。Nightingale は現在、組み込みのルール改訂履歴や以前のリビジョンへのロールバックを提供していません。
**AI は必須ですか?モデルへのリクエストはどこに送られますか?**
アラート通知はAIなしでも動作します。組み込みアシスタントは、設定されたモデルエンドポイントにプロンプトと使用データを送信します。自社ネットワーク内でホストされたモデルを使用することもできます。外部MCPクライアントは独自のモデル設定を使用します。モデルサービスの認証情報と利用コストはご自身で管理してください。
**Nightingaleはオンコールのスケジューリングとエスカレーションを提供しますか?**
スケジュール、エスカレーションポリシー、インシデント対応には、PagerDutyなどのオンコールプラットフォームを接続してください。Nightingaleはルール評価、イベント処理、通知ルーティングを担当します。
## コミュニティ
質問、バグ報告、ドキュメントの改善、コントリビューションを英語で歓迎します。
- [GitHub Discussions](https://github.com/ccfos/nightingale/discussions) — 質問やアイデアの共有。
- [GitHub Issues](https://github.com/ccfos/nightingale/issues) — バグ報告や機能リクエスト。バージョン、デプロイ方法、再現手順を含めてください。
- [Slack](https://join.slack.com/t/n9e/shared_invite/zt-480klxytf-P9qm3C1M87kDmRPp_H30Kw) — コミュニティに参加。
- [導入事例報告](https://github.com/ccfos/nightingale/issues/897) — 他のユーザーによるNightingaleの活用事例を確認し、ご自身の経験を共有してください。
- [セキュリティポリシー](https://github.com/ccfos/nightingale/blob/main/SECURITY.md) — 脆弱性を非公開で報告し、バージョンサポートを確認してください。
大幅な変更の場合は、プルリクエストを送信する前にissueを作成してアプローチを議論してください。[行動規範](https://github.com/ccfos/nightingale/blob/main/CODE_OF_CONDUCT.md)に従ってください。
Nightingaleは元々DiDiで開発され、2022年にCCF ODCへ寄贈されました。[プロジェクトガバナンス](https://github.com/ccfos/nightingale/blob/main/doc/community-governance.md)、[コミッター](https://github.com/ccfos/nightingale/blob/main/doc/committers.md)、[コントリビューター](https://github.com/ccfos/nightingale/graphs/contributors)についてご覧ください。
<a href="https://github.com/ccfos/nightingale/graphs/contributors">
<img alt="Nightingale contributors" src="https://contrib.rocks/image?repo=ccfos/nightingale" />
</a>
## 時系列のスターゲイザー数
[](https://star-history.dera.page/#ccfos/nightingale&Date)
## ライセンス
Nightingaleは[Apache License 2.0](https://github.com/ccfos/nightingale/blob/main/LICENSE)の下で利用可能です。
<img referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=3f539666-22f5-468d-914d-1e344945d3d8" alt="" />
