【阿圆实验】Alertmanager HA 高可用配置
注意:没有使用supervisor进程管理器的,只参考配置,忽略和supervisor相关命令。并且alertmanager的版本不得低于0.15.2,低版本alert不支持集群配置。
一.alertmanager高可用
这里使用的是supervisor配置,也可以把配置集合成命令行方式,在服务器运行配置。记得加&,后台运行。
1.配置alertmanager集群
1.1 修改各节点alertmanager.yml
cd /data/yy-monitor-server/etc
vim alertmanager.yml
# The root route on which each incoming alert enters.route: routes: group_wait: 15s group_interval: 15s |
1.2 修改启动文件
根目录下运行 vim /etc/supervisord.d/yy-monitor-server.ini
[program:alertmanager]priority = 3user = yycommand = /usr/bin/alertmanager --cluster.listen-address="10.22.0.1002:12001" # 当前节点ip和自定义的端口号 --log.level=debug |
其他节点配置:
[program:alertmanager]priority = 3user = yycommand = /usr/bin/alertmanager --cluster.listen-address="10.22.0.1001:12002" # 当前节点ip和自定义的端口号: --cluster.peer=10.22.0.1002:12001 # 选择一个节点加入集群 --log.level=debug |
重启配置,否则不能生效:
systemctl restart supervisord
supervisorctl restart alertmanager
2.查看日志
cd /data/yy-monitor-server/log
tail -f alermanager.log
level=debug ts=2018-08-28T08:58:44.75092899Z caller=cluster.go:287 component=cluster memberlist="2018/08/28 16:58:44 [DEBUG] memberlist: Initiating push/pull sync with: 10.22.0.1001:12002\n"level=debug ts=2018-08-28T08:59:21.675338872Z caller=cluster.go:287 component=cluster memberlist="2018/08/28 16:59:21 [DEBUG] memberlist: Stream connection from=10.22.0.1001:42736\n"level=debug ts=2018-08-28T08:59:44.754235616Z caller=cluster.go:287 component=cluster memberlist="2018/08/28 16:59:44 [DEBUG] memberlist: Initiating push/pull sync with: 10.22.0.1000:12003\n" |
启动完成后访问任意Alertmanager节点http://localhost:9093/#/status,可以查看当前Alertmanager集群的状态。

