PostgreSQL Patroni_exporter 监控 patroni高可用工具
Patroni是Cybertec公司基于python语言开发的,可用于使用流复制来创建,管理,维护和监视高可用性PostgreSQL集群设置的工具。

目前,Patroni+Etcd 是最为推荐的PostgreSQL数据库高可用方案之一。
PostgreSQL有postgres_exporter监控采集器。对于Patroni高可用工具自身的监控,有啥子监控方案吗?
一起来看看 ,鲜为人知的 patroni-exporter 吧。
一、patroni-exporter 部署
环境要求:Requires python >= 3.6
软件包下载:https://github.com/Showmax/patroni-exporter
patroni_export 安装
1.1、安装python系统包pip3.6 install prometheus_client pip3.6 install python-dateutil1.2、unzip 解压 patroni-exporter-master.zip[root@HD-IOV-PROMETHEUS-MONITOR patroni]# ll
total 12
drwx------ 3 root root 137 Aug 1 10:39 patroni-exporter-master
-rw------- 1 root root 8566 Aug 1 10:31 patroni-exporter-master.zip1.3、 patroni-exporter服务启动脚本# cat /etc/systemd/system/patroni_exporter.service
[Unit]
Description=patroni_exporter
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/python3.6 /root/dba_zc/patroni/patroni-exporter-master/patroni_exporter.py --port 51234 --patroni-url http://172.24.131.8:8008/patroni --timeout 5
TimeoutSec = 60
Restart = on-failure
RestartSec = 2
[Install]1.4、patroni_exporter启动systemctl start patroni_exporter
二、patroni-exporter对接Prometheus
为了方便,这里采用静态注册:静态的将服务的IP和抓取指标的端口号配置在Prometheus yaml文件的scrape_configs配置下。
- job_name: patroni-jobstatic_configs:- targets: ['172.26.234.25:51234','172.26.234.25:51238','172.26.234.25:51239']
访问prometheus web,能看到各监控export为UP即正常


三、patroni-exporter采集数据Grafana可视化
我基于patronictl version 1.6.1 下 patroni-exporter采集数据,编写了一个 Grafana Dashboard for Patroni exporter,效果如下


四、patroni基于Alertmanager告警
# cat patroni_rules.yml
groups:
- name: for_common
rules:
- alert: IOV-patroni_patroni_info
expr: patroni_patroni_info != 1
for: 1m
labels:
level: 3
annotations:
cur_value: '{{ $value }}'
description: '{{ $labels.instance}} of {{$labels.job}} patroni has down 1m'
- alert: IOV-patroni_patroni_pause
expr: patroni_patroni_pause != 0
for: 1m
labels:
level: 3
annotations:
cur_value: '{{ $value }}'
description: '{{ $labels.instance}} of {{$labels.job}} patroni 处于 pause 1m'
- alert: IOV-patroni_postgresql_timeline
expr: changes(patroni_postgresql_timeline[1m]) != 0
for: 1m
labels:
level: 3
annotations:
cur_value: '{{ $value }}'
description: '{{ $labels.instance}} of {{$labels.job}} patroni change postgresql_timeline 1m'
五、patroni 服务高可用性优化
针对patroni服务非正常关闭,os systemd自动重启拉起,保障工具的高可用性。
异常终止后自动重启,systemd控制参数Restart=always 、RestartSec=5、 StartLimitInterval=0[root@ZL-IOV-ZNA-L2-DBORCH02 system]# cat /etc/systemd/system/patroni.service[Unit]Description=Runners to orchestrate a high-availability PostgreSQLAfter=syslog.target network.target[Service]Type=simpleUser=postgresGroup=postgres#StandardOutput=syslogExecStartPre=-/usr/bin/sudo /sbin/modprobe softdogExecStartPre=-/usr/bin/sudo /bin/chown postgres /dev/watchdogExecStart=/usr/bin/patroni /software/patroni/patroni.ymlExecReload=/bin/kill -s HUP $MAINPIDKillMode=processTimeoutSec=30Restart=alwaysRestartSec=5StartLimitInterval=0[Install]WantedBy=multi-user.target
patroni 高可用测试
patroni异常终止,自动重新拉起

