KeepHQ:开源 AIOps 平台,简化 DevOps 报警管理

开源
KeepHQ 是一个变革性的开源 AIOps 平台,为 DevOps 和 SRE 团队民主化了高级警报管理和自动化。通过减少噪音、丰富警报和自动化响应,Keep 帮助组织将数据转化为可操作的见解,促进协作和可扩展性,适合各种环境。

Keep 是第一个开源 AIOps 平台,填补了现有监控工具(如 Grafana 和 Prometheus)在 AIOps 能力上的空白。它特别适合小型团队,因为传统企业工具成本高、维护复杂,而 Keep 提供企业级功能(如扩展性、SSO)的同时,保持对小型团队的友好性。它利用大型语言模型(LLM)时代的进步,将 AI 无缝集成到运维中。

部署灵活性是 Keep 的亮点,支持本地、Kubernetes、AWS ECS 和 OpenShift 等多种环境。用户可以通过 helm install 或 docker-compose 一键启动,快速探索其功能,适合初学者和经验丰富的团队。

关键功能和能力

Keep 的设计理念是易于开始、易于扩展、易于协作,具体功能包括:

  • 易于开始:提供一键安装选项,如 helm install 和 docker-compose,支持本地或 Kubernetes 部署,降低入门门槛。
  • 易于扩展:其架构基于 Python 实现,易于增强和定制,支持添加新集成,目前已有 110 多个提供者,涵盖工具如 Prometheus、CloudWatch 和 Datadog。
  • 易于部署:作为代码提供,支持 CI/CD 管道集成,适合云、内部部署或隔离环境,满足不同安全和合规需求。
  • 易于协作:作为开源项目,GitHub 上已有 9200 颗星,700 名社区成员活跃参与,通过 Slack 社区(Slack 社区)提供支持,鼓励用户反馈融入开发。

此外,Keep 提供沙盒环境如 Playground,用户可以在此探索功能、配置和 AIOps 技术;Platform 则用于租户配置,确保团队能测试和优化策略。

使用案例和集成

Keep 解决多个 IT 操作挑战,具体如下表所示:

  • 集中警报管理:将多个 Prometheus 实例和按地区/账户的 CloudWatch 设置的警报集中到一个仪表板,供审查、节流和微调。
  • 警报丰富:通过观测工具、数据库和工单系统(如 Jira、ServiceNow)提供上下文,包括企业特定触发器和客户影响细节,便于决策。
  • 自动化警报响应:自动化常见警报响应,如确认端点 502 错误或检查低优先级客户影响前不升级。
  • 多环境监控:跨 staging、生产和测试环境集中警报,设置环境特定规则,提供统一系统健康视图。
  • 噪音减少:通过去重、节流和静音减少噪音,确保团队只关注关键问题。
  • SLA 合规性:跟踪警报解决时间,确保 SLA 合规性,配备自动化和报告功能。
  • 事件关联:使用工作流和映射规则关联相关警报,快速识别根本原因,提供分组可操作见解。
  • 工单系统集成:与 Jira 和 ServiceNow 等工单工具同步,自动化工单创建和更新,确保无缝工作流。

集成方面,Keep 支持超过 110 个提供者,通过 Webhook、路由策略或 API 与工具如 Zabbix、Nagios 连接。2023 年 Grafana 调查显示,52% 的公司使用 6 种以上观测工具,Keep 的多工具集成能力尤为重要(Grafana 调查:https://grafana.com/observability-survey-2023/)。

开发者友好

Keep 强调开发者优先,提供现代 REST API、本地 SDK 和全面文档,便于与现有堆栈集成。其 API 优先设计确保所有 UI 操作均可通过 API 完成,支持警报补救和丰富的自动化。企业安全功能包括完整身份验证支持(如 SSO、SAML、OIDC、LDAP),以及细粒度的访问控制(RBAC、ABAC)和团队管理,适合生产规模工作负载,支持高可用性和水平扩展。

用户反馈显示,Keep 被比作监控领域的 n8n.io,与 StackStorm 相比,Keep 提供更简单的 UI 和更紧密的监控工具 API 集成。社区还建议添加功能如抖动检测(flap detection)和自动补救,目前节流策略已可用,抖动检测计划中。

工作流

Keep 是监控工具的 GitHub Actions。

Keep 工作流是一个声明式的 YAML 文件,用于自动化您的警报和事件管理。每个工作流包含:

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

以下是一个简单的工作流示例,它为来自 Sentry 的支付和 API 服务的关键警报创建 Jira 工单。

workflow:
  id:sentry-alerts
description:createticketalertsforcriticalalertsfromsentry
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
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.

总结

KeepHQ 是一个变革性的开源 AIOps 平台,为 DevOps 和 SRE 团队民主化了高级警报管理和自动化。通过减少噪音、丰富警报和自动化响应,Keep 帮助组织将数据转化为可操作的见解,促进协作和可扩展性,适合各种环境。无论是希望采用 AIOps 实践的小型团队,还是寻求强大可扩展解决方案的企业,Keep 提供了一个引人注目的、社区支持的平台来简化 IT 操作。

Github 仓库地址:https://github.com/keephq/keep

责任编辑:姜华 来源: k8s技术圈
相关推荐

2021-10-20 12:30:09

AIOps智能建筑物联网

2019-08-14 10:40:13

开源技术 软件

2022-10-24 09:42:31

2021-03-18 12:41:42

AIOps机器学习人工智能

2020-05-28 10:53:32

存储数据框架

2018-09-27 18:47:45

AIOpsDevOps

2018-09-11 08:00:00

DevOpsAIOps机器学习

2014-09-04 13:17:31

2023-08-11 18:16:08

DevOps开发

2021-03-08 16:08:21

AIOps工具开源

2012-05-25 09:43:46

DevOps运动DevOps网络自动化

2018-08-09 15:04:19

DevOpsAIOps运维

2022-07-29 07:17:38

Rainbond云原生

2015-07-28 10:19:45

开源Ceph管理平台Inkscope部署

2019-11-11 14:15:36

谷歌开源开发

2024-11-11 08:00:00

2021-07-07 07:33:49

开源Keycloak平台

2021-08-02 08:20:23

AIOps网络管理人工智能

2024-05-15 08:00:00

DevOps平台工程

2023-01-19 08:55:58

DevOps技能平台
点赞
收藏

51CTO技术栈公众号