About Rhybudd - Zenoss on your Android Device
Rhybudd is designed for SysAdmins, DevOps engineers and anyone else whose Android device receives notifications from Zenoss or requires quick and easy access to the Zenoss Events console remotely.
Version 4.0 will soon be available as a free download from the Android market and includes features such as;
- ZenPack powered instant Notifications via Google Cloud Messaging
- Filter events by Device name, Event summary, Production state and severities
- Device Load, CPU and Memory graphs displayed on 'View Device Screen'
- Rapid event management (Acknowledge All, Swipe to Close)
- Event escalation and sharing
- NFC tagging of servers for quick access
- Event log management
- Local caching of events and infrastructure for quick access
- Events polling from as often as every 30 seconds up to an hour
- Support for self signed SSL
- Support for HTTP basic auth on top of Zenoss authentication
- Full Core 4.x and ZaaS support
- Google Cloud backups
- Written by one of the Operations guys at DataSift.com - where it is used as our first line of alerting for on-call
Support, feature requests and feedback encouraged; @NetworkString or Gareth@NetworksAreMadeOfString.co.uk
 Getting Started
Install the app from Google Play and then click on 'Open' or find the app in your launcher.
If you're installing Rhybudd for the first time you'll be presented with the following screen where you will need to add your Zenoss URL (including the http or https and any custom port you are using (that includes specifying 8080)) or ZaaS name and your credentials.
If the settings validate you Rhybudd will then create a local cache of devices and the current events, once done it will launch into the app itself.
Pressing the Home button (also referred to as the Drawer menu) will provide access to the additional settings, Infrastructure, Search, Diagnostics, Rhybudd Push management etc.
 Managing Events
The core purpose of Rhybudd is to alert you to new Events and then enabling you to manage them.
By default Rhybudd will poll for new Production level Critical, Error and Warning events every minute and raise an Android notification to alert you to this. Clicking the notification will launch the app allowing you to manage you alerts. In version 4.0 the Notification also presents an Acknowledge All action to quickly allow you to handle the event and get on with your work.
Images embedded in Zenoss event summaries are now rendered in the 'View Event Screen'. If those images are behind HTTP basic auth you can configure those credentials in the "Supplementary HTTP Auth" section of the settings.
 Phone Interface
A single tap on an event will launch a dialog that prompts you to either Acknowledge the event, view more details about the event or do nothing.
Performing a 'Long Press' on an event allows you to select multiple events to perform common actions such as mass acknowledgment or escalating those events to a colleague via SMS or email.
The easiest and quickest way to acknowledge alerts however is through the use of the Acknowledge All button available on the Action Bar and in an Alert notification.
 Tablet Interface
One of the many tablet optimizations can be found in the Events list where a single touch will display an additional area detailing the event allowing you to acknowledge if you so wish.
 Managing Devices
 Viewing your Infrastructure
Rhybudd also enables you to view the health of the devices in your infrastructure at the press of a finger. The initial view will show a list of all devices and their current event counts by severity. By default this information is cached locally and updated in the background every 30 minutes.
As with the phone interface, long pressing on an event will select the event. This allows for bulk operations such as escalation / acknowledgement.
 Adding a new Device
To add a new device to your Zenoss infrastructure simply tap the Drawer icon (Home Button), select Infrastructure, once the infrastructure activity has opened look for the familiar Add Device icon from Zenoss, tap this icon and the Add Device activity will launch.
 Customizing Settings
Version 4.0 of Rhybudd has a variety of settings to help you customise your use of the app to your style of Event management. Allowing options such as persistent notification sounds to wake you up, customisable filtering for event and production classes right the way through to disabling features entirely.
 Event Filtering
Filtering is supported by Rhybudd to reduce the scope of alerts.
You can specify Criticality levels (Critical, Error, Warning, Info and Debug), Alerts from production only devices, the ability to hide acknowledged alerts and by specifying Device and Summary filtering.
Rhybudd passes your search string directly to Zenoss without client side validation to ensure changes to the server side are automatically supported.
 Audio Alerting
