Nagios plugin to check PostgreSql Streaming Replication
Find a file
2015-04-27 16:24:36 +02:00
.gitignore Initial commit 2012-03-14 16:04:14 +01:00
check_pg_streaming_replication Manage options 2015-04-27 16:24:21 +02:00
README Add README file 2015-04-27 16:24:36 +02:00

Nagios plugin to check Postgres Streaming replication
=====================================================

This script could be used as Nagios check plugin to verify Postgres Streaming
replication state.

This script :

- check if Postgres is running (CRITICAL raise if not)
- check if Postgres is in recovery mode :
  - if Postgres is in recovery mode :
    - retreive from Postgres the last xlog file receive and the xlog file replay
    - check if Postgres recovery configuration file is NOT present (CRITICAL
      raise if present)
    - retreive master connection informations from Postgres recovery configuration
      file (UNKNOWN raise on error). Default Postgres master TCP port will be used
      if port is not specify.
    - retreive  current xlog file from Postgres master server (UNKNOWN raise on error).
    - check if the last receive xlog file is the last replay xlog file (WARNING raise if not)
    - Return OK state
- if Postgres is not in recovery mode :
  - check if Postgres recovery configuration file is present (CRITICAL raise if present)
  - check if stand-by client(s) is connected (WARNING raise if not)
  - Return OK state with list and count of stand-by client(s)

Requirements
------------

 * On master node :

     Slaves node must be able to connect with user PG_USER to database postgres as trust.

 * On standby node :

     PG_USER must be able to connect localy as trust

Usage
-----

    Usage : ./check_pg_streaming_replication [-h] [-d] [options]
	-u pg_user		Specify Postgres user (Default : postgres)
	-b psql_bin		Specify psql binary path (Default : /usr/bin/psql)
	-m pg_main		Specify Postgres main directory path
				(Default : /var/lib/postgresql/9.1/main)
	-r recovery_conf	Specify Postgres recovery configuration file path
				(Default : /var/lib/postgresql/9.1/main/recovery.conf)
	-p pg_port		Specify default Postgres master TCP port (Default : 5432)
	-d			Debug mode
	-h 			Show this message

Copyright
---------

Copyright (c) 2013 Benjamin Renard 

License
-------

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.