相关文章:
PostgreSQL Patroni_exporter 监控 patroni高可用工具
Patroni是Cybertec公司基于python语言开发的,可用于使用流复制来创建,管理,维护和监视高可用性PostgreSQL集群设置的工具。 目前,PatroniEtcd 是最为推荐的PostgreSQL数据库高可用方案之一。 PostgreSQL有postgres_exporter监控采…...
C语言多级指针
#include "stdio.h" #include <stdlib.h>int main() {int a 10;//*p int a int *pint* p &a;int** q &p;//int** q int *(*q) int *(q) a//int**q int*(*q) int*(&a) int*&a aint*** k &q;//分析:首先k是个变量&…...
IDEA项目实践——创建Java项目以及创建Maven项目案例、使用数据库连接池创建项目简介
系列文章目录 IDEA上面书写wordcount的Scala文件具体操作 IDEA创建项目的操作步骤以及在虚拟机里面创建Scala的项目简单介绍 目录 系列文章目录 前言 一 准备工作 1.1 安装Maven 1.1.1 Maven安装配置步骤 1.1.2 解压相关的软件包 1.1.3 Maven 配置环境变量 1.1.4 配…...
ArraySetter
简介 用来展示属性类型为数组的 setter 展示 配置示例 "setter": {"componentName": "ArraySetter","props": {"itemSetter": {"componentName": "ObjectSetter","props": {"c…...
Python如何解决Amazon亚马逊“图文验证码”识别(6)
前言 本文是该专栏的第55篇,后面会持续分享python爬虫干货知识,记得关注。 在本专栏前面,笔者有详细介绍多种登录验证码识别方法,感兴趣的同学可往前翻阅。而本文,笔者将单独详细介绍亚马逊Amazon的图文识别验证码的解决方法。 如上图所示,访问或请求频次达到一定程度之…...
plsql连接oracle出现TTC错误
这个错误莫名其妙,搜不到直接关联的解决方案。用了下面解决乱码的方式倒是解决了。 ORA-03137: TTC protocol internal error : [%s] [%s] [%s] [%s] [%s] [%s] [%s] [%s] 按照如下链接解决: PL/SQL Developer中文乱码解决方案_Bug君坤坤的博客-CSDN博…...
4-golang爬虫下载的代码
golang爬虫下载的代码: 下载程序的借鉴内容: 这个是关于gbk,utf8等相互转换的包 github.com/axgle/mahonia" 一、标准下载代码 package downloaderimport ("log""net/http""io""github.com/axgle/…...
Eureka增加账号密码认证登录
一、业务背景 注册中心Eureka在微服务开发中经常使用到,用来管理发布的微服务,供前端或者外部调用。但是如果放到生产环境,我们直接通过URL访问的话,这显然是不安全的。 所以需要给注册中心加上登录认证。 通过账号和密码认证进行…...
Practice5|58. 最后一个单词的长度、66. 加一
58. 最后一个单词的长度 1.题目: 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:…...
Practice4|14. 最长公共前缀、2. 两数相加
14. 最长公共前缀 1.题目: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出…...
第28天-Kubernetes架构,集群部署,Ingress,项目部署,Dashboard
1.K8S集群部署 1.1.k8s快速入门 1.1.1.简介 Kubernetes简称k8s,是用于自动部署,扩展和管理容器化应用程序的开源系统。 中文官网:https://kubernetes.io/zh/中文社区:https://www.kubernetes.org.cn/官方文档:https…...
剑指OfferII-58.左旋转字符串
剑指OfferII-58.左旋转字符串 目录 剑指OfferII-58.左旋转字符串题目描述解法一:字符数组解法二:原地反转 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。 请定义一个函数实现字符串左旋转操作的功能。 比如,…...
C语言每日一题:14《数据结构》复制带随机指针的链表
题目一: 题目链接: 思路一: 找相对位置暴力求解的方法: 1.复制一个新的链表出来遍历老的节点给新的节点赋值,random这个时候不去值。 2.两个链表同时遍历,遍历老链表的时候去寻找相对位置,在遍…...
MySql008——检索数据:过滤数据(WHERE子句的使用)
前提:使用《MySql006——检索数据:基础select语句》中创建的products表 一、实际需求 数据库表一般包含大量的数据,但是很少需要检索表中所有行。通常只会根据特定条件提取表数据的子集。只检索所需数据需要指定搜索条件(search …...
vue2-v-show和v-if有什么区别,使用场景分别是什么?
1、v-show和v-if的共同点 在vue中,v-if和v-show的作用效果是相同的(不含v-else),都能控制元素在页面是否显示,在用法上也相同。 当表达式为true的时候,都会占据页面的位置 当表达式为false的时候ÿ…...
常用的排序算法简介:冒泡、选择、插入、归并、快速
常用的排序算法包括冒泡排序、选择排序、插入排序、归并排序和快速排序。以下是它们的简单介绍: 1. 冒泡排序(Bubble Sort): 冒泡排序是一种经典的基于交换的排序算法。它重复地比较相邻的元素,如果顺序错误&#…...
Golang之路---04 项目管理——编码规范
本文根据个人编码习惯以及网络上的一些文章,整理了一些大家能用上的编码规范,可能是一些主流方案,但不代表官方。 1. 文件命名 由于 Windows平台文件名不区分大小写,所以文件名应一律使用小写 不同单词之间用下划线分词…...
hcip——期中小试
要求: 1、该拓扑为公司网络,其中包括公司总部、公司分部以及公司骨干网,不包含运营商公网部分。 2 、设备名称均使用拓扑上名称改名,并且区分大小写。 3 、整张拓扑均使用私网地址进行配置。 4 、整张网络中,运行 O…...
华云安参编的《云原生安全配置基线规范》正式发布
由中国信息通信研究院(以下简称“中国信通院”)、中国通信标准化协会主办的第十届可信云大会云原生安全分论坛于7月26日在北京国际会议中心成功召开。作为大会上展示的成果之一,由中国信通院联合行业领先企业共同编写的《云原生安全配置基线规…...
【计算机网络】NAT技术
文章目录 1. NAT技术简介2. 使用NAT技术转换IP的过程3. NAPT4. NAT技术的缺陷5. NAT和代理服务器 1. NAT技术简介 NAT(Network Address Translation,网络地址转换)技术,是解决IP地址不足的主要手段,并且能够有效避免外…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