Even if all events are displayed in the events list you can configure the alerting element to only raise a notification and an audio alert only for production devices.
Enable or disable Audio notifications, set the notification sound and even enable insistent audio for those heavy sleepers! Rhybudd will use your default notification sound if one is not specified.
Rhybudd also features two widgets to help you monitor the health of your platform at a glance without having to be alerted to each new event.
You can choose either a simple 2x1 cell event count widget or a 2x2 bar graph.
The 2x1 cell event count widget can also be displayed on your lock screen.
 Sticky Notifications
Rhybudd uses the notifications bar for two reasons the first is a sticky notification that informs you that the background poller is running and the last time it check Zenoss for new alerts (a popular request for the nervous on-call guys out there!) and the secondary notification is when Rhybudd detects a new alert.
 Alert Notifications
New alert notifications can vibrate and will issue a notification sound of your choosing. The heavy sleepers out there can enable insistent Rhybudd alerts which will loop the sound until the Notification bar is swiped.
A new alert notification will include as much information as it can impart in the area given, on Jellybean this will the total number of alerts and some extracts (device name and partial summary) of the most critical events.
Clicking on the notification will launch Rhybudd allowing you to delve into the details or Acknowledge the event.
 Instant Notification Delivery via ZenPack with Rhybudd Push
Rhybudd Push is the premium feature of 4.0. Using a ZenPack installed on your server event notifications can be dispatched to an unlimited number of Android devices running Rhybudd that'll receive said notification within milliseconds (usually ~500ms) allowing your to be alerted to problems almost instantly.
No more polling. No more delays. And no more costs; Rhybudd push is free.
Simply follow the instructions below and start cutting costs and reduce your organisations mean time to resolution.
 ZenPack Configuration
Once the ZenPack is ready it will be available in the ZenPack directory, simply download and install it as you would any other ZenPack.
Once your phones are configured it will work immediately. By default however Rhybudd Push will use the ColdStart.io SSL Push Delivery system to proxy alerts to your phone. This is so you don't have to create your own Google API account and set up GCM. This does mean that some of your alert details (specifically the summary and title) would be visible to the author of Rhybudd.
I understand that this may not be acceptable to everyones use case.
To ensure that your data only travels between your Zenoss instance, Google's GCM infrastructure and your phone simply follow the instructions from Google ( http://developer.android.com/google/gcm/gs.html ) to get a GCM Sender ID and a GCM API Key.
Navigate to your Zenoss server, authenticate as a ZenManager, goto Advanced and then choose "Rhybudd Push" from the left hand menu.
Enter the GCM API key and Sender ID in the fields and Rhybudd Push will recognise you have your own GCM ID and use your credentials instead therefore bypassing the ColdStart.io systems.
 Notification Configuration
- Navigate to Events -> Triggers page.
- Click on the Notifications menu item.
- Click on the plus sign ('+') to add a new notification.
- From the dialog box, specify the name of the notification and select the Send Alert to Rhybudd action.
- Enable the notification and add a trigger to be associated with this action.
- Follow steps 1 - 4 of Basic Configuration
- Click on the Contents tab.Input a "Filter Key"
- Click on the Submit button.
 Phone Configuration
- Load up the app
- Tap the Home / Drawer menu icon
- Choose Configure Rhybudd Push
- Confirm all tests pass
- Toggle the Enable switch as required
By default all Notifications configured to Rhybudd push are broadcast to all phones.
If you want to create filters for specific users follow the steps below;
- Follow steps 1 - 5 from Basic Operation
- Add the Filter from Step 2 of the Configuring Filters part of Notification Configuration above.
- Tap back or the Home button.
Sometimes you may want to escalate an event or share the details with a colleague. Usually this would require some copy / pasting or simply referring to the Zenoss events console in your communication.
However with Rhybudd you can simply select the events you wish to escalate by performing a long press then click the Escalate / Share button whereupon you will be prompted to select any application that can accept plain-text input (Email, SMS, GTalk etc) and all the relevant information will automatically be added to your message.
Rhybudd also features the limited ability to manage your Infrastructure such as searching for devices and viewing device details.
It can be found from the main Drawer menu or if your device has a physical search button.
There are a lot of versions of Zenoss in use and some have quite convoluted configurations which can cause issues with Rhybudd. To try and help identify where issues are Rhybudd 4.0 has a diagnostic mode which should help identify common areas of trouble (bad URLs, bad passwords, no JSON data returned etc). The Diagnostic mode is available from the main drawer menu.
 Android DayDream
