Skip to content

关于本页

本页介绍更夫所基于的开源内核 Keep 的通用能力。更夫在其上提供国内化增强:钉钉/企业微信/飞书通知、国产大模型接入、LDAP 认证与值班管理。部署与上手请看快速上手。

背景 ​

Keep 可以通过环境变量高度配置。这允许您自定义后端和前端组件的各个方面,而无需修改代码。环境变量可以在您的部署环境中设置,例如在 Kubernetes 配置、Docker Compose 文件中或直接在主机系统上设置。

后端环境变量 ​

常规 ​

INFO

常规配置变量控制 Keep 服务器的核心行为。 这些设置决定基本方面,例如服务器的主机、端口, 以及是否启用某些组件(如调度器和消费者)。

Env var用途必填默认值有效选项
KEEP_HOST指定 Keep 服务器的主机否"0.0.0.0"有效主机名或 IP 地址
PORT指定后端服务器运行的端口否8080任何有效端口号
SCHEDULER启用或禁用工作流调度器否"true""true" 或 "false"
CONSUMER启用或禁用消费者否"true""true" 或 "false"
KEEP_VERSION指定 Keep 版本否"unknown"有效版本字符串
KEEP_API_URL指定 Keep API URL否根据 HOST 和 PORT 构建有效 URL
KEEP_STORE_RAW_ALERTS启用存储原始告警否"false""true" 或 "false"
TENANT_CONFIGURATION_RELOAD_TIME重新加载租户配置的时间(分钟)否5正整数
KEEP_LIVE_DEMO_MODEKeep 将模拟传入的告警和其他活动否"false""true" 或 "false"

日志记录和环境 ​

INFO

日志记录和环境配置决定 Keep 如何生成和 格式化日志输出。这些设置对于调试、监控和 了解不同环境中 Keep 实例的行为至关重要。

Env var用途必填默认值有效选项
LOG_LEVEL设置应用程序的日志级别否"INFO""DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
ENVIRONMENT指定应用程序运行的环境否"production""development", "staging", "production"
LOG_FORMAT指定日志格式否"open_telemetry""open_telemetry", "dev_terminal"
LOG_AUTH_PAYLOAD启用认证负载的日志记录否"false""true" 或 "false"

数据库 ​

INFO

数据库配置对于 Keep 的数据持久化至关重要。Keep 支持 通过 SQLAlchemy 使用各种数据库后端,允许灵活选择 和配置您首选的数据库系统。

Env var用途必填默认值有效选项
DATABASE_CONNECTION_STRING指定数据库连接 URL是None有效的 SQLAlchemy 连接字符串
DATABASE_POOL_SIZE设置数据库连接池大小否5正整数
DATABASE_MAX_OVERFLOW设置连接池的最大溢出否10正整数
DATABASE_ECHO启用 SQLAlchemy echo 模式进行调试否FalseBoolean (True/False)
DB_CONNECTION_NAME指定 Cloud SQL 连接名称否"keephq-sandbox:us-central1:keep"有效的 Cloud SQL 连接字符串
DB_NAME指定 Cloud SQL 数据库名称否"keepdb"有效的 Cloud SQL 数据库名称
DB_SERVICE_ACCOUNT数据库模拟的服务账户否None有效的服务账户电子邮件
DB_IP_TYPE指定 Cloud SQL IP 类型否"public""public", "private" 或 "psc"
SKIP_DB_CREATION跳过数据库创建和迁移否"false""true" 或 "false"

资源调配 ​

INFO

资源调配设置控制 Keep 如何设置初始资源。 此配置对于自动化设置过程特别重要, 并确保 Keep 启动时必要的资源可用。

TIP

要详细了解资源调配及其配置,请参阅 配置文档。

Env var用途必填默认值有效选项
PROVISION_RESOURCES启用或禁用资源调配否"true""true" 或 "false"

认证 ​

INFO

认证配置决定 Keep 如何验证用户身份和 管理访问控制。这些设置对于保护您的 Keep 实例并与各种认证提供商集成至关重要。

TIP

有关特定认证类型配置,请参阅 认证 文档。

Env var用途必填默认值有效选项
AUTH_TYPE指定认证类型否"NOAUTH""AUTH0", "KEYCLOAK", "DB", "NOAUTH", "OAUTH2PROXY", "OKTA", "ONELOGIN"
KEEP_JWT_SECRETJWT 令牌生成和验证的密钥(仅 DB 认证)是None任何强密钥字符串
KEEP_DEFAULT_USERNAME默认管理员用户名(仅 DB 认证)否"keep"任何有效的用户名字符串
KEEP_DEFAULT_PASSWORD默认管理员密码(仅 DB 认证)否"keep"任何强密码字符串
KEEP_FORCE_RESET_DEFAULT_PASSWORD强制重置默认用户密码否"false""true" 或 "false"
KEEP_DEFAULT_API_KEYS要配置默认 API 密钥的逗号分隔列表否""格式:"name:role:secret,name:role:secret"

