一、AlertManager集群搭建

1、背景

单节点的告警管理器,如果宕机了,那么所有的告警信息都发送不出去,还是比较危险的,因此我们需要搭建一个高可用的告警管理器。

此处,记录一下搭建3个节点的alertmanager集群。

2、机器

机器 集群端口 web页面端口
127.0.0.1 9083 9082
127.0.0.1 9085 9084
127.0.0.1 9087 9086

3、集群可用配置

To create a highly available cluster of the Alertmanager the instances need to be configured to communicate with each other. This is configured using the --cluster.* flags.

  • --cluster.listen-address string: cluster listen address (default “0.0.0.0:9094”; empty string disables HA mode) 集群服务监听的地址
  • --cluster.advertise-address string: cluster advertise address
  • --cluster.peer value: initial peers (repeat flag for each additional peer) 初始化时关联其它实例的集群机器地址
  • --cluster.peer-timeout value: peer timeout period (default “15s”)
  • --cluster.gossip-interval value: cluster message propagation speed (default “200ms”)
  • --cluster.pushpull-interval value: lower values will increase convergence speeds at expense of bandwidth (default “1m0s”)
  • --cluster.settle-timeout value: maximum time to wait for cluster connections to settle before evaluating notifications.
  • --cluster.tcp-timeout value: timeout value for tcp connections, reads and writes (default “10s”)
  • --cluster.probe-timeout value: time to wait for ack before marking node unhealthy (default “500ms”)
  • --cluster.probe-interval value: interval between random node probes (default “1s”)
  • --cluster.reconnect-interval value: interval between attempting to reconnect to lost peers (default “10s”)
  • --cluster.reconnect-timeout value: length of time to attempt to reconnect to a lost peer (default: “6h0m0s”)

The chosen port in the cluster.listen-address flag is the port that needs to be specified in the cluster.peer flag of the other peers.

The cluster.advertise-address flag is required if the instance doesn’t have an IP address that is part of RFC 6890 with a default route.

上方配置,来自 alertmanagergithub上的配置。地址:https://github.com/prometheus/alertmanager

4、alertmanager启动脚本

1、127.0.0.1:9083 机器启动脚本

nohup /Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager \
--config.file="/Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager.yml" \
--web.listen-address="0.0.0.0:9082" \
--data.retention=48h \
--storage.path="/Users/huan/soft/prometheus/alertmanager-0.21.0/data" \
--cluster.listen-address="0.0.0.0:9083" \
--log.level=debug \
> logs/alertmanager.out 2>&1 &

2、127.0.0.1:9085 机器启动脚本

nohup /Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager \
--config.file="/Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager.yml" \
--web.listen-address="0.0.0.0:9084" \
--data.retention=48h \
--storage.path="/Users/huan/soft/prometheus/alertmanager-0.21.0/data" \
--cluster.listen-address="0.0.0.0:9085" \
--cluster.peer="127.0.0.1:9083" \
--log.level=debug \
> logs/alertmanager.out 2>&1 &

3、127.0.0.1:9087 机器启动脚本

nohup /Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager \
--config.file="/Users/huan/soft/prometheus/alertmanager-0.21.0/alertmanager.yml" \
--web.listen-address="0.0.0.0:9086" \
--data.retention=48h \
--storage.path="/Users/huan/soft/prometheus/alertmanager-0.21.0/data9087" \
--cluster.listen-address="0.0.0.0:9087" \
--cluster.peer="127.0.0.1:9083" \
--log.level=debug \
> logs/alertmanager-9087.out 2>&1 &

5、修改prometheus配置

prometheus.yml 配置修改

# Alertmanager configuration
alerting:
alertmanagers:
- static_configs:
- targets:
- 127.0.0.1:9082
- 127.0.0.1:9084
- 127.0.0.1:9086

6、查看集群状态

到此,alertmanager 的一个集群就搭建完成了。

7、注意事项

1、如果实例没有使用默认路由的 RFC 6890一部分的IP地址,则需要cluster.advertise-address标志。

2、如果我们的告警管理器是在0.15及以上的版本,则TCP和UDP端口都需要可以访问。

3、不要在Prometheus和AlertManager之间进行负载均衡,应该将所有的AlertManager地址都告诉Prometheus。

4、集群中节点的通讯是通过Gossip协议来实现的。

8、告警管理器的高可用架构图

二、参考链接

1、RFC 6890
2、alertmanager集群搭建
3、https://www.bookstack.cn/read/prometheus-book/ha-alertmanager-high-availability.md

