Turn any signal into insight and action. See how PagerDuty Digital Operations Management Platform integrates machine data and human intelligence to improve visibility and agility across organizations.
Learn how PagerDuty can accelerate your cloud migration.
Check out the latest features we’ve been working on—including event intelligence, machine learning, response automation, on-call, analytics, operations health management, integrations, and more.
Digital Operations Management arms organizations with the insights needed to turn data into opportunity across every operational use case, from DevOps, ITOps, Security, Support, and beyond.
Over 200 Integrations
Discover DevOps best practices with our library of webinars, whitepapers, reports, and much more.
Learn best practices and get support help with resources from our award-winning support team.
See how PagerDuty works with our live product demo — twice a week, every week.
Join live and on-demand webinars for product deep dives, industry trends, configuration training, and use case-specific best practices.
Interactive, simple-to-use API and technical documentation enables users to easily try updates and extend PagerDuty.
Engage with users and PagerDuty experts from our global community of 200k+ users. Become a member, connect, and share insights for success.
Get all your PagerDuty-related questions answered by exploring our in-depth support documentation and community forums.
In part one of this two-part series, I went over focusing on low-effort tasks that produce the highest value and ways to increase leverage in...
PagerDuty helps organizations transform their digital operations. Learn more about PagerDuty's mission and what we do.
Meet our experienced and passionate executive team.
We are risk-taking innovators dedicated to delivering amazing products and delighting customers. Join us and do the best work of your career.
With the PagerDuty Foundation, we are committed to doing our part in giving back to the community.
Zabbix is a very powerful open source enterprise-class network management system designed to monitor the status of network services, servers and other hardware. It’s playing an important role in monitoring IT infrastructure for many organizations.
PagerDuty extends Zabbix’s functionality by providing on-call scheduling, alerts and incidents tracking through the PagerDuty API. PagerDuty notifies you of the most critical Zabbix events so that you are able to take immediate action.
This guide describes how to integrate your Zabbix 1.x or Zabbix 2.x installation with PagerDuty using a Python script. This guide will provide instructions on setting up a script, a media type, a user and an action in Zabbix. You might need to slightly alter these instructions depending on your exact Linux distribution and your Zabbix configuration.
Note: This guide has been replaced by a new Zabbix Integration Guide that uses the PagerDuty Agent. Please try following the steps in the new integration guide first, and use this one only if you have a system which the PagerDuty Agent can not be installed on.
From the Configuration menu, select Services.
On your Services page:
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.
Select your app from the Integration Type menu and enter an Integration Name.
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.
Click the Add Service or Add Integration button to save your new integration. You will be redirected to the Integrations page for your service.
Copy the Integration Key for your new integration:
The PagerDuty plugin for Zabbix requires Python. It will work with Python 2.7.9 and up. However, it may also work on Python 2.5 with the simplejson module and a recent version of OpenSSL installed. If you don’t have Python installed on the machine running Zabbix, please follow the instructions here to install Python.
Download pagerduty.py from GitHub and copy it into Zabbix’s AlertScriptsPath directory. By default, the AlertScriptsPath is set to be /etc/zabbix/alert.d; however, it can be changed. If you don’t know your path, check your zabbix_server.conf file.
cp pagerduty.py /etc/zabbix/alert.d/
Make sure the script is executable by Zabbix:
chmod 755 /etc/zabbix/alert.d/pagerduty.py
Now add a cron job that runs every minute to flush Zabbix events that aren’t yet submitted to PagerDuty. Edit the Zabbix user’s crontab (you may need to adjust this depending on which user runs Zabbix).
sudo crontab -u zabbix -e
Add the following line to the crontab:
* * * * * /etc/zabbix/alert.d/pagerduty.py
Now, let’s add PagerDuty as a media type in Zabbix. Click on the Administration tab.
Click on the Media types tab.
Click on the Create Media Type button.
On the following screen, enter “PagerDuty” for Description.
Select “Script” for Type.
Enter pagerduty.py for Script name.
Click Save to create the PagerDuty media type.
Let’s use this new media type in a user, for the purpose of this guide, let’s create a new user in Zabbix. Note: You can also modify an existing user and add the PagerDuty media to them.
Click on the Administration tab.
Click on the Users tab.
Select “Users” from the drop-down list and click on the Create User button.
Fill in the details of this new user, and call it “PagerDuty User”. The default settings for PagerDuty User should suffice as this user will not be logging into Zabbix.
Click on the Add button at the bottom.
On the pop-up window that follows, select “PagerDuty” for Type.
Paste the Service key from PagerDuty into the text field labeled Send to.
Change the Status to Enabled.
Click the Add button.
Once you are finished with the configuration, make sure to save your changes. For additional reference on how your setup should look, please see the screenshot below:
Go back to Administration > Users. Click on Create Group.
Enter the name for the Group name (e.g. PagerDuty Service).
Select the PagerDuty Service user, then click the << button to add them to this group.
Click on the Add button under Read only to choose which Host Groups will be monitored by PagerDuty.
Select which Host Groups you would like the PagerDuty to have read access to for monitoring, then click the Select button.
Click on Create Group to save your new user group.
Go to Configuration > Actions, and click on Create Action.
Give the action a Name such as PagerDuty Notifications, then set the Default subject to trigger and the Recovery subject to resolve. Nothing else should be part of the subject lines, just the single word trigger or resolve. Delete all of the content in Default message and the Recovery message boxes, then set them both to the following:
Click on New to add a new Action operation.
Change Send message to single user and select the PagerDuty Service. Then click Add.
Save your action.
Congratulations! Your Zabbix should now be integrated with PagerDuty!
You should also configure an external ping check service to monitor your site’s external connectivity. Of course, you can use PagerDuty to forward alerts from these services as well.
This is easy to do with the current integration, all you would need to do is setup multiple actions with separate action conditions and action operations. You would also need to setup a separate user group, user and media. The additional media would use the service key of your additional service and would be of type PagerDuty.
Please check out our Zabbix Troubleshooting Guide for common issues or contact our support team for assistance.
600 Townsend St., #200
San Francisco, CA 94103
260 Queen St W #300,
Toronto, ON M5V 1Z8, Canada
1416 NW 46th St., St. 301
Seattle, WA 98107
5 Martin Place
1 Fore St,
London EC2Y 9DT
© 2009 - 2018