Monitor Your Sites and Servers
Central to Simon is the Monitor window. It enables you to see at a glance the current status of all of your monitored websites, servers, and applications. In addition to a colorful status icon and up-time percentage, the tests table displays how long ago the last change and failure occurred, and when the next check will occur. But that's not all. This window also displays further statistics about the tests, and tables listing recent checks (including the check duration and a bar chart), changes (including the text that changed), failures (including the error description), and notifications (that can occur for changes, failures, and recoveries).
Because sometimes you don't want to have another window cluttering up your screen, you can hide the Monitor window if you wish, and/or use the handy Dock or Status menus. The Dock menu includes quick access to Simon's windows, and some global functions. The Status menu includes all that plus displays all of your tests, complete with status icons, details via help tag, and the option to perform a favorite action or display a sub-menu of quick-access operations for each test, so you can visit the site or other tasks without even having Simon visible.
So how do you tell Simon what to monitor? That's where the New/Edit Test window comes in. This window has lots of options to help you configure each test, but like Get Info in the Finder, you can collapse sections you're not interested in. The window allows you to specify how often to check the test (when the previous check was successful or failed), choose which service to use and enter the URL or whatever other information it needs, and specify any needed username and password. You can also indicate which notifiers to use for changes, failures, and recoveries of this test.
The Web (HTTP) service is one of the most popular, for monitoring normal web pages (as opposed to other things like MySQL databases, network volumes, or local Applications). The Setup Assistant makes it easy to mass import bookmarks from web browsers, picking and choosing which to import. Also, you can simply drag a URL from a browser or other application to the Monitor window to add it as a new test.
But what about websites that have banners or other irrelevant content? Won't that confuse Simon into thinking the page has changed? Nope! Simon has a very useful feature called Smart Change Detection, where you can tell it what part of the page to look for, e.g. a comment count on a blog, or the lead headline area on a news site. It even works for Port tests, so you can use it to detect a change when the number of messages in your mailbox changes.
Simon automatically detects when you don't have a network connection, and waits for it to return. But sometimes you know that a server will be unavailable, perhaps during a periodic reboot or regular maintenance. Or you simply don't want to know about changes at certain times, e.g. of a blog when you should be working. You can tell Simon not to check the test at that time: specify any number of automatic pauses, whether a time range every day, weekdays, or a specific day.
To make it easier to find text for the Smart Change Detection feature, or just to quickly view the site without leaving Simon, Preview and Source windows are available. The Preview window includes both the HTML source and rendered content of the page, while the Source window includes the server headers and HTML source. You can also easily view the sites in your preferred web browser. Preview is also available for non-web services, to see what is checked and what is output by the server.
At Your Service
Several services come built-in. Services tell Simon how to check a test. They include, among others:
- Application: Make sure an application is present, and optionally running — can re-launch if not via Launch notifier.
- DNS and Specific DNS: Query a domain name server to ensure the domain is visible.
- FTP: Look at a file on an FTP server, to detect its availability or changes.
- FTP Directory Listing: Watch a directory listing on an FTP server, to detect added, changed, or deleted files.
- Incoming Mail (IMAP): Communicate with an IMAP mail server, to make sure it is available, and/or look for new messages.
- Incoming Mail (POP): Another kind of mail server (plus a SSL-enabled edition is also available).
- Mount: Mount a local, AFP, or SMB volume to ensure it's available.
- MySQL: Connect to a local or remote MySQL database and perform a query to ensure it is working.
- Network Time (NTP): Checks that a network time server is responding.
- Outgoing Mail (SMTP): Outgoing mail usually goes via a SMTP server; make sure it is available (plus a SSL variation).
- Ping: Ping any server to check responsiveness; you can specify timeout and packet loss limits.
- Port Available: Like the Port services, but simply checks if a port is open, without actually communicating on it.
- Samba SMB: Checks that a Samba SMB client is online and responding.
- Screenshot: Takes a screenshot whenever the test is checked. Useful to track activity on the machine.
- SNMP Status: Checks the status of a SNMP-connected device; it's a failure if it is not up.
- System Error Log: Results in a failure if a specified error message occurs in today's system.log.
- SSH: Converse with a remote secure shell session.
- TCP Port Scanner: Checks the status of all TCP ports on a server.
- Web (HTTP): Check a website for changes or failures.
- Twitter: Monitors Twitter updates, direct messages, friends, followers, and more for changes and/or failures.
Usually the built-in services are ample, but what if you want to delve deeper? Sometimes you have a special requirement and want to check some other kind of server. Not a problem! You can customize the services to edit the defaults for the built-in ones, or even add new ones. Similar to the New/Edit Test window, the New/Edit Service window allows you to change the services — and lets you auto-pause a service, affecting all tests that use that service.
Scripts – Prescription for Success
Simon is all about flexibility, but perhaps one of the most powerfully flexible features is the Script service plug-in. It allows you to create your own services via AppleScript, shell script, or Perl, PHP, Python, and other scripting languages.
The Script editor window allows adding a description to display, custom variables to get values from tests that use the new service, selecting the script type, and of course editing the script itself.
You can get new scripts from the Simon Extras page, or if you write one that you're willing to share, you can save it and send it to us to provide for others.
Capture Your Heart's Desire
Services based on the Port service plug-in allow you to connect to any server and engage in a conversation with it, receiving text and sending responses. If the session script is successfully navigated, the check is considered a success, but if the server doesn't respond, or responds incorrectly, a failure is registered.
There are session scripts built-in for several types of servers. But how do you create your own? Simon makes it easy, with the handy Capture Session panel.
You connect to any server on a given port, select the relevant part of incoming text, type commands to continue the session, and the session script is created for you. Simple as that!
Communication is the Best Policy
Okay, so Simon monitors your tests, detecting changes, failures, and recoveries. And it displays this information in the Monitor window, Dock icon, and Status menu. But you're a busy person, and sometimes want important events to really catch your attention. You're in luck: Simon also has a notifiers feature, with several ways of telling you about things you want to know. Each test can use any number of notifiers, with separate notifiers for each type of event. So, for example, you could play a sound and go to the web page when your favorite blog changes, but e-mail a text message to your cellphone when it goes down.
Further, you can share notifiers between multiple tests: set up a notifier once, and use it for as many tests as you like. For additional flexibility, variables allow customizing the notifier with test names, URLs, times, etc.
Available notifiers include:
- Action: Bounce the Dock icon, activate Simon, display in your web browser, and other actions.
- APC Masterswitch: Toggle an outlet on an APC Masterswitch power device.
- Calendar: Add events or tasks to iCal, or events to Google Calendar.
- E-mail: Send an e-mail message to you at work, a friend or client, or your cellphone.
- Growl: Use the popular third-party Growl notification service to display small floating panels on-screen.
- Launch: Start or switch to an application and/or document.
- Mount: Mount or dismount a local, AFP or SMB volume.
- MySQL: Add an entry to a database to log a change or failure.
- Sound: Play a sound; several extras are provided.
- Speech: Simon talks to you!
- Twitter: Send updates or direct messages to yourself or others via the popular Twitter service.
Want to do something else? No problem: you can add custom notifiers by writing an AppleScript, shell script, or Perl, Python etc script. Like the Script service, the Script notifier plug-in allows a virtually infinite range of notification options. You can also create notifiers based on port connection sessions via the Port notifier plug-in.
But as useful as notifiers are, sometimes you don't want to be bothered... perhaps during a meeting, or while you sleep if your computer is within earshot. As with tests, notifiers can be automatically paused for specified time and day ranges.
Your Reporter on the Scene
What if you're using a different computer, and don't want yet more e-mail, or want to see more detail? Simon also offers a reports feature, that outputs multi-page HTML reports that you can view in any web browser.
Simon can automatically save them to your local Personal Web Sharing folder (or any other local folder), or upload them to a remote server, at whatever frequency you like. Click to see a live sample!
The reports use templates to manage layout and content, with several templates built-in, and updates and user-submitted ones available on the Simon Extras page. They aren't limited to HTML, either — there are templates for a RSS feed, tab-delimited text files, and other possibilities... including an iPhone template: click to see it live.