服务网格(内部告警摄取) ​

INFO

这些设置允许同一 Kubernetes 集群内的受信任服务在 不需要 Keep API 密钥的情况下向 Keep POST 告警。这适用于 服务到服务的通信,其中网络级认证(例如 Istio mTLS 与 AuthorizationPolicy)确保只有授权的调用者可以 访问 Keep 的告警摄取端点。

Env var用途必填默认值有效选项
KEEP_ALLOW_MESH_ALERT_INGESTION允许对 /alerts/event* 端点进行未认证的 POST 请求否"false""true" 或 "false"

当 KEEP_ALLOW_MESH_ALERT_INGESTION 设置为 "true" 时,不携带 API 密钥或 bearer 令牌的 /alerts/event* 请求将被接受,并作为具有 webhook 角色的内部服务进行认证。

调用服务可以选择设置 X-Service-Name HTTP 头,以在 Keep 的日志和审计跟踪中标识自己:

bash
curl -X POST http://keep-backend:8080/alerts/event \
  -H "Content-Type: application/json" \
  -H "X-Service-Name: my-service" \
  -d '[{"id":"alert-1","name":"Example Alert","severity":"info","status":"firing","source":["my-service"]}]'

认证实体将具有:

  • email:service:<X-Service-Name 头值>(如果未设置头,则默认为 service:unknown)
  • role:webhook(授予 write:alert 和 write:incident 范围)

注意

此功能绕过告警摄取端点的 API 密钥认证。您必须将其与网络级访问控制(如 Istio AuthorizationPolicy)配对,以限制哪些服务可以访问这些 端点。如果没有网络级 enforcement,任何可以访问 Keep 后端的客户端都可以 POST 告警。

密钥管理 ​

INFO

密钥管理配置指定 Keep 如何处理敏感 信息。这对于安全存储和访问机密 数据(如 API 密钥和集成凭证)至关重要。

Env var用途必填默认值有效选项
SECRET_MANAGER_TYPE定义要使用的密钥管理器类型是"FILE""FILE", "GCP", "K8S", "VAULT", "DB"
SECRET_MANAGER_DIRECTORY当使用基于文件的密钥管理时存储密钥的目录否"/state"任何有效的目录路径

OpenTelemetry ​

INFO

OpenTelemetry 配置为 Keep 启用全面的可观测性。 这些设置允许您将 Keep 与各种监控和跟踪 系统集成,增强您调试和优化性能的能力。

