PostgreSQL Replication之第六章 监控您的设置(4)
6.4 处理监控工具
还有几个监控工具可以使您的日常生活更轻松。
其中最流行的监控工具是Nagios。它被广泛地使用,也支持各种软件组件。
要使用 Nagios 来监控您的 PostgreSQL 集群,需要安装一个方面运行复制相关测试的插件。这样的适用于PostgreSQL 的插件可以自由地从 http://bucardo.org/wiki/Check_postgres下载。适用于 Nagios的一个插件Burcardo不仅能够用于测试复制,而且还是一个监控 PostgreSQL 的标准软件组件。
6.4.1 安装check_postgres
一旦您已经从Bucardo的网站下载了插件,安装该软件是很容易的。第一步是提取.tar归档:
tar xvfz check_postgres.tar.gz
现在,您可以进入新创建的目录并运行Perl Makefile:
perl Makefile.PL
最后您可以编译并安装代码:
make
make install
最后一步必须使用root用户来执行,因为不这样的话,您可能没有足够的权限在您的系统上部署代码。
在我们的例子中,二进制文件被安装在/usr/local/bin目录下。我们可以容易地通过运行如下命令来检查是否已经成功地安装了:
/usr/local/bin/check_postgres.pl --help
直接启动 check_postgres.pl 也是在命令行提示符下调用这些插件并检查结果是否有意义的方式。
我们希望您把注意力集中在 custom_query 功能上。如果检查有缺失,缺失的东西是需要的,但是不能用,custom_query会帮助您。
6.4.2 决定监控策略
人们经常会问可Nagios的无数的检查中的哪些检查,他们可以用来配置它的数据库系统。 对我们来说,问题的答案只能是:这要看情况。如果您碰巧运行了一个大型数据库分析,该数据库将只能有少数人使用,检查打开的数据库连接数可能是没有用的。如果您碰巧运行了一个服务于成千上万用户的高性能的 OLTP 系统,检查打开的连接可能是个好注意。
这真的取决于您运行的应用的类型,所以您必须自己思考并得出一个合理的检查想和阀值。从逻辑上讲,这同样也适用于任何其它您能潜在地想起的监控软件。这些规则都是一样的:想想您的应用程序在做什么,考虑一下可能出错的事情。基于这些信息,您可以选择适当的检查。所有可用的检查列表可以在http://bucardo.org/check_postgres/check_postgres.pl.html找到。
6.5 总结
在本章中,您学习了许多关于监控的知识。我们看到了在归档中检查什么,我们已经看到如何解释PostgreSQL内部系统视图。最后,我们看到了在操作系统级别检查哪些进程。
在一般情况下,推荐使用专业的监控软件如Zabbix,Nagios和其它的能够自动运行测试和自动发出通知的软件。
所有这些检查将为您的数据库设置提供一个相当不错的安全网。
下一章专门讲高可用性。将为您介绍高可用性相关的重要概念,我们将引导您完成这些基础知识。
PostgreSQL Replication之第六章 监控您的设置(4)的更多相关文章
- PostgreSQL Replication之第六章 监控您的设置(1)
在本书的前几章,您已经学习了各种复制以及如何配额制各种类型的场景.现在是时候通过增加监控来让您的设置更加可靠了. 在本章中,您将学习监控什么以及如恶化实施合理的监控车辆.您将学习: • 检查您的 XL ...
- PostgreSQL Replication之第六章 监控您的设置(2)
6.2 检查pg_stat_replication 检查归档以及 archive_command主要用于即时恢复( PITR,Point-In-Time- Recovery).如果您想监控一个基于流的 ...
- PostgreSQL Replication之第六章 监控您的设置(3)
6.3 检查操作系统进程 一旦我们检查了归档以及我们的系统视图,我们就准备检查系统 进程.检查系统进程可能看起来有点粗糙,但它被证明非常有效. 在master上,我们可以简单地检查一个名为wal_se ...
- PostgreSQL Replication之第四章 设置异步复制(1)
执行完您的第一个即时恢复(PITR,Point-In-Time-Recovery),我们准备在一个真正的复制设置上工作.在本章,您将学会如何设置异步复制和流.我们的目标是确保您可以实现更高的高可用和更 ...
- PostgreSQL Replication之第十三章 使用PL/Proxy扩展(3)
13.3 聪明地扩展与处理集群 建立集群不是您面临的唯一任务.如果所有的事情都做完了并且系统已经运行了,您可能需要到处调整配置. 13.3.1 添加和移动分区 一旦一个集群启动并运行,您可能会发现您的 ...
- PostgreSQL Replication之第五章 设置同步复制(3)
5.3 冗余和停止复制 谈到同步复制,有一个现象一定不能被遗漏.想象一下,我们有一个同步复制的双节点集群.如果slave故障会发生什么?答案是master不能容易地区分慢slave和故障slave,因 ...
- PostgreSQL Replication之第四章 设置异步复制(4)
4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ...
- PostgreSQL Replication之第四章 设置异步复制(2)
4.2 配置级联复制 正如您在本章已经看到的,设置流复制真的很容易.只需要设置几个参数,做一个基础备份,并享受您的复制设置. 在许多情况下,这种情况更有一点点微妙.在这个例子中我们假设:我们要使用一个 ...
- PostgreSQL Replication之第三章 理解即时恢复(4)
3.4 重放事务日志 一旦我们创建了一个我们自己的初始基础备份,我们可以收集数据库创建的XLOG.当时间到时,我们可以使用所有这些XLOG 文件并执行我们所期望的恢复进程.这就像本节描述的一样工作. ...
随机推荐
- mybatis学习笔记(7)-输出映射
mybatis学习笔记(7)-输出映射 标签: mybatis mybatis学习笔记7-输出映射 resultType 输出简单类型 输出pojo对象和pojo列表 resultMap result ...
- 安卓更新Toast流程图
今天照着书写了个程序为了理解更深刻特意画了一个流程图分享给大家 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc29uZ2p1bnlhbg==/font/5 ...
- lscript.ld 链接器脚本
sumary选项卡 lscript.ld是这个应用程序的链接器脚本. 这是实用的作为一个报告 看看内存是针相应用程序. 它也能够被编辑以改变应用程序的位置.双击Hello_Zynqàsrcà lscr ...
- the process android.process.acore has stopped或the process com.phone。。。。
模拟器一启动 The process android.process.acore has stopped unexpectedly 今天不知道怎么回事,模拟器一启动就狂报错, 模拟器已经重新安装过了, ...
- 火狐访问IIS出现404,而Chrome可以正常访问
需要在web.config中的handlers中添加如下节点,保存之后,需要重启电脑. <remove name="ExtensionlessUrlHandler-Integrated ...
- 前后端分离跨域 关于前后端分离开发环境下的跨域访问问题(angular proxy=>nginx )
前后端分离后遇到了跨域访问的问题: angular1中使用proxy很麻烦,最后还是失败结束:最后总结3种方法如下: 本人使用的第一种方法,只是开发环境下使用很方便! 1:禁掉谷歌的安全策略(Turn ...
- jsp页面String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";作用!!!!!
转自:https://blog.csdn.net/kiwangruikyo/article/details/81130311 <%String path = request.getContext ...
- 获取xml字符串中的属性值
pagexml = @"<?xml version='1.0' encoding='utf-8'?> <DATAPACKET Version='2.0'> <M ...
- vmware workstation中的NAT配置
宿主机:win10: IP:192.168.1.101 GW:192.168.1.1 以太网2(VMNET8) IP:192.168.100.1 GW:nonevmware中的虚拟网络设置(NAT): ...
- Swift 闭包中 self? 的由来
class UIViewSpringAnimator: SwipeAnimator { // 动画完成的闭包 var completion:((Bool) ->Void)? func addCo ...