#!/bin/bash # # Plugin to monitor PostgreSQL Database Sizes # # Author: # Guilherme Augusto da Rocha Silva # # Created: # 5th of november 2007 # # Usage: # Place in /etc/munin/plugins/ (or link it there using ln -s) # # Parameters: # config (required) # # General info: # Require permission for database access and read (no writes are processed). # Recommended user is PostgreSQL database owner (default: postgres). # # Log info: # 2007/11/30 - Review on comments # dbserver='localhost' dbuser='postgres' if [ "$1" = "config" ]; then echo 'graph_args --base 1024 --lower-limit 0' echo 'graph_category db' echo 'graph_info Shows each database size on the PostgreSQL Server.' echo 'graph_title PostgreSQL Database Sizes' echo 'graph_vlabel Size (bytes)' psql -h ${dbserver} -U ${dbuser} -tc "SELECT datname FROM pg_database ORDER BY 1;" | while read name do test -z "${name}" && continue echo ${name}'.label '${name} echo ${name}'.type GAUGE' if [ "${name}" == "template0" ]; then echo ${name}'.info PostgreSQL template database.' elif [ "${name}" == "template1" ]; then echo ${name}'.info PostgreSQL and/or user template database.' elif [ "${name}" == "postgres" ]; then echo ${name}'.info User postgres database.' else echo ${name}'.info User defined database.' fi done exit 0 fi psql -h ${dbserver} -U ${dbuser} -tc "SELECT datname, PG_DATABASE_SIZE(oid) FROM pg_database ORDER BY 1;" | while read name sep num do test -z "${name}" && continue echo ${name}'.value '${num} done