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)的更多相关文章

  1. PostgreSQL Replication之第六章 监控您的设置(1)

    在本书的前几章,您已经学习了各种复制以及如何配额制各种类型的场景.现在是时候通过增加监控来让您的设置更加可靠了. 在本章中,您将学习监控什么以及如恶化实施合理的监控车辆.您将学习: • 检查您的 XL ...

  2. PostgreSQL Replication之第六章 监控您的设置(2)

    6.2 检查pg_stat_replication 检查归档以及 archive_command主要用于即时恢复( PITR,Point-In-Time- Recovery).如果您想监控一个基于流的 ...

  3. PostgreSQL Replication之第六章 监控您的设置(3)

    6.3 检查操作系统进程 一旦我们检查了归档以及我们的系统视图,我们就准备检查系统 进程.检查系统进程可能看起来有点粗糙,但它被证明非常有效. 在master上,我们可以简单地检查一个名为wal_se ...

  4. PostgreSQL Replication之第四章 设置异步复制(1)

    执行完您的第一个即时恢复(PITR,Point-In-Time-Recovery),我们准备在一个真正的复制设置上工作.在本章,您将学会如何设置异步复制和流.我们的目标是确保您可以实现更高的高可用和更 ...

  5. PostgreSQL Replication之第十三章 使用PL/Proxy扩展(3)

    13.3 聪明地扩展与处理集群 建立集群不是您面临的唯一任务.如果所有的事情都做完了并且系统已经运行了,您可能需要到处调整配置. 13.3.1 添加和移动分区 一旦一个集群启动并运行,您可能会发现您的 ...

  6. PostgreSQL Replication之第五章 设置同步复制(3)

    5.3 冗余和停止复制 谈到同步复制,有一个现象一定不能被遗漏.想象一下,我们有一个同步复制的双节点集群.如果slave故障会发生什么?答案是master不能容易地区分慢slave和故障slave,因 ...

  7. PostgreSQL Replication之第四章 设置异步复制(4)

    4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ...

  8. PostgreSQL Replication之第四章 设置异步复制(2)

    4.2 配置级联复制 正如您在本章已经看到的,设置流复制真的很容易.只需要设置几个参数,做一个基础备份,并享受您的复制设置. 在许多情况下,这种情况更有一点点微妙.在这个例子中我们假设:我们要使用一个 ...

  9. PostgreSQL Replication之第三章 理解即时恢复(4)

    3.4 重放事务日志 一旦我们创建了一个我们自己的初始基础备份,我们可以收集数据库创建的XLOG.当时间到时,我们可以使用所有这些XLOG 文件并执行我们所期望的恢复进程.这就像本节描述的一样工作. ...

随机推荐

  1. 实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)

    之前说过了关于vector的insert()方法,把vector B的元素插入到vector A中.vector A中的结果我们可想而知,可是vector B中的元素还会怎样? 看看之前写过的程序: ...

  2. Kali linux 2016.2(Rolling)中的Exploits模块详解

    简单来将,这个Exploits模块,就是针对不同的已知漏洞的利用程序. root@kali:~# msfconsole Unable to handle kernel NULL pointer der ...

  3. c语言中,常见数据类型的字节数

    一直记不住这个,特意mark下来 和机器字长及编译器有关系: 所以,int,long int,short int的宽度都可能随编译器而异.但有几条铁定的原则(ANSI/ISO制订的):  1 size ...

  4. 关于zabbix 的lld的web界面的配置

    lld脚本在配置文件中例子: UserParameter=lldisk,/bin/bash /script/lldisk.sh disk_count 1.监控项 2.监控项原型

  5. vue v-if的使用

    代码部分 <el-row> <el-col :span="20"> <template v-for="(node,i) of hierarc ...

  6. redis中的事务、lua脚本和管道的使用场景

    参考文章 : https://blog.csdn.net/fangjian1204/article/details/50585080

  7. ES6学习笔记(二十二)ArrayBuffer

    ArrayBuffer ArrayBuffer对象.TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口.它们都是以数组的语法处理二进制数据,所以统称为二进 ...

  8. SP687 REPEATS - Repeats(后缀数组)

    一个初步的想法是我们枚举重复子串的长度\(L\).然后跑一遍SA.然后我们枚举一个点\(i\),令他的对应点为\(i+L\),然后求出这两个点的LCP和LCS的长度答案就是这个点的答案就是\((len ...

  9. ActiveMQ客户端配置使用

    一.通过JNDI来使用ActiveMQ 1.jndi配置JMS对象 java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQIni ...

  10. suse 11 sp4 bond 网卡 mode0模式

    开启网卡: ifocnfig eth1 up 点亮网卡ethtool eth1 db2:~ # cat /etc/sysconfig/network/ifcfg-bond0 DEVICE='bond0 ...