【PG】PostgreSQL高可用之repmgr事件通知

目录

描述

结合脚本

占位符

repmgr命令 生成的事件:

repmgrd 生成的事件(流复制模式):


描述

每次repmgr或repmgrd执行重大事件时,都会将该事件的记录连同时间戳、失败或成功的标识以及进一步的详细信息(如果适用)一起写入表中。这对于了解影响复制集群的事件的概况很有用。但请注意,此表具有咨询性质,应与repmgrrepmgr.events和 PostgreSQL 日志结合使用 以获取任何事件的详细信息。

或者,使用repmgr cluster event输出格式化的事件列表。

结合脚本

此外,事件通知可以传递给用户定义的程序或脚本,以便采取进一步行动,例如发送电子邮件通知。这可以通过设置配置文件repmgr.conf中的参数event_notification_command 来完成。

 ./repmgrEventNotifiction -eventTimestamp "%t" -primaryNodeId "%p" -primaryConnInfo "%c" -primaryNodeName "%a" -nodeId "%n" -eventType "%e" -isSuccess "%s" -eventDetails "%d"

占位符

所有事件通知均提供了以下格式占位符:

%n 节点 ID

%e 事件类型

%s 成功 (1) 或失败 (0)

%t 时间戳

%d 细节

注意:

%t和 %d 提供的值 可能包含空格,因此应在提供的命令配置中用引号引起来,例如:

event_notification_command='/path/to/some/script %n %e %s "%t" "%d"'

为部分事件通知提供了以下参数;它们的含义可能根据上下文而改变:

%p

当前主节点的节点 ID  (repmgr standby register and repmgr standby follow)

降级主节点的节点 ID   (repmgr standby switchover only)

前主节点的节点 ID (repmgrd_failover_promote only)

%c conninfo主节点的字符串 (repmgr standby register和repmgr standby follow)

%a 当前主节点的名称 (repmgr standby register和repmgr standby follow)

%c和 %a 提供的值可能包含空格,因此应始终用引号引起来。

默认情况下,所有通知类型都将传递给指定的脚本;可以使用参数event_notifications将通知类型过滤为明确命名的类型 ,例如:

只通知以下类型的事件:

event_notifications='primary_register,standby_register,witness_register'

repmgr命令 生成的事件:

  • cluster_created
  • primary_register
  • primary_unregister
  • standby_clone
  • standby_register
  • standby_register_sync
  • standby_unregister
  • standby_promote
  • standby_follow
  • standby_switchover
  • witness_register
  • witness_unregister
  • node_rejoin
  • cluster_cleanup

repmgrd 生成的事件(流复制模式):

  • repmgrd_start
  • repmgrd_shutdown
  • repmgrd_reload
  • repmgrd_failover_promote
  • repmgrd_failover_follow
  • repmgrd_failover_aborted
  • repmgrd_standby_reconnect
  • repmgrd_promote_error
  • repmgrd_local_disconnect
  • repmgrd_local_reconnect
  • repmgrd_upstream_disconnect
  • repmgrd_upstream_reconnect
  • standby_disconnect_manual
  • standby_failure
  • standby_recovery
  • child_node_disconnect
  • child_node_reconnect
  • child_node_new_connect
  • child_nodes_disconnect_command

请注意,在某些情况下(例如,当找不到复制集群主节点时),将无法将条目写入表中 repmgr.events ,在这种情况下,通过执行脚本event_notification_command 可以通过生成某种形式的通知作为后备。

通知脚本编写

shell 脚本

shell 脚本描述

将事件通知写到文件 /data/storage/repmgr/repmgr_notifications.log 中

event_notification_command='echo -e "[Repmgr Event Notification]\n"primary_node_id:"%p\n"primary_conninfo:"%c\n"primary_node_name:"%a\n"node_id:"%n\n"event_type:"%e\n"is_success:"%s\n"timestamp:"%t\n"details:"%d\n">> /data/storage/repmgr/repmgr_notifications.log'

将该配置文件写到/etc/repmgr.conf配置文件中

执行

repmgr -f /etc/repmgr.conf standby register

