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. You can download updated and user-submitted scripts here, or submit your own creations to share with the world via email.

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:

Website Certificateby David Sinclair; created 2020-02-24
A one-line script-based service to get information about the SSL certificates of a website. You could use a filter (e.g. Block) to look for changes to the "Verify return code" line to detect an expired certificate.
Reverse DNSby John DeMillion; created 2013-02-06
Enter the IP address for which to do a reverse DNS lookup (dig -x). If an "ANSWER SECTION" is found in the output, then the result is a Success, otherwise Failure.
Incoming Mail (POP) via SSLby Koichi Matsumoto; created 2011-02-18
An alternative implementation of the built-in "Incoming Mail (POP) via SSL" service, written in Python. Checks that an POP3/SSL server is responding.
Incoming Mail (IMAP) via SSLby Koichi Matsumoto; created 2011-02-18
An alternative implementation of the built-in "Incoming Mail (IMAP) via SSL" service, written in Python. Checks that an IMAP/SSL server is responding.
Outgoing Mail (SMTP) via SSLby Koichi Matsumoto; created 2011-02-18
An alternative implementation of the built-in "Outgoing Mail (SMTP) via SSL" service, written in Python. Checks that an SMTP/SSL server is responding.
Quit & Relaunch Simonby David Sinclair; created 2010-06-17
This includes two components: an AppleScript-based application that quits Simon, waits a few seconds, then re-launches it, plus a service script to launch that application. So by adding a test to check a service based on that script say once a day or so, you can have Simon quit and re-launch itself at whatever frequency you desire. Useful for a few heavy Simon users who are finding Simon becoming unresponsive over time (most people don't need this).
Simon Start Detectionby bdperk; created 2010-03-06
This will calculate the elapsed runtime for the Simon.app process. If the application has been recently started or restarted an appropriate notification can be sent. (See this thread in the Simon Forum for more information.)
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.

Filter Scripts

Simon also supports custom scripts to create new kinds of filters. You can download updated and user-submitted scripts here, or submit your own creations to share with the world via email.

Click the script name to download:

There aren't any customer-contributed filter scripts yet. Share yours to be the first!

Notifier Scripts

Simon also supports custom scripts to create new kinds of notifiers. You can download updated and user-submitted scripts here, or submit your own creations to share with the world via email.

Click the script name to download:

iMessageby Chris Copleston; created 2019-09-16
This script sends a notification via iMessage to a recipient. It is a good free alternative to SMS services as long as the recipient has an iDevice and you already have a conversation with them in the Messages app..
SMS via Plivoby Carlos Leal; created 2015-04-18
As an alternative to sending a SMS message via email or Clickatell, this script uses the Plivo service.
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 reports feature. You can download updated and user-submitted templates here, or submit your own creations to share with the world via email.

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

Add Multiple Testsby Ian Crew; created 2012-10-17
A customer wanted to add 50 or so tests with a certain configuration; while you can add Web (HTTP) tests via the Setup Assistant, he wanted a more specific setup. He wrote this perl script to add the tests, by creating text to paste into the Tests.simon data file (an XML property list). Definitely an expert operation, but provided here for others who want to try it.

Note that (a) it only generates the snippet of the Tests.simon file for each test, not the complete file (you have to copy-and-paste the results in), and (b) the notifier to use for the test is hard-coded in. You will need to customize the script to suit your requirements.
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.

Dejal can (and has) also provide custom plug-in development as contract work. See the Dejal consulting page for more information.

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