Software

What's inside the WeatherGoose box: Web, Telnet, Mail, FTP, SNMP

Software in the WeatherGoose Family

All IT Watchdogs devices share a common code base collectively called the the "Firmware." Over 90% of the code in each device is identical - TCP/IP services, web servers, SNMP servers, e-mail servers, and protocols for communicating with attached remote sensors.

All devices support these common and standard communications protocols and data formats:

This chapter describes how the devices support each of these protocols.

Features of the embedded firmware.

Standard Web Interface: HTTP/HTTPS

A standard web browser affords the most common mechanism for both accessing data and configuring the device.

Main Web Page

The main web page displays real-time data values and units of measurement for all internal and external sensors. Each sensor component has its own auto-scaling graph showing past sensor values. The graphs also make trends easy to pick out - if temperature or humidity is slowly rising or if airflow seems to be dropping. The real-time data and graphs refresh automatically every 60 seconds, or you can refresh by just refreshing the web page.

If video cameras are attached, those are also displayed on the main page. Images refresh automatically every 10 seconds. Images are simple JPEG's; you do not need to install any software or allow any client-side code to execute to view these images. Click the image to pull up the camera's web page, although this will typically require you to install client-side code to view live-action images and otherwise configure and use features of the camera. These options depend on the camera you purchased and are described elsewhere.

When you unplug or attach a new remote sensor the screen will update in 5-15 seconds. Sensor types are detected automatically so there is never any required configuration. Your device will begin to report real-time data and graph immediately.

Real-time and historical data displays. Camera image lets you observe activity in the server room.

Logs Web Page

The "Logs" web page allows you to further access historical log data and build custom graphs. The single graph on this page is larger than those on the main page, and input controls let you select the time range and specific sensor values to display. For example, you could use this to compare temperatures across all your attached devices over the past 14 days.

You can also download raw data values to your local computer in comma-separated value (CSV) format. This can be opened directly in Excel, imported into a database, or parsed from a script. All attached sensors are included in the log. If a sensor wasn't attached for the entire duration, "0" values are used to indicate this in log output. Warning: Log data can take a long time to download from the unit - sometimes even 15-30 minutes if you have a lot of data; be patient!

Because an embedded computer has limited memory, we have to start dropping old log data as new data comes in. Although the amount of memory used for logging is fixed, you can control how often logging occurs and thereby control how far back in time the device will keep data. This affects both graph data and downloadable logging data.

The web interface lets you control how often logging occurs and lets you delete all current log data. An on-screen message will tell you how many hours/days/weeks of data you can accumulate. This formula depends on how often you log (more frequently means more data which means less total time saved) and how many remote sensors are connected (more sensors means more logging data which means less total time saved).

Build graphs with custom data and time series. Download log data to database of spreadsheet.

Display Web Page

The "Display" page lets you customize display options affecting not only the web interface but also data in other protocols.

The internal sensors and all attached devices can be given a custom name. For example, the internal sensors might be titled "Room 203, Cabinet 13." A remote temperature sensor might be titled "Top of cabinet" or "Behind blade servers." These labels appear everywhere in the web interface and also in e-mail alerts and network monitoring consoles so it's easy to what sensor you're looking at.

All sensors also have unique-in-the-world 64-bit identifiers also displayed in all protocols and web pages. This is especially useful for scripts and other automated systems where you want to depend on the device and not on the human-readable (and changeable!) name given to that device. Even if a device is unplugged and plugged in later, the unique ID is preserved along with all custom titles and alarms.

Custom names can also be given to the 3 analog IO ports.

You can also control units of measurement for display such as Fahrenheit/Celsius for temperature.

Use "Friendly Names" to keep track of your sensors and where they are located.

Alarms Web Page

Any sensor on any internal or external device can be separately configured. The page displays the current real-time sensor value and lets the administrator set too-low and too-high threshold values and which action to take if the value passes the threshold.

Actions include sending emails, sending SNMP traps, sounding the internal or external buzzer (for devices that have a buzzer), or any combination of these actions.

Alarms are sent when a threshold is crossed ("tripped") and will send "all clear" when the sensor returns back over the threshold. A potential problem with this is getting a flood of alarms when a value vacillates over a threshold without being firmly on one side or another. In this case, our algorithm will send the "tripped" alarm but will not send "clear" until the value is firmly and consistently within the acceptable threshold.

