Simon icon Simon
Flexible server monitoring
Service Scripts

Dejal Simon supports custom scripts (including AppleScripts, shell scripts, and Perl, PHP, Python, etc) to create new kinds of services (introduced in version 2.2). You can download updated and user-submitted scripts here, or submit your own creations to share with the world via e-mail.

The following are a few basic sample scripts to get things started. The script service feature is very powerful, with endless potential. Please submit your scripts for other Simon users, and they may be bundled with future releases!

Click the script name to download:

File Attributesby David Sinclair; created 2009-03-25
Checks for a change in permissions, owners, size or date of a file or directory contents. Specify the full path of a file or directory. Wildcards can be used to check multiple files at once.
Drive Statusby Scott Haneda; updated 2009-02-18
A script to check drive capacity threshold, S.M.A.R.T. status, and RAID health. Any single failure is a failure to be looked into. This service is not to alert you which of RAID, Capacity, and S.M.A.R.T. failed, but rather, to alwert you to look at your drives and see what is wrong. This is bundled with version 2.5.
S.M.A.R.T. Statusby David Sinclair; updated 2009-02-18
A simpler script to just check the S.M.A.R.T. of available volumes. This is bundled with version 2.5.
Pulseby David Sinclair; updated 2009-02-18
A simple service that always changes. It simply outputs the current date and time, so every time you check it, a change can be detected. Add a notifier to be informed that Simon is still working as expected. If you don't receive a notification, you should check on Simon. This is bundled with version 2.5.
TCP Port Scannerby Rex Sanders; created 2008-01-02
A simple script for checking on all TCP ports on a server. For good security, you want to make certain that the right ports are open and closed. Only checks TCP - nc doesn't scan UDP ports correctly. Because this script takes a long time to run, suggest running infrequently, like daily. Note that this might raise alarms with your ISP and/or get blocked by firewalls and fail consistently, depending on local security policies.
Network Time (NTP)by Rex Sanders; created 2007-11-19
Tests that an NTP server is responding using a custom shell script. Does NOT test if the response makes any sense.
Incoming Mail (POP) via SSLby Rex Sanders; created 2007-11-19
Tests that a POP3/SSL server is responding using a custom shell script. Allow at least 90 seconds for test to fail or succeed.
Outgoing Mail (SMTP) via SSLby Rex Sanders; created 2007-11-19
Tests that an SMTP/SSL server is responding using a custom shell script. Allow at least 90 seconds for test to fail/complete.
Port Availableby Justin Miller; created 2007-11-02
Like the Port services, but simply checks if a specified port is open, without actually communicating on it.
SNMP Statusby David Sinclair; created 2007-09-13
Checks the status of a SNMP-connected device, resulting in a failure if it is not up.
System Log Errorby David Sinclair; created 2006-11-18
Results in a failure if a specified error message occurs in today's system.log.
Samba SMBby David Sinclair; created 2006-11-18
Checks that a Samba SMB client is online and responding.
Web Server Runningby David Sinclair; created 2006-11-18
Checks that the local web server (i.e. Personal Web Sharing) is running.
File is Writableby David Sinclair; created 2006-11-18
Checks if a file exists and is writable.
FTP Directory Listingby David Sinclair; created 2006-11-13
This service script retrieves a directory listing of a FTP site, since the built-in FTP service can only download files.
MySQL Worksby David Sinclair; created 2006-10-17
This simple service script gets the help for MySQL, indicating that it is installed and runs correctly.
Is App Running?by David Sinclair; created 2006-10-16
This service script is provided as a very simple demo of an AppleScript-based script, and simply results in a failure if a specified application isn't currently running.
Recent Restartsby David Sinclair; created 2006-10-16
This shell-based script outputs the recent machine restarts and logins, useful to be notified when the machine restarts (if it automatically launches Simon).
Screenshotby David Sinclair; created 2006-10-16
This shell-based script takes a screenshot whenever the test is checked, saving them to a specified folder. Useful to track activity on the machine.

Notifier Scripts

Simon also supports custom scripts to create new kinds of notifiers (introduced in version 2.3). You can download updated and user-submitted scripts here, or submit your own creations to share with the world via e-mail.

Click the script name to download:

Show & Screenshotby David Sinclair; created 2008-07-03
Opens the page for a web test in the default web browser, waits a few seconds for the page to render, then takes a screenshot of it, so you can record how it looked at the time of the event. This script could be customized to quit the browser after taking the screenshot, or not open the browser (e.g. use a Simon Preview via the Action notifier instead), etc.
Email on Counter Changeby Wade Maxfield; updated 2008-06-06
Parses the results of the test for name/value pairs and then notifies by email if any of the values differ by more than the warningThreshold since the last check. Use a negative number as the warningThreshold if you want to check for values that decrease over time. For use with the MySQL service, and queries like SHOW global status WHERE (variable_name LIKE "Qcache%"). Requires Simon 2.4.1 or newer. See the instructions within the script for more information.
APC Masterswitchby Joe Savelberg; created 2008-01-26
Shell Script for rebooting an outlet on an APC Masterswitch with Network Management Card v2.6.1. It might work with newer versions of the Management card as well. Telnet must be enabled on the Masterswitch. Please make sure to block telnet access to your APC on your firewall so only trusted hosts can connect to the telnet port.
Log Eventby David Sinclair; created 2007-07-07
This is a simple demo script, that logs the event to a "Simon Notifications.log" file in the ~/Library/Logs folder. You need only download this if you used Simon before version 2.3; it is bundled from that version.

Report Templates

Simon uses template folders for the new reports feature (introduced in version 2.1). You can download updated and user-submitted templates here, or submit your own creations to share with the world via e-mail.

RSS Feedby David Sinclair; updated 2008-07-06
Update of the built-in template, to fix a formatting issue with the publication date value.
iPhoneby Joe Savelberg, with improvements by Wade Maxfield; updated 2009-06-30
A report template for displaying reports on the iPhone and iPod touch.
Variable Testby Joe Savelberg; created 2008-01-28
A report template that shows all of the report variables and what they output; useful for tweaking existing reports, or creating new ones (see also the report templates section of the User Guide).
Stylishby David Sinclair; updated 2005-12-06
Update of the built-in template, to add support for centering the tables and highlighting of new changes and failures. You need only download this if you used a beta of Simon 2.1.

Other Goodies

ReallyNoisyby David Sinclair; created 2006-03-06
A user wanted to have a notifier play a loud continuous alarm when there is a failure, so I took the built-in "Noisy" sound and repeated it for about a minute: so using this with the Sound notifier and checking once per minute, the alarm will play until the test recovers.
Directory Listingby David Sinclair; created 2005-12-15
Here's something else that may come in handy; thrown together based on a user request. The user wanted to have Simon monitor their FTP site for new files. This simple PHP-driven page will display a HTML page listing the files in the same directory as it is placed - or it could be edited to look at a different directory. (Note: a better solution is to use the FTP Directory Listing script.)

Custom Service, Notifier & Report Plug-ins

Simon uses a plug-in architecture for its Services, Notifiers and Reports. This allows other developers to create their own plug-ins to check new kinds of services, to implement new kinds of notifiers, or to output reports in new ways.

At present the plug-in APIs are only available to select developers. If you are interested in developing a plug-in for Simon, please contact us for more information.

If you're a developer, you may also like to check out the free Cocoa code available on the Developer pages.