Env var用途必填默认值有效选项
OTEL_SERVICE_NAMEOpenTelemetry 服务名称否"keep-api"有效的服务名称字符串
SERVICE_NAMEOTEL_SERVICE_NAME 的替代方案否"keep-api"有效的服务名称字符串
OTEL_EXPORTER_OTLP_ENDPOINTOpenTelemetry 收集器端点否None有效 URL
OTLP_ENDPOINTOTEL_EXPORTER_OTLP_ENDPOINT 的替代方案否None有效 URL
OTEL_EXPORTER_OTLP_TRACES_ENDPOINTOpenTelemetry traces 端点否None有效 URL
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTOpenTelemetry 日志端点否None有效 URL
OTEL_EXPORTER_OTLP_METRICS_ENDPOINTOpenTelemetry 指标端点否None有效 URL
CLOUD_TRACE_ENABLED启用 Google Cloud Trace 导出器否"false""true" 或 "false"
METRIC_OTEL_ENABLED启用 OpenTelemetry 指标否"""true" 或 "false"

WebSocket 服务器 (Pusher/Soketi) ​

INFO

WebSocket 服务器配置控制 Keep 中的实时通信能力。 这些设置对于启用需要 即时更新和通知的功能很重要。

Env var用途必填默认值有效选项
PUSHER_DISABLED禁用 Pusher 集成否"false""true" 或 "false"
PUSHER_HOSTPusher 服务器的主机名否None有效主机名或 IP 地址
PUSHER_PORTPusher 服务器端口否None任何有效端口号
PUSHER_APP_IDPusher 应用程序 ID是(如果使用 Pusher)None有效的 Pusher App ID
PUSHER_APP_KEYPusher 应用程序密钥是(如果使用 Pusher)None有效的 Pusher App Key
PUSHER_APP_SECRETPusher 应用程序密钥是(如果使用 Pusher)None有效的 Pusher App Secret
PUSHER_USE_SSL启用 Pusher 连接的 SSL否FalseBoolean (True/False)
PUSHER_CLUSTERPusher 集群否None有效的 Pusher 集群名称

OpenAI ​

INFO

OpenAI 配置用于与 OpenAI 服务集成。这些 设置在您利用 Keep 内的 OpenAI 功能进行 自然语言处理或 AI 辅助操作时很重要。

Env var用途必填默认值有效选项前后端
OPENAI_API_KEYOpenAI 服务的 API 密钥否None有效的 OpenAI API 密钥两者
OPENAI_MODEL_NAME用于 OpenAI 请求的模型名称否"gpt-4o-2024-08-06"有效的 OpenAI 模型名称(例如 "gpt-4o", "gpt-4o-mini", ...)两者
OPEN_AI_ORGANIZATION_IDOpenAI 服务的组织 ID否None有效的 OpenAI 组织 ID两者
OPENAI_BASE_URLOpenAI API 基础 URL(用于 LiteLLM 代理)否None有效 URL(例如 "http://localhost:4000")两者

TIP

对于各种不同的基于 LLM 的功能,我们还需要为 Keep 的前端设置这些 环境变量。

Posthog ​

INFO

Posthog 配置控制 Keep 与 Posthog 分析 平台的集成。这些设置对于跟踪使用模式和收集 关于 Keep 实例使用情况的见解很有用。

Env var用途必填默认值有效选项
POSTHOG_API_KEYPostHog 分析的 API 密钥否"phc_muk9qE3TfZsX3SZ9XxX52kCGJBclrjhkP9JxAQcm1PZ"有效的 PostHog API 密钥
POSTHOG_DISABLED禁用 PostHog 集成否"false""true" 或 "false"

Sentry ​

INFO

Sentry 配置控制 Keep 与 Sentry 的集成以进行错误 监控和报告。这些设置对于维护 Keep 实例的稳定性和可靠性很重要。

Env var用途必填默认值有效选项
SENTRY_DISABLED禁用 Sentry 集成否"false""true" 或 "false"

Ngrok ​

INFO

Ngrok 配置启用到 Keep 实例的安全隧道。这些 设置在开发或需要安全地将 本地 Keep 实例暴露到互联网时特别有用。

Env var用途必填默认值有效选项
USE_NGROK启用 ngrok 进行隧道传输否"false""true" 或 "false"
NGROK_AUTH_TOKENngrok 的认证令牌否None有效的 ngrok 认证令牌
NGROK_DOMAINngrok 的自定义域名否None有效域名

Elasticsearch ​

INFO

Elasticsearch 配置控制 Keep 与 Elasticsearch 的集成以实现 高级搜索功能。如果您使用 Elasticsearch 来增强 Keep 的搜索功能和性能,这些设置很重要。

Env var用途必填默认值有效选项
ELASTIC_ENABLED启用 Elasticsearch 集成否"false""true" 或 "false"
ELASTIC_API_KEYElasticsearch 的 API 密钥是(如果使用 Elasticsearch)None有效的 Elasticsearch API 密钥
ELASTIC_HOSTSElasticsearch 主机逗号分隔列表是(如果使用 Elasticsearch)None有效的 Elasticsearch 主机 URL
ELASTIC_USERElasticsearch 基本认证的用户名否None有效的用户名
ELASTIC_PASSWORDElasticsearch 基本认证的密码否None有效的密码
ELASTIC_INDEX_SUFFIXElasticsearch 索引名称的后缀是(对于单租户)None任何有效字符串

Redis ​

INFO

Redis 配置指定 Keep 的 Redis 实例的连接详情。Redis 用于各种缓存和排队目的,使 这些设置对于优化 Keep 的性能和可扩展性很重要。

Env var用途必填默认值有效选项
REDISRedis 启用否falsetrue 或 false
REDIS_HOSTRedis 服务器主机名否"localhost"有效主机名或 IP 地址
REDIS_PORTRedis 服务器端口否6379有效端口号
REDIS_USERNAMERedis 用户名否None有效的用户名字符串
REDIS_PASSWORDRedis 密码否None有效的密码字符串

Redis Sentinel ​

INFO

Redis sentinel 配置指定 Keep 的 Redis sentinel 实例的连接详情。当您有 redis 集群时使用 Redis sentinel,它充当代理。

Env var用途必填默认值有效选项
REDISRedis 启用否falsetrue 或 false
REDIS_SENTINEL_HOSTSRedis sentinel 服务器(s)否"localhost:26379""host1:port1,host2:port2"(逗号分隔)
REDIS_SENTINEL_SERVICE_NAMERedis sentinel 服务名称否"mymaster"有效的服务名称字符串
REDIS_USERNAMERedis 用户名否None有效的用户名字符串
REDIS_PASSWORDRedis 密码否None有效的密码字符串

ARQ ​

INFO

ARQ(异步任务队列)配置控制 Keep 的后台任务 处理。这些设置对于管理 Keep 如何处理 长时间运行或调度的任务至关重要,确保高效的资源利用和 响应能力。

Env var用途必填默认值有效选项
ARQ_BACKGROUND_FUNCTIONS要运行的后台函数的逗号分隔列表否None有效的函数名称
ARQ_KEEP_RESULT保留作业结果的时间(秒)否3600正整数
ARQ_EXPIRES默认作业过期时间(秒)否3600正整数
ARQ_EXPIRES_AIAI 作业过期时间(秒)否3600000正整数

速率限制 ​

INFO

速率限制配置控制可以在指定时间范围内向 Keep's API 端点发出的请求数量。这有助于防止滥用并 确保系统稳定性。

Env var用途必填默认值有效选项
KEEP_USE_LIMITER启用或禁用速率限制否"false""true" 或 "false"
KEEP_LIMIT_CONCURRENCY设置 API 端点的速率限制否"100/minute"格式:"{number}/{interval}",其中 interval 可以是 "second"、"minute"、"hour"、"day"

::: note 目前,速率限制适用于以下端点:

  • POST /alerts/event - 通用事件摄取端点
  • POST /alerts/{provider_type} - 提供商特定的事件摄取端点

当启用 KEEP_USE_LIMITER 时,这些端点根据 KEEP_LIMIT_CONCURRENCY 设置进行速率限制。 :::

维护窗口 ​

INFO

该策略启用在匹配维护窗口规则时管理告警处理方式的能力。

Env var用途必填默认值有效选项
MAINTENANCE_WINDOW_STRATEGY选择策略否"default""default" 或 "recover_previous_status"
WATCHER_LAPSED_TIME执行告警审查的时间(秒)否60有效的正整数

前端环境变量 ​

INFO

前端配置变量控制 Keep's 用户界面的行为和功能。这些设置对于自定义前端的 外观、功能以及与后端服务的集成至关重要。

常规 ​

Env var用途必填默认值有效选项
API_URL指定 Keep 后端 API 的 URL是None有效 URL
AUTH_SESSION_TIMEOUT指定用户会话超时时间(秒)。默认值为 30 天。否2592000秒值
KEEP_HIDE_SENSITIVE_FIELDS隐藏敏感字段否None"true", "false"
HIDE_NAVBAR_CORRELATION在 UI 导航栏中隐藏关联页面否None"true"
HIDE_NAVBAR_WORKFLOWS在 UI 导航栏中隐藏工作流页面否None"true"
HIDE_NAVBAR_SERVICE_TOPOLOGY在 UI 导航栏中隐藏服务拓扑页面否None"true"
HIDE_NAVBAR_MAPPING在 UI 导航栏中隐藏映射页面否None"true"
HIDE_NAVBAR_EXTRACTION在 UI 导航栏中隐藏提取页面否None"true"
HIDE_NAVBAR_MAINTENANCE_WINDOW在 UI 导航栏中隐藏维护窗口页面否None"true"
HIDE_NAVBAR_AI_PLUGINS在 UI 导航栏中隐藏 AI 插件页面否None"true"
KEEP_WF_LIST_EXTENDED_INFO使用列表而不是按钮显示完整执行列表否"true""true", "false"

认证 ​

INFO

认证配置决定 Keep 如何验证用户身份和 管理访问控制。这些设置对于保护您的 Keep 实例并与各种认证提供商集成至关重要。

Env var用途必填默认值有效选项
AUTH_TYPE指定认证类型否"NOAUTH""AUTH0", "KEYCLOAK", "DB", "NOAUTH", "OAUTH2PROXY", "OKTA", "ONELOGIN"
NEXTAUTH_URLNextAuth 认证的 URL是None有效 URL
NEXTAUTH_SECRETNextAuth 的密钥是None强密钥字符串

Posthog ​

Env var用途必填默认值有效选项
POSTHOG_KEY前端分析的 PostHog API 密钥否None有效的 PostHog API 密钥
POSTHOG_HOST前端分析的 PostHog 主机否None有效的 PostHog 主机

Pusher ​

INFO

Pusher 配置对于在 Keep's 前端中启用实时更新和 通信至关重要。这些设置允许前端与 Pusher 服务器建立 WebSocket 连接,促进即时 更新和通知。

Env var用途必填默认值有效选项
PUSHER_DISABLED禁用 Pusher 集成否"false""true" 或 "false"
PUSHER_HOSTPusher 服务器的主机名否"localhost"有效主机名或 IP 地址
PUSHER_PORTPusher 服务器端口否6001有效端口号
PUSHER_APP_KEYPusher 应用程序密钥是(如果 Pusher 启用)"keep-app-key"有效的 Pusher App Key
PUSHER_CLUSTERPusher 集群否None有效的 Pusher 集群名称

基于 MIT 协议开源的 Keep · 由更夫社区维护