Skip to content
fadewalkPublic

About

更夫 Gengfu — 面向中国企业场景的开源告警聚合与 AI 事件管理平台(基于 keephq/keep · MIT)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

更夫 Gengfu

开源的告警聚合与 AI 事件管理平台 · 面向中国企业场景的 Keep 中文发行版


监控交给夜莺们,告警之后的事交给更夫——降噪去重、值班通知、事件管理、AI 分析、自动化处置。
Sneak preview screenshot

  • 🔍 统一视图 - 用于所有告警和事件的最佳可定制界面
  • 🛠️ 告警多功能助手 - 去重、关联、过滤与丰富
  • 🔄 深度集成 - 与监控工具双向同步,并支持自定义工作流
  • ⚡ 自动化 - 为你的监控工具提供 GitHub Actions
  • 🤖 AI 事件分析 - AI 驱动的关联与摘要、中文事件报告,支持 DeepSeek / Qwen / GLM 等国产大模型

为什么做这个项目

上游 Keep 是一款优秀的开源 AIOps 平台:477 个监控/工单/通信集成、声明式工作流引擎、AI 告警关联,这些能力在国内没有同量级的开源替代。但它是围绕海外生态设计的,直接放进国内企业环境,"能跑起来,却用不起来":

  • 集成断供:477 个集成里没有钉钉、企业微信、飞书,也没有阿里云/腾讯云监控——国内团队最高频的告警触达渠道一个都没有,只能靠通用 webhook 兜底;
  • 默认值不匹配:界面与 AI 提示词默认英文,AI 后端默认 OpenAI/Anthropic,国产大模型要自己想办法接;
  • 部署假设不同:认证默认对接 Auth0/Okta 等 SaaS IdP,与国内企业内网环境(LDAP、受限外网)有距离。

而国内的另一头,监控采集层已经非常成熟——Zabbix、Prometheus、夜莺、云厂商监控各司其职。真正碎片化、没人管的是告警之后的第一公里:告警风暴无人收敛、值班靠人肉盯群、事件处置没有沉淀、AI 分析基本空白。商业 AIOps(智能告警收敛方向)客单价在百万级,中小企业用不起;开源侧只有 PrometheusAlert 这类"消息转发器",没有完整的聚合、事件与 AI 平台。

这个空档就是本项目的立足点:以 MIT 协议的 Keep 为底座,做一款中国企业场景真正可用的开源告警聚合与 AI 事件管理平台。 中文化只是第一层,核心是补上国内生态的三块短板:国内 IM 触达、国产大模型接入、内网私有化部署。

为什么叫「更夫」

更夫是古代的夜间值守人:巡夜、报时,发现火情就敲锣示警,把要紧的警讯送到该听到的人耳朵里。他做的事正是这个产品做的事——值守(on-call)、分辨真警讯、把对的通知发给对的人。产品的告警通知里也保留了这个彩蛋:「天干物燥,小心火烛」。

定位与边界

监控采集不归更夫管——Zabbix、Prometheus、夜莺、云监控继续各司其职。更夫承接的是告警产生之后的一切:

监控层(夜莺 / Prometheus / Zabbix / 云监控 / 日志系统)
        │  webhook / API 接入
        ▼
更夫:接入汇聚 → 去重降噪关联 → 值班与通知(钉钉 / 企微 / 飞书)
        → 事件管理 → AI 分析与报告 → 工作流自动化处置

已完成与路线图

已完成

  • 全模块界面中文化(zh-CN)
  • AI 提示词与事件报告中文输出:多模板报告、报告聊天历史持久化
  • 内网私有化部署套件(deploy/idc/):LDAP 认证、无 Redis 降级运行、VictoriaMetrics 监控栈
  • AI 模型数据库化配置:OpenAI 兼容接口直连 DeepSeek / Qwen / GLM 等国产模型
  • 国内 IM 三件套原生 provider:钉钉(加签/关键词)、企业微信(@手机号)、飞书(签名/卡片)

进行中 / 计划

  • 每季度审阅上游安全与核心修复,按需 cherry-pick 吸收(不做全量合并;依赖更新由 dependabot 自动化)
  • 海外 SaaS 集成(PagerDuty、ServiceNow、Slack 等)转为默认关闭的可选项
  • 国产大模型兼容矩阵:验证工具已就绪(scripts/verify_llm_compat.py),待接入各家 API key 实测并产出矩阵
  • 企业微信/飞书 @ 指定值班人(需开放平台 user_id 映射)

