
lmierzwa/karmakarma是Prometheus Alertmanager的告警仪表盘。Alertmanager UI虽可用于浏览告警和管理静默,但作为仪表盘工具存在不足,karma旨在填补这一空白。从0.7.0版本开始,它还能聚合多个Alertmanager实例(无论是HA模式还是独立运行)的告警,对重复告警进行去重,仅显示唯一告警。每个告警会标记其来自的所有Alertmanager实例名称,并可基于这些标签(@alertmanager)进行筛选(仅当配置多个Alertmanager实例时可见)。
!截图
告警按Alertmanager中group_by配置选项分组展示。如果一个组包含多个告警,仅显示前几个,其余可通过-/+按钮展开或隐藏。默认告警数量可在UI设置模块中配置。每个单独的告警仅显示唯一的标签和注解,所有告警共享的标签和注解将移至页脚。示例:
!示例
每个组可使用右上角的切换图标折叠为仅显示标题栏。
在线演示
若要获取karma新版本通知,可订阅GitHub提供的RSS feed [***]
group_by配置,按规则分组展示告警。@alertmanager标签筛选不同来源实例的告警(多实例配置时可用)。karma由作者在Cloudflare工作期间创建,最初名为unsee。该项目基于原代码重构,使用React从零重写UI层,后端API也进行了不兼容变更。由于React重写导致约50%的代码更新,且原项目已停止维护,为避免用户混淆,正式更名为karma。
Alertmanager的API尚未稳定,不同版本间可能存在差异。支持的所有版本列表参见internal/mock/Makefile中的VERSIONS。受API差异影响,部分功能可能表现不同或缺失,建议使用最新支持的Alertmanager版本。
karma进程不会向Alertmanager发送修改告警或静默状态的API请求,但Web界面允许用户直接向Alertmanager API发送此类请求。若部署为只读工具,需确保:
karma进程指标默认通过/metrics路径暴露。若设置--listen.prefix选项,则使用相对于该前缀的路径。
克隆仓库并构建二进制文件:
bashgit clone [***] $GOPATH/src/github.com/prymitive/karma cd $GOPATH/src/github.com/prymitive/karma
编译karma:
bashmake
注意:本地构建需依赖Go、nodejs和yarn环境。
支持通过配置文件、命令行标志或环境变量配置。单实例场景推荐使用环境变量或命令行标志:
bash# 环境变量方式 ALERTMANAGER_URI=[***] karma # 命令行标志方式 karma --alertmanager.uri [***]
使用make目标快速运行(默认监听8080端口,使用模拟数据):
bashmake run # 自定义端口和Alertmanager地址 make PORT=5000 ALERTMANAGER_URI=[***] run
官方镜像托管于hub.docker.com,自动构建标签包括:
lmierzwa/karma:vX.Y.Z(对应git标签)lmierzwa/karma:latest(对应master分支最新提交)启动发布版本:
bashdocker run -e ALERTMANAGER_URI=[***] lmierzwa/karma:vX.Y.Z
启动开发版本(不推荐生产环境):
bashdocker run -e ALERTMANAGER_URI=[***] lmierzwa/karma:latest
bashmake docker-image
bashmake run-docker # 自定义配置 make PORT=5000 ALERTMANAGER_URI=[***] run-docker
完整配置选项参见CONFIGURATION,配置文件示例参见example.yaml。
详情参见CONTRIBUTING。
Apache License 2.0,详见LICENSE。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务