Start Using PagerDuty Today
Try PagerDuty free for 14 days — no credit card required.
Sensu is an open source monitoring framework for servers, services, application health, and business KPIs. Sensu was designed from the ground up to monitor systems in the cloud, such as AWS EC2 instances, and to discover systems rather than have them specified in your configuration beforehand.
This guide will walk you through the process of integrating Sensu Core with PagerDuty. If you have any trouble completing the integration please contact us.
Note: The steps in this guide are for Sensu Core, the free version of Sensu. The Enterprise version features a built-in PagerDuty integration which is officially supported by Heavy Water, so we recommend following the steps in our
Sensu Enterprise Integration Guide if you are using Sensu Enterprise.
If you haven’t already, we highly recommend switching to Python 3 to use this integration. At this time, CentOS 5 is not supported by the Sensu Core integration.
If you are creating a new service for your integration, click +Add New Service.
If you are adding your integration to an existing service, click the name of the service you want to add the integration to. Then click the Integrations tab and click the +New Integration button.
If you are creating a new service for your integration, in General Settings, enter a Name for your new service. Then, in Incident Settings, specify the Escalation Policy, Notification Urgency, and Incident Behavior for your new service.
This guide was written and tested on Ubuntu 16.04 and Amazon Linux 2016.09, with Sensu 0.20.2-1 and 0.26.5-2. Paths may be different for other operating systems or Sensu versions. Note that all commands provided are intended to be run as the root
user.
wget -O /etc/sensu/conf.d/pagerduty_handler.json https://raw.githubusercontent.com/PagerDuty/pdagent-integrations/master/conf.d/sensu_pagerduty_handler.json
/etc/sensu/conf.d/pagerduty_handler.json
{
"handlers": {
"pagerduty": {
"type": "pipe",
"command": "/usr/share/pdagent-integrations/bin/pd-sensu -k YOUR-INTEGRATION-KEY-HERE"
}
}
}
pagerduty
to the set of handlers:
/etc/sensu/conf.d/default_handler.json
{
"handlers": {
"default": {
"type": "set",
"handlers": [
"pagerduty"
]
}
}
}
If you do not want PagerDuty to be a default handler, meaning you only want alerts from specifically defined checks to be sent to PagerDuty, open the configuration file for each check you want to send alerts to PagerDuty and add pagerduty
to the check’s handlers:
/etc/sensu/conf.d/YOUR-CHECK.json { "checks": { "YOUR-CHECK-NAME": { "command": "YOUR-CHECK-COMMAND", "subscribers": [ "YOUR-SUBSCRIBERS" ], "interval": YOUR-INTERVAL, "handlers": ["default", "pagerduty"] } } }
service sensu-server restart; service sensu-client restart
/etc/sensu/conf.d/check_cron.json { "checks": { "cron": { "command": "/etc/sensu/plugins/check-process.rb -p cron", "subscribers": [ "test" ], "interval": 60, "handlers": "default" } } }
If you did not make PagerDuty a default handler, you’ll need to specify pagerduty
as a in handlers
like this:
"handlers": ["default", "pagerduty"]
service sensu-server restart
service cron stop
Yes. You can do this by creating multiple handlers, as follows:
/etc/sensu/conf.d/YOUR-CHECK.json { "checks": { "YOUR-CHECK-NAME": { "command": "YOUR-CHECK-COMMAND", "subscribers": [ "YOUR-SUBSCRIBERS" ], "interval": YOUR-INTERVAL, "handlers": ["default", "pagerduty1"] } } }
Try PagerDuty free for 14 days — no credit card required.