查看文件 /data/storage/repmgr/repmgr_notifications.log 中有以下日志

[Repmgr Event Notification]
primary_node_id:2
primary_conninfo:host=10.90.211.30 port=5432 user=repmgr dbname=repmgr connect_timeout=2
primary_node_name:node2
node_id:3
event_type:standby_register
is_success:1
timestamp:2024-07-16 17:03:31.912615+08
details:standby registration succeeded; upstream node ID is 2

shell 脚本验证成功

GO脚本

event_notification_command='/data/storage/repmgr/scripts/repmgrEventNotifiction -eventTimestamp "%t" -primaryNodeId "%p" -primaryConnInfo "%c" -primaryNodeName "%a" -nodeId "%n" -eventType "%e" -isSuccess "%s" -eventDetails "%d"'

发送通知到办公通讯软件中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker安装好了,但是启动失败

新项目要用docker部署,但是docker安装完后,启动失败,服务器用的是国产化的(之前的服务器非国产化,之前也没任何问题),国产化的使用起来问题一大堆,还是bclinux 安装好后重启一直显示 使用journalctl -xe也没任何报错 使用systemctl status docker查看docker状态是灰…

VScode:前端项目中yarn包的安装和使用

一、首先打开PowerShell-管理员身份运行ISE 输入命令: set-ExecutionPolicy RemoteSigned 选择“全是”,表示允许在本地计算机上运行由本地用户创建的脚本,没有报错就行了 二、接着打开VScode集成终端,安装yarn插件 输入 npm ins…

ELK日志分析系统部署文档

一、ELK说明 ELK是Elasticsearch(ES) Logstash Kibana 这三个开源工具组成,官方网站: The Elastic Search AI Platform — Drive real-time insights | Elastic 简单的ELK架构 ES: 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它…

前端pc和小程序接入快递100(跳转方式和api方式)====实时查询接口

文章目录 跳转方式微信小程序(我以uniapp为例)pc api接入说明关于签名计算成功示例 跳转方式 没有任何开发成本,直接一键接入 可以直接看官方文档 https://www.kuaidi100.com/openapi/api_wxmp.shtml 微信小程序(我以uniapp为例…

Python求均值,方差,标准差

参考链接:变异系数(Coefficient of Variation,COV)和协方差(Covariance, Cov)-CSDN博客 参考链接:pandas中std和numpy的np.std区别_numpy pandas std-CSDN博客 在计算蛋白质谱数据中的每个蛋白对应的变异…

C++内存管理(区别C语言)深度对比

欢迎来到我的Blog,点击关注哦💕 前言 前面已经介绍了类和对象,对C面向对象编程已经有了全面认识,接下来要学习对语言学习比较重要的是对内存的管理。 一、内存的分区 代码区:存放程序的机器指令,通常是可…

从操作系统层面认识Linux

描述进程-PCB Linux操作系统下的PCB是: task_struct https://www.cnblogs.com/tongyan2/p/5544887.htmlhttps://www.cnblogs.com/tongyan2/p/5544887.html校招必背操作系统面试题-什么是 PCB(进程控制块) ?_哔哩哔哩_bilibili校招必背操作系…

WSL-Ubuntu20.04环境使用YOLOv8 TensorRT推理加速

在阅读本章内容之前,需要把部署环境以及训练环境都安装好。 1.TensorRTX下载 这里使用Wang-xinyu大佬维护的TensorRTX库来对YOLOv8进行推理加速的演示,顺便也验证一下前面环境配置的成果。 github地址:GitHub - wang-xinyu/tensorrtx,下载后放到wsl的路径下,我这里放在/h…

transformer论文讲解

