system integrity monitor

System Integrity Monitor – Many of us use online services to monitor web server status, if it goes down, if all services are up and running fine, which send back notification by sms, email or others… Such tools help making server administrator’s life easier, but what about taking an action even before that your service goes down ? To be able to take such actions you will need to be informed in-time about your services status, actual server load, … etc. A solution is System Integrity Monitor (SIM), a system and services monitor for ‘SysVinit’ systems.

SIM is designed to be intuitive and modular in nature, and to provide a clean and informative status system. It does this by consistently verifying that services are online, load averages are in check, and log files are at reasonable sizes. Many other SIM modules sport different and in-depth features to bring a well rounded tool to your disposal to stop otherwise common issues daunting internet hosts.

system integrity monitor

SIM Features include :

  • Service monitoring of HTTP, FTP, DNS, SSH, MYSQL & more
  • Event tracking and alert system
  • Auto restart ability for downed services
  • Checks against network sockets & process list to ensure services are online
  • Advanced HTTP service monitoring, to prevent commonly encountered issues
  • System load monitor with customizable warnings & actions
  • Ability to auto restart system with definable critical load level
  • Priority change configurable for services, at warning or critical load level
  • Informative command line status display
  • Easily customizable configuration file
  • Auto configuration script
  • Auto cronjob setup feature
  • Simple & Informative installation script
  • Integrated auto-update feature

Install System Integrity Monitor :

$wget http://www.rfxn.com/downloads/sim-current.tar.gz
$tar xvfz sim-current.tar.gz
$cd sim*
$sudo ./setup -i

Configuration :

After installation of system integrity monitor, setup will run a configuration script which will guide through features that you would like to enable or disable. The configuration script should be located in /usr/local/sim/autoconf

Most interesting to configure is http, mysql, and server load. You can configure more monitor according to your needs such as FTP, ENSIM, SMTP … etc.

SIM 2.5-4 Auto-Config Script
All questions default to value in brackets if no answer is given. If you
make a typo during the autoconf process, hit CTRL+C (^C) to abort and
rerun the autoconf script (/usr/local/sim/autoconf).
The below are general configuration options for SIM:
press return to continue...
Where is SIM installed ?
[/usr/local/sim]:
Where should the sim.log file be created ?
[/usr/local/sim/sim.log]:
Max size of sim.log before rotated ? (value in KB)
[128]:
What is the location of your kernel log ?
Found kernel log at /var/log/messages
Where should alerts be emailed to ? (e.g: root, user@domain)
[root]:
Disable alert emails after how many events, to avoid email flood ?
(Note: events stats are cleared daily)
[8]:
The below are configuration options for Service modules:
press return to continue...
Auto-restart services found to be offline ? (true=enable, false=disable)
[true]:
Enforce laxed service checking ? (true=enable, false=disable)
[true]:
Disable auto-restart after how many downed service events ?
(Note: events stats are cleared daily)
[10]:
Enable FTP service monitoring ? (true=enable, false=disable)
[false]:
Enable HTTP service monitoring ? (true=enable, false=disable)
[false]:true
Name of the HTTP service as appears in 'ps' ?
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.3/FAQ
Found service name as httpd
TCP/IP port that HTTP operates on ?
Found service port as 80
Path to HTTP service init script ?
Found service init script at /etc/init.d/httpd
Enable DNS service monitoring ? (true=enable, false=disable)
[false]:
Enable SSH service monitoring ? (true=enable, false=disable)
[false]:
Enable MYSQL service monitoring ? (true=enable, false=disable)
[false]:true
Name of the MYSQL service as appears in 'ps' ?
[mysqld]:
TCP/IP port that MYSQL operates on ?
[3306]:
Path to MYSQL service init script ?
Found service init script at /etc/init.d/mysql
Enable SMTP service monitoring ? (true=enable, false=disable)
[false]:
Enable XINET service monitoring ? (true=enable, false=disable)
[false]:
Enable ENSIM service monitoring ? (true=enable, false=disable)
[false]:
Enable NETWORK monitoring ? (true=enable, false=disable)
[false]:true
interface to monitor ?
[eth0]:
Path to NETWORK init script ?
[/etc/init.d/network]:
Enable LOAD monitor ? (true=enable, false=disable)
[false]:true
Load level before status condition 'warning' ?
[25]:
Load level before status condition 'critical' ?
[45]:
Enable a global (wall) message at status condition 'warning' & 'critical' ?
[false]:
Renice services at status condition 'warning' or 'critical' ?
(3 values - warn, crit, false - false=disabled)
[false]:
Stop nonessential services at status condition 'warning' or 'critical' ?
(3 values - warn, crit, false - false=disabled)
[false]:
Reboot system on status condition 'warning' or 'critical' ?
(3 values - warn, crit, false - false=disabled)
[false]:
Configuration completed, saving conf.sim...
Done, conf.sim saved to /usr/local/sim.

And you are done ! You can already have a look at /usr/local/sim/sim.log to see how your services are actually acting.