3.修改各节点prometheus.yml
cd /data/yy-monitor-server/etc
vi prometheus.yml
global: scrape_interval: 5s scrape_timeout: 5s evaluation_interval: 5s # The labels to add to any time series or alerts when communicating with # external systems (federation, remote storage, Alertmanager). external_labels: dc: europe1# Alertmanager configurationalerting: alert_relabel_configs: - source_labels: [dc] regex: (.+)\d+ target_label: dc alertmanagers: - static_configs: - targets:: ['10.22.0.1000:9093','10.22.0.1001:9093', '10.22.0.1002:9093'] |
global: scrape_interval: 5s scrape_timeout: 5s evaluation_interval: 5s# Note that this is different only by the trailing number. external_labels: dc: europe2# Alertmanager configurationalerting: alert_relabel_configs: - source_labels: [dc] regex: (.+)\d+ target_label: dc alertmanagers: - static_configs: - targets:: ['10.22.0.1000:9093','10.22.0.1001:9093', '10.22.0.1002:9093'] |
global: scrape_interval: 5s scrape_timeout: 5s evaluation_interval: 5s external_labels: dc: europe3# Alertmanager configurationalerting: alert_relabel_configs: - source_labels: [dc] regex: (.+)\d+ target_label: dc alertmanagers: - static_configs: - targets:: ['10.22.0.1000:9093','10.22.0.1001:9093', '10.22.0.1002:9093'] |
2.重启prometheus:
# supervisorctl restart prometheusprometheus: stoppedprometheus: started |
二. Alertmanager代理配置
1.nginx配置
选取一台主机做配置(如:10.22.0.1002)
cd /data/yy-monitor-server/etc
vi nginx.conf
# Alertmanager upstream alert{ server 10.22.0.1002:9093; server 10.22.0.1001:9093; server 10.22.0.1000:9093; } server{ # alertmanager location /alertmanager/ { proxy_pass http://alert/; } } |
重启nginx
# supervisorctl restart nginxnginx: stoppednginx: started |
2.验证配置
停止其中两台服务:
1002 # supervisorctl stop alertmanageralertmanager: stopped1001 # supervisorctl stop alertmanageralertmanager: stopped |
访问ui正常,配置代理成功。
附录:https://github.com/prometheus/alertmanager#high-availability
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-addressstring: cluster listen address (default "0.0.0.0:9094")--cluster.advertise-addressstring: cluster advertise address--cluster.peervalue: initial peers (repeat flag for each additional peer)--cluster.peer-timeoutvalue: peer timeout period (default "15s")--cluster.gossip-intervalvalue: cluster message propagation speed (default "200ms")--cluster.pushpull-intervalvalue: lower values will increase convergence speeds at expense of bandwidth (default "1m0s")--cluster.settle-timeoutvalue: maximum time to wait for cluster connections to settle before evaluating notifications.--cluster.tcp-timeoutvalue: timeout value for tcp connections, reads and writes (default "10s")--cluster.probe-timeoutvalue: time to wait for ack before marking node unhealthy (default "500ms")--cluster.probe-intervalvalue: interval between random node probes (default "1s")
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.
To start a cluster of three peers on your local machine use goreman and the Procfile within this repository.
goreman start
To point your Prometheus 1.4, or later, instance to multiple Alertmanagers, configure them in your prometheus.yml configuration file, for example:
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager1:9093
- alertmanager2:9093
- alertmanager3:9093
Important: Do not load balance traffic between Prometheus and its Alertmanagers, but instead point Prometheus to a list of all Alertmanagers. The Alertmanager implementation expects all alerts to be sent to all Alertmanagers to ensure high availability.
【阿圆实验】Alertmanager HA 高可用配置的更多相关文章
- HA高可用配置
HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务. 下 ...
- hadoop2.5.0 HA高可用配置
hadoop2.5.0 HA配置 1.修改hadoop中的配置文件 进入/usr/local/src/hadoop-2.5.0-cdh5.3.6/etc/hadoop目录,修改hadoop-env.s ...
- CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装
1 2 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.9.1 2.9.2 2.9.2.1 2.9.2.2 2.9.3 2.9.3.1 2.9.3.2 2.9.3.3 2. ...
- 【阿圆实验】Grafana HA高可用方案
一.实现Grafana高可用 1.Grafana实现高可用性有两步: >>使用共享数据库存储仪表板,用户和其他持久数据>>决定如何存储会话数据. 2.Grafana高可用部署图 ...
- springcloud-07-eureka HA的高可用配置
单机版的eureka, 运行时间稍长, 就会在管理界面出现红色的警告, 为了消除这个警告, 可以使用eureka的高可用配置: 只需要写一个工程配置不同的配置文件, 然后启动多实例即可: 请参照单机版 ...
- Hadoop HA高可用集群搭建(Hadoop+Zookeeper+HBase)
声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 一.服务器环境 主机名 IP 用户名 密码 安装目录 master188 192.168.29.188 hadoop hadoop /home/ha ...
- 大数据技术之HA 高可用
HDFS HA高可用 1.1 HA概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA ...
- ResourceManager高可用配置
ResourceManager高可用配置 1. yarn-site.xml配置 <property> <name>yarn.resourcemanager.cluster-id ...
- HA高可用的搭建
HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务.常用 ...
随机推荐
- “makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,$∗\.o[ :]*,\1.o $@ : ,g' < $@.
目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译.并且当某个.c/.cpp..h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译. 二要 ...
- Makefile 自动产生依赖 ***
代码如下: 其实这里主要是为每个C文件建立一个同名的后缀为.d.该文件的作用是使用gcc的-M属性来自动生成.o文件的头文件依赖关系. 第1,2,4都好理解. 第2行解释: 使用gcc -M 的属性将 ...
- 什么是VBA,他有什么作用
目录 什么是VBA,它有什么作用 VBA在哪里存放的?怎么运行的 什么是宏?宏和VBA有什么关系? 录制一个宏 编写第一个宏 一.什么是VBA,它有什么作用 VBA是一种编程语言,它依托于Office ...
- 【转】轻舞飞扬 LTE基本架构
这篇文章主要介绍LTE的最基础的架构,包括LTE网络的构成,每一个网络实体的作用以及LTE网络协议栈,最后还包括对一个LTE数据流的模型的说明. LTE网络参考模型 这是一张非常有名的LTE架构图,从 ...
- Disconf —— 来自百度的分布式配置管理平台
摘要 为了更好的解决分布式环境下多台服务实例的配置统一管理问题,本文提出了一套完整的分布式配置管理解决方案(简称为disconf[4],下同).首先,实现了同构系统的配置发布统一化,提供了配置服务se ...
- Debian7 apt源设置
刚装完系统时是没有 apt-spy 的,这时候我们可以暂时先找个可用的源代替,如(写在 /etc/apt/sources.list 中): deb http://http.us.debian.org/ ...
- python正则以及collections模块
正则 一.认识模块 什么是模块:一个模块就是一个包含了python定义和声明的文件,文件名就是加上.py的后缀,但其实import加载的模块分为四个通用类别 : 1.使用python编写的代码(.p ...
- OpenGL 着色器 03
着色器(shader)是运行在GPU上小程序. 也是一种非常独立的程序,它们之间不能相互通信:它们之间唯一的沟通只有通过输入和输出. 着色器的开头总是要声明版本,接着是输入和输出变量,uniform和 ...
- javaScript之NodeList
NodeList对象 是DOM操作取出的集合(实际上是基于DOM结构动态查询的结果),用来保存一组有序的节点,可以通过位置来访问这些节点,它并不是array的实例. Nodelist最大的特点就是它的 ...
- JAVA基础知识总结6(面向对象特征之一:多态)
多 态:函数本身就具备多态性,某一种事物有不同的具体的体现. 体现:父类引用或者接口的引用指向了自己的子类对象. Animal a = new Cat(); 多态的好处:提高了程序的扩展性. 多态的弊 ...