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. 5种语言混合编程:C++、JS、python、Lisp、汇编

    /* 混合C++.JS.python.Lisp.汇编 1种语言,5种语法 */ main { //C++ vector<int> v; v.push(2); putsl(v.size()) ...

  2. m_Orchestrate learning system---十九、局部变量和块变量是什么

    m_Orchestrate learning system---十九.局部变量和块变量是什么 一.总结 一句话总结:下面的global的使用情况可以很好的解释这个问题 这是在一个函数里面,只不过里面有 ...

  3. POJ 1944 并查集(模拟)

    思路: 肯定是要枚举断点的..就看枚举完断点以后怎么处理了-- 1.用类似并查集的思想- f[x]=max(f[x],y)表示x和y相连(一定要注意取max,,,血的教训) 复杂度O(np) 2.猥琐 ...

  4. Kettle的四大不同环境工具

    不多说,直接上干货! kettle里有不同工具,分别用于ETL的不同阶段. 初学者,建议送Spoon开始.高手,是四大工具都会用. Sqoop: 图形界面工具,快速设计和维护复杂的ETL工作流.集成开 ...

  5. 洛谷P1339 [USACO09OCT]热浪Heat Wave(最短路)

    题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...

  6. 14:Challenge 7(map大法好)

    总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列,有M次操作,每次操作是以下两种之一: (1)修改数列中的一个数 (2)求 ...

  7. hadoop 编译自己的jar包并运行

    我修从网上找了份java代码 我为了让它在hadoop下跑起来居然花了两个多小时... 首先最好不要在java代码中设置package...使用default package即可... 然后在java ...

  8. Rx = Observables + LINQ + Schedulers

    The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using ...

  9. 关于JavaScript中this的指向,你知晓几分?请速来围观!

    ---恢复内容开始--- 一.this是什么东东? this是指包含它的函数作为方法被调用时所属的对象.这句话理解起来跟卵一样看不懂,但是如果你把它拆分开来变成这三句话后就好理解一点了. 1.包含它的 ...

  10. oracle和mysql的分页

    如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的 ...