与上游 Keep 的关系

本仓库是 keephq/keep(MIT License)的中文发行版。更夫独立演进:按自己的路线图做国内化与二次开发,不向上游回馈 PR;每季度审阅一次上游变更,安全修复与核心 bug 修复按需 cherry-pick 吸收,其余不跟进。MIT 许可证与版权声明完整保留,致谢见文末。


支持的集成

用于丰富、关联与事件上下文的 AI 后端

Anthropic
Anthropic
OpenAI
OpenAI
DeepSeek
DeepSeek
Ollama
Ollama
LlamaCPP
LlamaCPP
Grok
Grok
Gemini
Gemini

可观测性工具

AppDynamics
AppDynamics
Axiom
Axiom
Azure Monitoring
Azure Monitoring
Centreon
Centreon
Checkmk
Checkmk
Cilium
Cilium
Checkly
Checkly
CloudWatch
CloudWatch
Coralogix
Coralogix
Dash0
Dash0
Datadog
Datadog
Dynatrace
Dynatrace
Elastic
Elastic
GCP Monitoring
GCP Monitoring
Grafana
Grafana
Grafana Loki
Grafana Loki
Graylog
Graylog
Icinga2
Icinga2
Kibana
Kibana
LibreNMS
LibreNMS
NetBox
NetBox
Netdata
Netdata
New Relic
New Relic
OpenSearch Serverless
OpenSearch Serverless
Parseable
Parseable
Pingdom
Pingdom
Prometheus
Prometheus
Rollbar
Rollbar
Sentry
Sentry
SignalFX
SignalFX
OpenObserve
OpenObserve
Site24x7
Site24x7
Splunk
Splunk
StatusCake
StatusCake
SumoLogic
SumoLogic
SumoLogic
ThousandEyes
UptimeKuma
UptimeKuma
VictoriaLogs
VictoriaLogs
VictoriaMetrics
VictoriaMetrics
Wazuh
Wazuh
Zabbix
Zabbix

数据库与数据仓库

BigQuery
BigQuery
ClickHouse
ClickHouse
Databend
Databend
MongoDB
MongoDB
MySQL
MySQL
PostgreSQL
PostgreSQL
Snowflake
Snowflake

通信平台

Discord
Discord
Google Chat
Google Chat
Mailgun
Mailgun
Mattermost
Mattermost
Ntfy.sh
Ntfy.sh
Pushover
Pushover
Resend
Resend
SendGrid
SendGrid
Slack
Slack
SMTP
SMTP
Telegram
Telegram
Twilio
Twilio
Teams
Teams
Zoom
Zoom
Zoom Chat
Zoom Chat

事件管理

Grafana Incident
Grafana Incident
Grafana OnCall
Grafana OnCall
Ilert
Ilert
Incident.io
Incident.io
AWS Incident Manager
AWS Incident Manager
OpsGenie
OpsGenie
PagerDuty
PagerDuty
Pagertree
Pagertree
SINGL4
SINGL4
Squadcast
Squadcast
Zenduty
Zenduty
Flashduty
Flashduty

工单工具

Asana
Asana
GitHub
GitHub
GitLab
GitLab
Jira
Jira
Linear
Linear
LinearB
LinearB
Microsoft Planner
Microsoft Planner
Monday
Monday
Redmine
Redmine
ServiceNow
ServiceNow
Trello
Trello
YouTrack
YouTrack

容器编排平台

Azure AKS
Azure AKS
ArgoCD
ArgoCD
Flux CD
Flux
GKE
GKE
Kubernetes
Kubernetes
OpenShift
OpenShift

数据丰富

Bash
Bash
OpenAI
OpenAI
Python
Python
QuickChart
QuickChart
SSH
SSH
Webhook
Webhook

工作流编排

Airflow
Airflow

队列

AmazonSQS
Amazon SQS
Kafka
Kafka

工作流

Keep 是为你的监控工具提供的 GitHub Actions。

