Signalilo是Alertmanager到Icinga2的桥接实现,通过webhook接收来自Alertmanager的告警,并使用go-icinga2-client将这些告警转发至Icinga2,实现监控告警的跨平台集成与管理。
/healthz,监控服务运行状态适用于需要将Prometheus/Alertmanager监控系统与Icinga2告警平台集成的场景,特别适合需要集中管理不同监控系统告警的企业级环境。
Helm
bashhelm install --name signalilo appuio/signalilo
详细信息参见https://github.com/appuio/charts/tree/master/signalilo%E3%80%82
Docker
bashdocker run --name signalilo vshn/signalilo
OpenShift
Helm chart可直接在OpenShift环境中使用。
启动后,Signalilo监听以下HTTP路径:
/webhook: 接收Alertmanager告警的端点/healthz: 返回HTTP 200状态码和ok payload,指示webhook服务正常运行使用signalilo --help可查看所有可用配置参数。
| 命令行选项 | 环境变量 | 描述 |
|---|---|---|
--uuid | SIGNALILO_UUID | 标识Signalilo实例的UUID |
--icinga_hostname | SIGNALILO_ICINGA_HOSTNAME | Icinga2中的服务主机名 |
--icinga_url | SIGNALILO_ICINGA_URL | Icinga API的URL |
--icinga_username | SIGNALILO_ICINGA_USERNAME | Icinga2 API的认证用户名 |
--icinga_password | SIGNALILO_ICINGA_PASSWORD | Icinga2 API的认证密码 |
| 命令行选项 | 环境变量 | 默认值 | 描述 |
|---|---|---|---|
--loglevel | SIGNALILO_LOG_LEVEL | 2 | 控制日志详细程度的整数 |
--icinga_insecure_tls | SIGNALILO_ICINGA_INSECURE_TLS | false | 是否禁用Icinga2 API SSL证书的严格TLS检查 |
--icinga_disable_keepalives | SIGNALILO_ICINGA_DISABLE_KEEPALIVES | false | 是否禁用与Icinga2 API的HTTP长连接 |
--icinga_debug | SIGNALILO_ICINGA_DEBUG | false | 是否启用Icinga客户端调试模式 |
--icinga_gc_interval | SIGNALILO_ICINGA_GC_INTERVAL | 15m | Icinga中已恢复告警的垃圾回收间隔 |
--icinga_heartbeat_interval | SIGNALILO_ICINGA_HEARTBEAT_INTERVAL | 60s | 向Icinga发送心跳的间隔 |
--icinga_keep_for | SIGNALILO_ICINGA_KEEP_FOR | 168h | Icinga2服务在转为OK状态后保留的时间 |
--icinga_ca | SIGNALILO_ICINGA_CA | - | Icinga2 API证书的可信CA证书PEM字符串 |
--alertmanager_port | SIGNALILO_ALERTMANAGER_PORT | 8888 | Signalilo监听webhook的端口 |
--alertmanager_bearer_token | SIGNALILO_ALERTMANAGER_BEARER_TOKEN | - | 入站webhook认证令牌,可通过Authorization头或tokenURL查询参数设置 |
--alertmanager_tls_cert | SIGNALILO_ALERTMANAGER_TLS_CERT | - | TLS启用的webhook端点的证书文件路径(需包含完整链) |
--alertmanager_tls_key | SIGNALILO_ALERTMANAGER_TLS_KEY | - | TLS启用的webhook端点的私钥文件路径(同时设置TLS_CERT和TLS_KEY时启用TLS) |
--alertmanager_pluginoutput_annotations | - | - | 用于检索plugin_output的注解名称,可多次设置,取第一个有值的注解 |
/webhook端点接收符合Alertmanager webhook格式的告警。以下是OpenShift上Signalilo安装的Alertmanager配置示例:
yamlglobal: resolve_timeout: 5m route: group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: default routes: - match: alertname: DeadMansSwitch repeat_interval: 5m receiver: deadmansswitch receivers: - name: default webhook_configs: - send_resolved: true http_config: bearer_token: "**" url: http://signalilo.appuio-monitoring/webhook - name: deadmansswitch
Signalilo需要告警包含以下信息:
必选标签
severity: 必须为WARNING或CRITICALalertname: 映射为display_name必选注解
description: 映射为notesmessage: 映射为plugin_output(可通过--alertmanager_pluginoutput_annotations修改注解名称)可选注解
runbook_url: 映射为notes_url推断字段
generatorURL: 映射为action_urlIcinga中的服务对象会定期按以下规则进行垃圾回收(删除):
keep_for配置vars.bridge_uuid匹配垃圾回收所需的所有状态存储在Icinga服务变量中。
启动时,Signalilo检查Icinga中是否存在匹配的心跳服务,若不存在则以fatal错误退出。运行期间,Signalilo定期向心跳服务发送状态。若未提供状态更新,Icinga会自动将检查标记为UNKNOWN。服务对象的配置方式参见Icinga2被动检查。
所有标签和注解会映射为自定义变量:
label_annotation_若标签或注解的键以icinga_开头,也会作为自定义变量添加(无前缀)。由于标签和注解的值均为字符串,需通过前缀提供类型信息(icinga_<type>_),当前支持类型:number和string。
示例:
foo -> label_foo或annotation_fooicinga_foo_string -> 名为foo的标签/注解,值保持原样icinga_bar_number -> 名为bar的标签/注解,值转换为整数若标签和注解同时存在icinga_<type>前缀,注解的值优先。
Signalilo支持在Icinga中创建心跳服务,可用于映射如prometheus-operator提供的DeadMansSwitch告警(指示整个Prometheus堆栈健康)。
要将告警视为心跳,告警必须包含标签heartbeat,其值需解析为Go duration。解析成功后,Signalilo会创建启用主动检查的Icinga服务检查,检查间隔设为解析的时长加10%(用于应对网络延迟等,避免心跳检查波动)。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
不支持 push
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务