Daydream is a new feature that enables your Android device to display useful and delightful information when idle or docked.
Usual use cases include a clock, photo gallery or news ticker. Rhybudd has a day dream mode where it will slowly fade between a series of Load graphs from devices in your infrastructure.
 Regular Synchronisation
Rhybudd maintains a local copy of certain elements of the Zenoss database such as device state, production state, event counts and other such meta data to ensure that you can load the app up quickly without having to query Zenoss each time.
It also aids in speeding up internal resolution of device state so Notification settings such as Only Alert for Production devices don't have to query the Zenoss server for each incoming notification!
Keeping the local cache fresh is a balance between battery efficiency and the need for up to date information. In version 3 Rhybudd would schedule a refresh every 60 - 90 minutes regardless of battery state, radio state or whether any other apps were using the radio at the time. This was not very efficient.
Using the Android Synchronisation framework Rhybudd will now only schedule an update every 24 hours (unless manually invoked) and will only perform a refresh when there is an optimal time to do it, such as when the device is charging or if another app or system process has already woken up the radio.
The end result for you is fresh local data without a drain on your battery or data bill.
Near Field Communication (NFC) is a set of short-range wireless technologies, typically requiring a distance of 4cm or less to initiate a connection.
NFC allows you to share small payloads of data between an NFC tag and an Android-powered device, or between two Android-powered devices.
 NFC Tags
Rhybudd now allows you to write a servers URI to an NFC tag and then at a later date any Android device with Rhybudd installed can tap that tag and Rhybudd will load the device view as if you had navigated to that particular device normally.
This allows you to quickly and easily see the device graphs and other data without having to search or scroll for it.
 Android Beam
Android Beam is a method of passing data between two devices when they are in close proximity.
On the Rhybudd Push settings screen tap two Android devices together (the NFC antennas are usually on the back) to share a Filter key (see here for more information on configuring Rhybudd push).
When viewing a particular device you can use Android Beam to send the meta details over to another device so save your colleague having to load the app and scroll through to the device in question if you have noticed something odd and don't want them to put their grubby fingerprints on your device!
The new version of Rhybudd (4.0) requires several permissions in order to work, the reasons for these permissions are explained below.
 AUTHENTICATE ACCOUNTS
Allows an application to act as an AccountAuthenticator for the AccountManager
New in 4.0 Needed to securely store your Zenoss details for the Regular Synchronisation
 GET ACCOUNTS
Allows access to the list of accounts in the Accounts Service
New in 4.0 Needed to securely query as to whether your Zenoss details are already stored for the Regular Synchronisation
 READ SYNC SETTINGS
Allows applications to read the sync settings
Needed to query as to whether a synchronisation can be done.
This is to ensure minimal battery drain as the app will only invoke the radio antenna when it is most convenient to do so e.g. other apps are using the radio or the device is on charge.
Allows applications to write the sync settings
New in 4.0 This permission enables the app to add synchronisation schedules to the phone assuming all checks out with the checks detailed in the previous 3 permissions.
Synchronisation ensures that you have a local copy of systems meta data (Devices, production states etc) available for processing of alerts / loading up from the database to prevent having to query Zenoss each time the app loads.
Allows applications to open network sockets.
The Internet permissions enables the app to open network sockets so it can communicate with Zenoss over HTTP(s)
Allows applications to perform I/O operations over NFC
Allows access to the vibrator
The vibrate permission is required so that Notifications can also vibrate in case you are in a quite or loud environment and cannot hear the notification sound.
 WAKE LOCK
Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming
New in 4.0 The app sometimes needs to wake the device up from low power mode (e.g. if a synchronisation hasn't happened for more than 48 hours) or in order to receive an inbound push notification.
Rhybudd is free to download from Google Play and does not contain any ads or tracking software. It does however make use of BugSense for error reporting.
Neither Rhybudd nor its author gather any data about you, your events, your devices or your Zenoss server outside of the information gathered normally by Google Play or possibly in stacktraces sent to BugSense.
Rhybudd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
The source code is available on GitHub here: https://github.com/NetworksAreMadeOfString/Rhybudd