Keep 工作流是一个声明式的 YAML 文件,自动化你的告警与事件管理。每个工作流包含:

  • 触发器 - 启动工作流的事件(告警、事件、计划或手动)
  • 步骤 - 读取或拉取数据(丰富、上下文)
  • 操作 - 执行动作(更新工单、发送通知、重启服务器)

下面是一个简单的工作流,在 payments 与 api 服务中为每个来自 sentry 的 critical 告警创建 Jira 工单。

更多工作流请见 examples/workflows 目录。

workflow:
  id: sentry-alerts
  description: create ticket alerts for critical alerts from sentry
  triggers:
    - type: alert
      # customize the filter to run only on critical alert from sentry
      filters:
        - key: source
          value: sentry
        - key: severity
          value: critical
        # regex to match specific services
        - key: service
          value: r"(payments|ftp)"
  actions:
    - name: send-slack-message-team-payments
      # if the alert is on the payments service, slack the payments team
      if: "'{{ alert.service }}' == 'payments'"
      provider:
        type: slack
        # control which Slack configuration you want to use
        config: " {{ providers.team-payments-slack }} "
        # customize the alert message with context from {{ alert }} or any other {{ step }}
        with:
          message: |
            "A new alert from Sentry: Alert: {{ alert.name }} - {{ alert.description }}
            {{ alert}}"
    - name: create-jira-ticket-oncall-board
      # control the workflow flow with "if" and "foreach" statements
      if: "'{{ alert.service }}' == 'ftp' and not '{{ alert.ticket_id }}'"
      provider:
        type: jira
        config: " {{ providers.jira }} "
        with:
          board_name: "Oncall Board"
          custom_fields:
            customfield_10201: "Critical"
          issuetype: "Task"
          # customize the summary
          summary: "{{ alert.name }} - {{ alert.description }} (created by Keep)"
          description: |
            "This ticket was created by Keep.
            Please check the alert details below:
            {code:json} {{ alert }} {code}"
          # enrich the alerts with more context. from now on, the alert will be assigned with the ticket id, type and url
          enrich_alert:
            - key: ticket_type
              value: jira
            - key: ticket_id
              value: results.issue.key
            - key: ticket_url
              value: results.ticket_url

企业就绪

  • 以开发者为先 - 现代 REST API、原生 SDK 与全面的文档,实现无缝集成
  • 企业安全 - 完整认证支持(SSO、SAML、OIDC、LDAP),配合细粒度访问控制(RBAC、ABAC)与团队管理
  • 灵活部署 - 可在本地或隔离环境中部署,架构与云无关
  • 生产级规模 - 支持横向扩展的高可用、性能验证基础设施

入门指南

最简单的启动方式是 Docker Compose(默认 NO_AUTH 免认证、SQLite 存储,适合内网试用):

mkdir gengfu && cd gengfu
curl -O https://raw.githubusercontent.com/fadewalk/gengfu/main/docker-compose.yml
docker compose up -d

打开 http://localhost:4000 即可使用(API 在 http://localhost:8080)。

📖 中文快速上手:10 分钟从安装到收到第一条钉钉告警 🌙 接入夜莺 Nightingale —— 监控交给夜莺们,告警之后的事交给更夫 🗓️ 值班排班路线 —— 轻量排班 + 工作流动态解析(路线征集中)

生产环境建议:

  • 认证:设置 AUTH_TYPE=LDAP 并填入 LDAP_URL / LDAP_BASE_DN 等环境变量对接企业 AD/OpenLDAP(所有变量见 compose 文件内注释)
  • 数据库:注释 SQLite 连接串,启用 MySQL 段
  • 集成目录默认隐藏了 54 个海外 SaaS(KEEP_DEFAULT_HIDDEN_PROVIDERS 可整体覆盖),钉钉、企业微信、飞书、Zabbix、Prometheus、Grafana 等国内常用集成开箱可见

入门指南(源码开发)

Keep 可在多种环境与配置中运行。最简单的启动方式是使用 Docker Compose。

cd deploy/docker
docker compose up -d

致谢

本项目基于 Keep(MIT License)二次开发,感谢 KeepHQ 团队与开源社区的贡献。上游的持续演进是本项目的地基;更夫独立演进,并定期审阅上游的安全与核心修复,按需吸收。

About

更夫 Gengfu — 面向中国企业场景的开源告警聚合与 AI 事件管理平台(基于 keephq/keep · MIT)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages