Docker安装Alertmanager

下载镜像

docker pull quay.io/prometheus/alertmanager
docker pull timonwong/prometheus-webhook-dingtalk

启动钉钉webhook

#启动容器之前需要先查看容器启动时会执行的命令,然后指定启动时挂载的文件
docker inspect -f '{{.Config.Cmd}}' prom/alertmanager
[--config.file=/etc/prometheus-webhook-dingtalk/config.yml]

docker run -d -p 8060:8060 --restart always --name dingtalk-webhook -v /usr/local/prometheus-webhook-dingtalk/dingtalk-webhook-config.yml:/etc/prometheus-webhook-dingtalk/config.yml timonwong/prometheus-webhook-dingtalk

启动alertmanager

#编写alertmanager的配置文件,其中receiver的地址需要注意,IP需要配置Prometheus钉钉webhook对应的docker容器的IP
global:
  resolve_timeout: 5m
route:
  receiver: "webhook"
  group_wait: 3s
  group_interval: 5m
  repeat_interval: 5s
  group_by: ["alertname"]
  routes:
  - match:
      job: "monitor-test"
    receiver: "webhook"
    group_wait: 10s
receivers:
- name: "webhook"
  webhook_configs:
  - url: "http://172.17.0.2:8060/dingtalk/webhook/send"
    send_resolved: true
docker run -d -p 9093:9093 --restart always --name alertmanager -v /usr/local/alertmanager/config.yml:/etc/alertmanager/alertmanager.yml -v /usr/local/alertmanager:/alertmanager prom/alertmanager

测试alertmanger

常用命令

#开机自启动
systemctl enable docker
#查看容器信息
docker inspect [CONTAINER ID]
#进入容器
docker exec -u root -it [CONTAINER ID] /bin/sh
#查看容器日志
docker logs -f [CONTAINER ID]
### 如何使用 Docker 部署 Alertmanager #### 使用基础命令运行 Alertmanager 容器 可以利用 `docker run` 命令来启动一个名为 `alertmanager` 的容器,并将其绑定到自定义网络以及端口映射。以下是具体的命令示例[^1]: ```bash docker run --name alertmanager --network prom -p 9093:9093 prom/alertmanager:v0.23.0 ``` #### 将本地配置文件挂载至容器内部 为了使外部的 `alertmanager.yml` 文件生效,可以通过 `-v` 参数将主机上的配置文件路径挂载到容器中的指定目录。这种方式允许动态调整告警规则而无需重新构建镜像[^2]: ```bash docker run -d --name alertmanager -p 9093:9093 \ -v /root/prometheus/alertmanager.yml:/etc/alertmanager/alertmanager.yml \ prom/alertmanager ``` #### 创建告警规则文件 在实际应用中,通常会编写一组告警规则以便监控目标的状态变化。例如,当某个节点出口进程不可用时触发告警的通知。以下是一个简单的告警规则样例: ```yaml groups: - name: node-up rules: - alert: node-up expr: up{job="node-exporter"} == 0 for: 15s labels: severity: '1' team: 'node' annotations: summary: '{{ $labels.instance }} 已停止运行超过 15s!' ``` 此规则表示如果 `up{job="node-exporter"}` 返回值等于零,则认为该实例已关闭,并持续观察至少 15 秒再发送警告。 #### 测试告警功能 一旦完成上述设置之后,可通过模拟场景验证整个流程是否正常工作。比如,在 Python 应用程序启动后再手动终止 `node_exporter` 进程以激发相应的事件响应机制;随后依据预设条件向第三方平台(如企业微信)传递消息内容[^3]。 #### 修改 Prometheus 配置指向新的 Alertmanager 实例 最后一步是在 Prometheus 中更新其关联的目标地址列表,从而确保两者之间能够顺利通信。编辑 `/opt/prometheus/config/prometheus.yml` 文件添加如下片段即可[^4]: ```yaml alerting: alertmanagers: - static_configs: - targets: # 替换为实际运行环境中 alertmanager 所处 IP 地址及端口号 - '172.31.113.186:9093' ``` 确认服务状态可借助于查看当前所有正在执行的任务清单命令 `docker ps -a` 来获取更多信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值