From this web page you can also send test alarms. Any sensor on any attached device and any possible alarm ("tripped" or "clear") and any action (email, trip, buzzer) can be select for simulation.

Also displayed on this page is a log of internal device activity and errors. This is mainly useful when something is going wrong (e.g. you're not receiving emails) and you're trying to diagnose the problem. This is also useful for our own tech support because often we can read things in the logs that a customer might not see.

Set alarm thresholds. Get alerted by email, SNMP, trap, or audible buzzer. Use the form at the bottom of the page to test alarms.

Configuration Web Page

The "Configuration" web page allows the administrator to configure many aspects of device behavior.

For network settings, the device can be configured with a hard-coded IP address, network mask, and gateway, or the device can get an address automatically through DHCP or BOOTP.

The telnet and SNMP servers can be independently disabled.

The HTTP or HTTPS server can be disabled (but not both). The port numbers for HTTP and HTTPS can be changed (the defaults are 80 for HTTP and 443 for HTTPS).

If an NTP time server is available you can configure this in the device and it will keep time automatically. This is especially useful for logging and alerts because the device can use proper time-stamps. The NTP servers can be configured by the administrator; by default these are set to public US military time servers.

Email alarm settings can be configured as well: SMTP server, the "From" email address, and up to five other email addresses can be set. If you need more than five addresses, create an email list in your email server and name the list when you configure our device.

Some email servers require POP3 authentication before SMTP can be used. For those cases you can configure the POP3 server, username, and password to be used.

Up to four SNMP trap target IP addresses can be configured for alarm traps.

The web server can be configured with up to two different access accounts. By default anyone can access any web page. If you configure a "read-only" user account, all web site users are required to log in before seeing any web page. If you configure an "administrator" account, users of the "Display," "Alarms," and "Configuration" pages must log in with that username and password.

If only "administrator" is set, the "Main" and "Logs" pages will not require passwords but the other pages will.

Finally, you can set administrative properties for the device including device location and main contact name, phone number, and email address. This information is displayed in various places including the footer of all web pages.

Set static or dynamic IP address and port numbers.

Internal event logger helps identify and correct configuration errors.

Three password levels allow you to control unit access.

PDA Web Access

The "PDA" page makes it easy to view real-time data and video content from a portable device. This web page is specially designed to be viewed on a narrow screen - fonts are small, data is displayed vertically, and the header and footer are compressed. The screen will always be viewable as small as 240 pixels wide.

(Left) PDA format is easily readable on screens as narrow as 240 px. (Right) WAP format is specially designed for web-enabled cellular phones.

Cell Phone (WAP) Web Page

The "WAP" page makes it easy to view real-time data from a WAP-enabled cell phone. WAP is a web protocol designed for extremely compressed data displays such as a standard cell phone.

XML Data

Almost all device data is available in XML format for scripts, consoles, and other automated devices.

Data includes device-specific information (IP address, serial number, MAC address, location, tech support contact data), alarms (all settings, which have been tripped), sensors (all devices, all sensors with ranges, units of measurement, and current values), attached video devices, and internal logging data.

XML data is machine-readable by consoles, scripts and MS Excel&trade.

General Web Server Characteristics

An important requirement for our web server is that it "plays nice" with firewalls, proxy servers, strict client-side scripting rules, and other security devices used to prevent malicious attack. All our web pages use standard HTML, CSS, and static images, so it passes through all security measures. We use no Active X, Java Applets, or any other client-side executable objects. We do use JavaScript, but if your browser disables it we will still function properly.

We actively test support for IE (v5.x, v6.x), FireFox (v1.x), and Opera. We also test our web pages for compliance with W3C standards for HTML 4.0 and CSS 1.0.

All our web content is available using either normal HTTP or HTTPS (HTTP over SSL) for encryption and authentication. The administrator can disable either protocol.

Our web server can withstand denial of service attacks. If the server is flooded with requests it will stop responding to new requests for a few seconds until the attack subsides, at which time the server will start responding normally again. An attacker could therefore "shut down" the web server using a flood attack, but an attacker cannot use this technique to permanently disable the unit. This is similar to the behavior of Apache and IIS (although it happens faster because we have much less memory available in the embedded environment).

Our web server can also withstand various data-type attacks: malformed queries, buffer overflows, etc. We have tested this internally both with custom attacks as well as standard script-based attacks available on the Internet. Our customers have also used various techniques to test our server. If our server detects any type of incorrect query it will immediately shut down the request and prepare to accept a new request.

Secure HTTP: HTTPS = HTTP + SSL

For secure, encrypted, authenticated access to the web site we support HTTPS, also known as HTTP/SSL or HTTP/TLS.

You access the secure web site by typing "https://" instead of "http://" in your browser address bar. You'll be prompted once to accept our certificate. Most browsers indicate secure access with a picture of a key in the bottom-right corner of the browser window.

The "certificate" is a mechanism for a web server to identify itself to browsers. We have our own certificate; other companies will have other ones. Because your browser doesn't automatically trust our certificate, it prompts you when you enter the device page for whether you want to trust this source. If you want to disable that dialog, configure your browser to trust our certificate (usually you can do this in the prompting dialog, but this depends on your browser and browser security settings).

Management Consoles - SNMP

All our devices support SNMP - the standard for monitoring internet-enabled devices.

We support all SNMP v1.0 commands including GET, WALK, and TRAP. We support the SNMP data formats described in RFC's 1902, 1903, and 1904. We also have our own data located in the IT Watchdogs enterprise section of the OID tree.

Without any special configuration you should be able to walk all our device values. This includes standard data such as vendor information, uptime, and network configuration as well as IT Watchdogs information such as friendly names and real-time sensor values.

Most SNMP consoles allow you to load a MIB - The definition of the data provided by an SNMP device. Loading the MIB gives you human-readable labels for each piece of data, data types for the data (e.g. integer in the range 0..100), and human-readable help-text for each piece of data. MIB's also contain definitions for all the traps the device can send proactively to the management console.

The MIB for each device is available in a ZIP file downloadable from the device's web page. The technique for loading the MIB is different for every management console. The MIB contains information that will let your console automatically detect when it is viewing an IT Watchdogs device and will automatically show you the MIB-supplied data.

Our MIB contains definitions both for the data values and the traps that are sent by the alarms system. Each possible alarm has two trap definitions - one for "tripped" and one for "clear." This is defined clearly in the MIB itself.

Our SNMP traps not only define the required values (OID causing the trap, IP address of the device sending the trap), but also defines optional user-defined fields. In these fields we put the device and sensor friendly names, the value of the sensor when it was tripped/cleared, and other information. You can safely ignore these values, and management systems that don't support this will ignore this data.

You can test our SNMP traps in your console using the "Test alarms" feature in the "Alarms" web page.

Our SNMP and MIB implementations have been tested against many SNMP-enabled systems including What's Up Gold, HP OpenView, libsnmp, MRTG, and a variety of packet-sniffers.

Email Alerts - SMTP, POP3

Both "tripped" and "cleared" alerts can be configured for any attached sensor. See the "Alerts Page" section above for details on alarm configuration and "Configuration Page" above for details on how to configure your SMTP and POP3 servers.

Some email servers (e.g. Microsoft Exchange) don't support SMTP by default. For those systems you will need to configure your server to accept SMTP connections, or at least accept those connections originated from your IT Watchdogs devices.

Some email servers require POP3 authentication before SMTP can be used. For those cases you can configure the POP3 server, username, and password to be used. The device will make the POP3 connection prior to the SMTP connection and will log and error if this cannot be done or if the POP3 server reports an error.

When using the POP3 method, some email servers get confused if you use the same "from" email address in the IT Watchdogs device as you do a normal email client. You should configure a special "from" email address just for IT Watchdogs device alarms to avoid this problem.

Video

All our devices support these web cameras:

Each camera has various features on its own. In our devices we support loading the static image for the web pages and sending those images to the IT Watchdogs Console.

All cameras provide real-time motion through downloadable client software, but this software is not required to view the images through our devices or through our Console.

Upgrades

IT Watchdogs makes all firmware upgrades available for free for all customers. We're constantly adding features (and fixing bugs).

You can always download the latest firmware from our web site:

http://itwatchdogs.com/downloads.shtml

Version history is at the bottom of that page so you can see what you're getting.

Firmware is distributed as a ZIP file of about 500k. Inside the file is an "installer" Windows application. Double-click the application (or run from the command-line) and you will be prompted to select the IP address of the device you wish to update. After ensuring the displayed configuration is correct, the application will upload the new firmware for you by sending the new firmware image over FTP.

The application will alert you to any errors and can recover automatically from certain kinds of errors

The ZIP file contains additional files such as installation instructions, our SNMP MIB, and product errata.