I was troubleshooting an issue at work the other day regarding some PostgreSQL connections that were not closing. They were left IDLE, never closed, and eventually used up all of the possible connections (which totaled 100) configured in the postgresql.conf configuration file. In the process of troubleshooting I noticed a bunch of Postgres log entries that I was unable to immediately pin down to what was causing the entries. Below I describe the view of the idle Postgres connections, the PostgreSQL log entries that were unfamiliar, and the cause of both.
Nagios is an awesome open source application that provides a way to monitor pretty much anything that you can think of on your network. There are tons of plugins written for Nagios that will monitor anything from PostgreSQL database size to the number of users logged into a server. Today I needed to start monitoring the size of a Ruby process that has been growing out of hand so the below is what I came up with being the best solution. Follow the directions below to deploy a Perl script that will use SNMP to retrieve Linux server process size.
I needed to create a bash shell script tonight that called another shell script with options that then would load a Ruby environment and execute certain commands within a Ruby project. I ran into numerous issues but most were silly things such as typos or other minor issues caused by myself. The one issue I had a little trouble figuring out because of the file that was causing the error related to cron not being able to run “/usr/bin/env: ruby”. My bash script worked perfectly from the Linux CLI shell however when attempting to run it I would always get the same error. Below I list details about the error, where I finally located what the error was, and how to resolve the error.