1.标题 作者 Transformer 开创了继 MLP 、CNN和 RN 之后的第四大类模型。200页综述(来自评论区: https://arxiv.org/pdf/2108.07258.pdf )建议将Transformer作为基础模型。 标题:XXX is all you need. 头条标题。 Attention i…

Docker部署内网穿透服务

前提 首先!市面上的可下载的内网穿透是不是都非常的不好用,本地开发测试用起来都不方便。免费版本的各有限制。从无条件免费到后面维护的越来越复杂。无脑人(我)只需要下面这个。 一个是随机域名不定期会更换,一个是隧…

【数据结构】链表(LinkedList)详解

文章目录 [toc] 前言1. 链表的介绍1.1 链表的定义1.2 链表的结构种类 2. 单向链表的模拟实现2.1 创建链表2.2 打印链表2.3 求链表长度 3. 单向链表常见方法的模拟实现3.1 头插法3.2 尾插法3.3 指定位置插入3.4 查找值 key 的节点是否在链表中3.5 删除值为 key 的节点3.6 删除所…

栈(用C语言实现)

1. 栈 1.1 概念与结构 栈:⼀种特殊的线性表,其只允许在固定的⼀端进行插入和删除元素操作。进行数据插入和删除操作的⼀端称为栈顶,另⼀端称为栈底。栈中的数据元素遵守后进先出 LIFO(Last In First Out)的原则。 压…

Richteck立锜科技电源管理芯片简介及器件选择指南

一、电源管理简介 电源管理组件的选择和应用本身的电源输入和输出条件是高度关联的。 输入电源是交流或直流?需求的输出电压比输入电压高或是低?负载电流多大?系统是否对噪讯非常敏感?也许系统需要的是恒流而不是稳压 (例如 LED…

【产品那些事】固件安全-关于OTA升级包分析

文章目录 前言什么是OTA?升级包(固件)的类型和架构案例tp-link路由器升级包怎么解包分析?binwalk安装及使用ubi_reader安装及使用unsquashfs安装及使用某车企OTA升级包通用Android OTA解包相关分区第二层解包前言 什么是OTA? OTA(Over-the-Air)是一种通过无线通信网络(…

adb查看网卡信息,并修改网卡mac地址

这种方法修改mac后,关机后会失效! 文章结尾有永久修改mac地址的方法! 1. 查看网卡的信息,以及mac地址,ip地址,子网掩码等 //查看所有网卡信息adb shell ifconfig//MAC地址: HWaddr 5e:2c:e9:58:3e:4f //IP地址&a…

小试牛刀-Telebot区块链游戏机器人

目录 1.编写目的 2.实现功能 2.1 Wallet功能 2.2 游戏功能 2.3 提出功能 2.4 辅助功能 3.功能实现详解 3.1 wallet功能 3.2 游戏功能 3.3 提出功能 3.4 辅助功能 4.测试视频 Welcome to Code Blocks blog 本篇文章主要介绍了 [Telebot区块链游戏机器人] ❤博主…

专业PDF编辑工具:Acrobat Pro DC 2024.002.20933绿色版,提升你的工作效率!

软件介绍 Adobe Acrobat Pro DC 2024绿色便携版是一款功能强大的PDF编辑和转换软件,由Adobe公司推出。它是Acrobat XI系列的后续产品,提供了全新的用户界面和增强功能。用户可以借助这款软件将纸质文件转换为可编辑的电子文件,便于传输、签署…

Python项目打包与依赖管理指南

在Python开发中,python文件需要在安装有python解释器的计算机的电脑上才能运行,但是在工作时,我们需要给客户介绍演示项目功能时并不一定可以条件安装解释器,而且这样做非常不方便。这时候我们可以打包项目,用于给客户…

数据结构课程设计:源代码(C)客房信息管理系统

main.c #include <unistd.h> #include "SeqList.h" #include "User.h"int main() {SL user;SLInit(&user);char ans 0;printf("是否需要导入昨日续住客人的数据&#xff1a;y/n\n");scanf(" %c", &ans);if (ans y){L…

vscode使用及调试方式和技巧

常用快捷键 ctrl ~ 显示隐藏终端面板 Ctrl\ 快速拆分文件编辑 Alt ↑↓ 移动当前代码行的位置 CtrlD 选中当前匹配项 CtrlB 切换侧边栏 alt 单机左键 或 长按鼠标滚轮鼠标左键下拉 添加多处光标 Ctrlp 快捷键设置 vscode调试 2022年了&#xff0c;该学会用VSC…