Load monitoring with FAMstat

I worked for a number of years as a FreeBSD system administrator, but I never found a load monitoring tool that could do exactly what I wanted which was monitoring, alerting, and history on these eight parameters:

  • IPv4 TCP unaccepted connections
  • IPV4 TCP incomplete connections
  • Apache httpd process count
  • Apache httpd process memory usage
  • Apache httpd total process memory usage
  • MariaDB thread count
  • MariaDB slow queries count
  • MariaDB queries per second count

Of course, that left me with a grand opportunity to write my own tool.

FreeBSD, Apache, MariaDB status and statistics (FAMstat) is a webserver monitoring tool that focuses on tuning and troubleshooting system performance rather than visitor profiling and hit counting.
It harvests performance data in an SQLite3 database which it monitors to alert the system administrator of load issues. The data are also graphed on a webpage.

The famstat.ini file configures the tool.

The famstat-harvest script monitors the system and stores its findings.

The famstat-monitor script alerts the system administrator when necessary.

The famstat.php script displays the data history in the form of eight graphs with 30 columns for each hour in the day. All columns show the current (red) ceiling and the historical (blue) ceiling.
The current ceiling is what’s currently configured in famstat.ini, and the historical ceiling is whatever the current ceiling was at the time of data collection. If the historical ceiling is not visible, it’s because it’s identical to and covered by the current ceiling.

FAMstat served me well for years, and as far as I know it’s still serving my successor well. It can serve you too, because I released it under the MIT license. You can download FAMstat from https://github.com/kbernholm/famstat