Notification Transports

Contacts

Editing contacts is currently only available to administrators via Main Menu -> Contacts

Default#

By default Observium will attempt to email alerts to the sysContact retrieved from the device via SNMP. If a default email contact has been configured in the configuration, this will be used for all devices instead.

A manually configured blanket default can be configured by adding the following to config.php:

$config['email']['default']      = "netops@acmeinternet.org";
$config['email']['default_only'] = TRUE;

Where a contact has been associated to an Alert Check or Syslog Rule, this will be used instead of the default or sysContact entries.

Clickatell#

Clickatell is an SMS gateway service. The Clickatell notification transport requires a username and password to authenticate along with an API ID from Clickatell. You also need both a recipient and sender telephone number.

E-Mail#

The E-mail notification transport requires only an email field and uses the email settings configured in the config.php.

We recommend using a local MTA on the Observium server itself rather than using SMTP.

Hipchat#

Hipchat is the enterprise messaging platform from Atlassian. Observium sends messages to Hipchat using the Room API.

In order to find a Room Token and Room ID, go to the "Rooms" tab of the Hipchat instance web interface. The Room ID is the name of the room. You can create a Room Token by selecting the Room, going to the "Tokens" side tab and creating a new Token with "Send Notification" permissions.

The optional "URL" parameter allows you to direct notifications to a locally hosted Hipchat instance

Messagebird#

Messagebird is an SMS delivery platform. It facilitates delivery of text notifications to mobile phones.

To send notifications via Messagebird you need an API access key from Messagebird along with your originator number and a recipient telephone number.

Pagerduty#

Pagerduty is a specialist alert management service. Pagerduty has specific support for Observium and maintains their own documentation here.

Pagerduty integration only requires an Integration Key which can be obtained by adding an Observium Integration following the instructions on the Pagerduty site above.

Once configured Pagerduty will keep track of alert incidents, including recovery.

Pushover#

Red Oxygen#

Script#

Observium can export alert and recovery events via a simple external script interface. Variables are exported via environment variables.

Some variables are only available for specific alert sources.

Environment Variable Description Example
OBSERVIUM_ALERT_STATE Notified State ALERT RECOVER SYSLOG
OBSERVIUM_ALERT_URL URL to Alert Entry
OBSERVIUM_ALERT_ID alert_id 2839
OBSERVIUM_ALERT_MESSAGE Configured alert message Configuration Changed
OBSERVIUM_CONDITIONS Checker conditions or Syslog rule ifInOctets_perc ge 85
OBSERVIUM_METRICS Checked metrics or Syslog message device_status = 0
OBSERVIUM_SYSLOG_RULE Syslog rule Syslog Only /SYS-5-CONFIG_I/
OBSERVIUM_SYSLOG_MESSAGE Syslog message Syslog Only Configured from console by derp on vty0 (95.21.0.21)
OBSERVIUM_SYSLOG_PROGRAM Syslog program Syslog Only SYS-5-CONFIG_I
OBSERVIUM_TIMESTAMP Alert timestamp 2016-08-08 17:22:44
OBSERVIUM_ENTITY_LINK Link to entity page Not Syslog
OBSERVIUM_ENTITY_NAME Entity name Not Syslog eth0
OBSERVIUM_ENTITY_TYPE Entity type Not Syslog port
OBSERVIUM_ENTITY_DESCRIPTION Entity description (ifAlias, etc) Not Syslog Transit: Level 3
OBSERVIUM_DEVICE_HOSTNAME Device hostname test.observium.org
OBSERVIUM_DEVICE_LINK Link to device page
OBSERVIUM_DEVICE_HARDWARE Device "hardware" field CISCO7676-S
OBSERVIUM_DEVICE_OS Device "OS" field Cisco IOS 15.3(3)S4 ADVIPSERVICESK9
OBSERVIUM_DEVICE_LOCATION Device location London, UK
OBSERVIUM_DEVICE_UPTIME Device uptime 245 days, 3h 33m 6s
OBSERVIUM_TITLE Email subject / SMS alert format SYSLOG: [test.observium.org] Configuration changed
OBSERVIUM_DURATION Alert duration 2m 25s (2016-08-08 17:22:44)

Slack#

Slack is an enterprise group chat platform. Observium uses the Slack webhooks API to send notifications.

To use Slack integration you need to obtain a Webhook URL from Slack by creating an incoming webhook integration. You also need to set a Channel Name and a Username for your Observium messages.

SMS Box#

Telegram#

Telegram is a messaging application available for many platforms including iOS, Android, Windows, MacOS and Linux. To use it as a notification transport you need a Telegram account, Telegram Bot and (optional) Group, where this Bot and Account have been added.

Steps to create a Telegram Bot and enable notifications:

  1. Register your Telegram account (if you don't already have one)

  2. Create Telegram Bot (if you don't already have one). For this you should talk to BotFather and follow the steps described here.

    • Open chat with BotFather
    • Request a new Bot via command /newbot, you will be requested for choose name and username for Bot. The bot username is required below for adding it to Group and for requesting the Chat identificator.
    • At the end you will receive a token to access the API, ie 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw. This token is required to send notifications, see below.
  3. (Skip this step if a Group is not required) Create a New Group from the Telegram Application

    • Add Bot created above to this new Group, and set the Group name to whatever you like. Remember this Group name!
    • Send message /start into this Group from your account on any Telegram app
  4. Now you need to find the numeric Chat identifier (since there are some issues with named identifiers)

    • If you not use a Group, send the message /start to the Bot created above https://telegram.me/<BotUserName> (replace <BotUserName> with the Bot Username)
    • Do a request from command line or with a browser to this url https://api.telegram.org/bot<BotToken>/getUpdates?offset=0 (replace <BotToken> with the Bot Token from step 2), for example curl "https://api.telegram.org/bot110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw/getUpdates?offset=0"; echo
    • You will receive JSON encoded string with a list of the last message ids, where can see the chat ids, for example:
 {"ok":true,"result":\[{"update_id":382866198,
 "message":{"message_id":2,"from":{"id":123456784,"first_name":"Mike","last_name":"Stupalov","username":"stupalov"},"chat":{"id":123456784,"first_name":"Mike","last_name":"Stupalov","username":"stupalov","type":"private"},"date":1459367993,"text":"\/start start"}},{"update_id":382866199,
 "message":{"message_id":3,"from":{"id":123456784,"first_name":"Mike","last_name":"Stupalov","username":"stupalov"},"chat":{"id":-487654321,"title":"TestGroup","type":"group"},"date":1459368048,"text":"\/start"}}]}
  • Find the string with "chat":{"id":123456784 for a private user with chat id 123456784 ("type":"private") or "chat":{"id":-487654321 - for a group with chat id -487654321 ("type":"group", group id always negative)
  • store this Chat Identifier!
  • Now you have Bot Token (ie 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw) and Chat Identifier (ie -487654321), which can be added to the appropriate contact fields.

VictorOps#

VictorOps is a specialist alert management service. Observium integrates with VictorOps via its REST Endpoint API.

To use VictorOps integration you need a REST Endpoint URL, which can be obtained from the VictorOps web interface. Follow the steps in the image below to obtain the REST Endpoint URL. The URL will appear in the box labelled Post URL.

Once you have a REST Endpoint URL, you can create a VictorOps contact. By default notifications will be routed to everyone.

Observium supports both failure and recovery notifications and sends entity and alert checker information to VictorOps. An example alert and recovery notification is shown below.

Web Hook#

XMPP#