AlertManager集群搭建的更多相关文章

  1. Alertmanager 集群

    Alertmanager 集群搭建 环境准备:2台主机 (centos 7) 192.168.31.151 192.168.31.144 1.安装部署 192.168.31.151 cd /usr/l ...

  2. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  3. 【Oracle 集群】Linux下Oracle RAC集群搭建之基本测试与使用(九)

    Oracle 11G RAC数据库安装(九) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  4. 【Data Cluster】真机环境下MySQL数据库集群搭建

    真机环境下MySQL-Cluster搭建文档  摘要:本年伊始阶段,由于实验室对不同数据库性能测试需求,才出现MySQL集群搭建.购置主机,交换机,双绞线等一系列准备工作就绪,也就开始集群搭建.起初笔 ...

  5. (四)Spark集群搭建-Java&Python版Spark

    Spark集群搭建 视频教程 1.优酷 2.YouTube 安装scala环境 下载地址http://www.scala-lang.org/download/ 上传scala-2.10.5.tgz到m ...

  6. (三)Spark-Hadoop集群搭建-Java&Python版Spark

    Spark-Hadoop集群搭建 视频教程: 1.优酷 2.YouTube 配置java 启动ftp [root@master ~]# /etc/init.d/vsftpd restart 关闭 vs ...

  7. Mosquitto搭建Android推送服务(三)Mosquitto集群搭建

    文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 如果需要做并发量很大的时候就需要考虑做集群处理,但是我在查找资料的时候发现并不多,所以整理了一下,搭建简 ...

  8. Mongodb集群搭建的三种方式

    转自:http://blog.csdn.net/luonanqin/article/details/8497860 MongoDB是时下流行的NoSql数据库,它的存储方式是文档式存储,并不是Key- ...

  9. 分布式架构中一致性解决方案——Zookeeper集群搭建

    当我们的项目在不知不觉中做大了之后,各种问题就出来了,真jb头疼,比如性能,业务系统的并行计算的一致性协调问题,比如分布式架构的事务问题, 我们需要多台机器共同commit事务,经典的案例当然是银行转 ...

随机推荐

  1. Python入门学习之:10分钟1500访问量

    看效果: 不扯没用的,直接上代码: # author : sunzd # date : 2019/9/01 # position : beijing from fake_useragent impor ...

  2. shell逐行读取文件内容

    shell 中逐行读取文件内容 1.语法简介 #!/bin/bash <<EOF shell 中逐行读取文件内容的语法如下所示. 这里虽然很简单,但是再配合上其他的工具,如sed,awk, ...

  3. clickonce的密钥到期问题处理

    最近clickonce的密钥到期了,在网上找了些文章用来修改密钥的到期时间,已成功生成新密钥,好不好使暂时未测. 在此小结一下,以备参考: 1.在原密钥所属电脑上cmd执行如下命令 renewcert ...

  4. Spring框架(第一天)

    一. 引言 a) 什么是Spring框架?(spring官网:www.springsource.org) 3.x  不提供第三发依赖jar 目前已经到了5.x版本. Spring轻量级(代码入侵性小) ...

  5. centos7 未启用swap导致内存使用率过高。

    情况描述: 朋友在阿里云上有一台系统为CentOS7的VPS,内存为2GB,用于平时开发自己的项目时测试使用: 他在上面运行了5个docker实例,运行java程序:还有一个mysql服务: 上述5个 ...

  6. PHP匿名类的用法

    在PHP7之后,PHP中加入了匿名类的特性.匿名类和匿名方法让PHP成为了更现代化的语言,也让我们的代码开发工作越来越方便.我们先来看看匿名类的简单使用. // 直接定义 $objA = new cl ...

  7. html阴影 box-shadow

    右下阴影 div { box-shadow: 10px 10px 5px #888888; }四周阴影 div { box-shadow: 0 0 5px #888888; } div {box-sh ...

  8. shell脚本中 /dev/null 的用途

    /dev/null 是一个特殊的设备文件,它丢弃一切写入其中的数据 可以将它 视为一个黑洞, 它等效于只写文件, 写入其中的所有内容都会消失, 尝试从中读取或输出不会有任何结果,同样,/dev/nul ...

  9. self this

    面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能.利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意 ...

  10. windows 10玩mysql 8

    注意事项: 1)windows 10只支持两个版本: 5.7,8.0 2)安装有两种方式,zip与installer,建议用zip方式,因为installer要安装许多依赖,如vision c++等, ...