我正在努力将 Microsoft Teams/Prometheus 集成到 K8s 集群中。我使用 helm 启动了所有组件。我的 Prometheus 和 Alertmanager 正常工作。似乎一切正常。Prometheus 与 Alertmanager 通信。然后 prometheus-msteams 从 Alert Manager 接收 POST 警报,它应该将其发送到 Microsoft Teams 频道,但事实并非如此。
2022/03/01 06:49:38 [DEBUG] POST https://xxx.webhook.office.com/webhookb2/xxx-xxx-xxx/IncomingWebhook/xxx
2022/03/01 06:50:08 [ERR] POST https://xxx.webhook.office.com/webhookb2/xxx-xxx-xxx/IncomingWebhook/xxx request failed: Post https://xxx.webhook.office.com/webhookb2/xxx-xxx-xxx/IncomingWebhook/xxx: dial tcp 42.12.12.542:443: i/o timeout
30 秒后超时。我认为这可能是代理问题。因此,我将 extraEnv 参数添加到配置映射中,重新启动 pod,但没有任何变化。因此,我的配置如下所示:
apiVersion: v1
data:
connectors.yaml: |
connectors:
- alertmanager-warning: https://xxx.webhook.office.com/webhookb2/xxx-xxx-xxx/IncomingWebhook/xxx
- alertmanager-critical: https://xxx.webhook.office.com/webhookb2/xxx-xxx-xxx/IncomingWebhook/xxx
extraEnvs:
HTTPS_PROXY: http://my-proxy.com:911
kind: ConfigMap
metadata:
我还登录容器检查 /etc/config/connectors.yaml 是否正常。我担心这个 extraEnvs 不知何故不起作用。从 K8s 工作节点,我尝试手动(使用 curl)将一些测试 json 发布到 MS Chanel,但没有代理,它就挂了。当我导出 HTTPS_PROXY var 时,消息已在 MS Teams Chanel 中成功创建。
export HTTPS_PROXY=http://my-proxy.com:911
curl -X POST -d @test.json https://xxx.webhook.office.com/webhookb2/xxx-xxx-xxx/IncomingWebhook/xxx
您知道是什么原因导致的吗?当我输入时,这个 HTTPS_PROXY 环境是否应该列出打印数据在 prometheus-msteams 容器中?
答案1
问题解决了:) HTTPS_PROXY 应该定义部署而不是 configMap
env:
- name: HTTPS_PROXY
value: http://myproxy.com:911