Go to the Centreon Community website

A while back, we discussed the benefits of connecting PagerDuty and Centreon. Many of you wanted to learn more on this configuration, to get optimal results. So here they are, our best tips for you to happily connect PagerDuty with your favorite monitoring solution.    

Before we dive in, two important things to remember

1. What is PagerDuty?

PagerDuty  is an incident management software. It is shipped with basic features such as acknowledging and closing alerts.

The SaaS platform lets you compile alerts from many different systems thanks to over 375 connectors which integrate with your other services and tools, including Centreon. The PagerDuty platform is AI-enabled for greater automation and predictability. 

2. What is a Stream Connector

A Stream Connector sends monitoring data to any external tool that can receive data. As each tool serves its own purpose, data needs to come in a dedicated format. This is the function of a Stream Connector, formatting and transmitting data, including metrics and events.

What’s the point of connecting Centreon to PagerDuty?

Centreon provides a dedicated Stream Connector that sends alerts to PagerDuty. Monitoring alerts become incidents in PagerDuty.

Now that we’ve refreshed you on the basics, we can move on to the central question: Why would you want to connect Centreon to PagerDuty? (Aside from bragging rights, that is.)

Connecting those tools brings three distinct advantages. 

  1. Enrich alerts with reliable and exhaustive data

Because Centreon enables holistic visibility over the IT estate, you can integrate reliable and exhaustive data.

  1. Frictionless integration

Our stream connector makes implementation a breeze so there’s no wasted time in exchanging data.

  1. Agility and scalability

Integrating Centreon with PagerDuty promotes the agility and scalability of your IT monitoring system and helps bridge IT and business visibility needs.

The Stream Connector  is a central element to issue monitoring events. Monitoring alerts then become incidents within PagerDuty.

Configuring PagerDuty: Configure a service for incidents

1. Go in the Services → Service directory menu

2. Add a new service (or use an existing one)

3. Follow  the  Name, Assign and Alert Grouping steps and configure them according to your needs

4. During the  integration step, select the Centreon integration

5. When done, do not forget to retrieve your integration key. It will be used by the stream connector to communicate with PagerDuty

Configure Centreon

Stream connector installation

1. Connect to your Centreon central server through SSH with a root user

2. Install the needed dependencies
yum install -y lua-curl epel-release make gcc

3. Install the lua packet manager called luarocks
yum install luarocks

4. Install the needed lua modules
luarocks install centreon-stream-connectors-lib
luarocks install luatz

5. Download the Stream Connector
wget -O /usr/share/centreon-broker/lua/pagerduty-events-apiv2.lua https://raw.githubusercontent.com/centreon/centreon-stream-connector-scripts/master/centreon-certified/pagerduty/pagerduty-events-apiv2.lua

6. Configure the right permissions
chmod 644 /usr/share/centreon-broker/lua/pagerduty-events-apiv2.lua

Stream connector configuration

1. Connect to the web interface with an admin account

2. Go in the Configuration > Pollers and select Broker Configuration

3. Click on the central-broker-master broker configuration

4. Go in the Output tab

5. Add a new Generic- Stream connector output

6. Give it a name

7. Set up the stream connector path /usr/share/centreon-broker/lua/pagerduty-events-apiv2.lua

8. Add a new string parameter called pdy_routing_key with the integration key as a value 

9. Add a new string parameter called pdy_centreon_url with the address of your Centreon central server as a value

10. Save your configuration

11. Go in the Configuration > Pollers menu and select Pollers

12. Select the Central poller

13. Click the Export configuration button

14. Tick the 4 first checkboxes

15. Click the Export button

Your Centreon is now ready to send alerts to PagerDuty

Alerts journey from Centreon to PagerDuty

The beginning: Centreon

Now that everything is set up, let’s get a closer look at an alert journey. Below, our host Blog-server is monitored by Centreon. An alert is up on the Info service.

Transmission : the Stream Connector

By increasing the logging verbosity level of the Stream Connector logs, we get the following informations:

INFO: [EventQueue:send_data]: Going to send the following json {"dedup_key":"20_H","payload":{"component":"Blog-server","group":"technical-content","summary":"Blog-server: CRITICAL: Cooling fluid leak detected","class":"service","severity":"High","timestamp":"2021-10-07T12:36:23.000","custom_details":{"Hostgroups":"technical-content"},"source":"Blog-server"},"event_action":"trigger","client":"Centreon Stream Connector","routing_key":"XXXXXXXXXXXXXXX","links":[{"href":"http://10.25.11.14/centreon/main.php?p=20202&o=hd&host_name=Blog-server","text":"Link to Centreon host summary"}]}

In its standard working level, we notice that the Stream Connector creates a dedicated JSON for PagerDuty. Then the JSON file is sent to PagerDuty.

The end: PagerDuty

On the PagerDuty side, we can observe our alerts.

More details are available when clicking on the incident, such as the incident timeline as seen by PagerDuty.

An incident will be automatically resolved in PagerDuty when the corresponding service will turn into an OK state in Centreon, thanks to the Stream Connector.

Here is the timeline as seen by Centreon.

Learn more

The Stream Connector offers numerous options to customize which alerts to send to PagerDuty and how this will get done. You will find every possible information in the dedicated documentation.