Pagerduty徽标

Nagios集成指南

Pagerduty + Nagios核心整合利益

  • 根据从Nagios Core发送的警报通知通话响应者。
  • 根据Nagios Core Event Poreload的事件的严重性,创建高和低紧迫性事件。
  • 当Pagerduty和Nagios Core更新时,事件和升级都在同步。

这个怎么运作

  • 当Nagios Core为主机或服务创建警报通知时,它将将事件发送到相应服务在Pagerduty。此事件将触发有关相关Pagerduty服务的新事件,或小组作为警报进入现有事件。
  • 当Pagerduty确认事件时,确认将传递给相关服务或Nagios的主机。两种系统都将反映出问题的最新状态。
  • 当为Nagios Core中的主机或服务生成恢复消息时,Resolve事件将发送到PagerDuty服务以解决该警报,并在该服务上进行关联的事件。

要求

Pagerduty集万博pc版下载成需要一个经理基础角色或更高的帐户授权。如果您没有这个角色,请与组织内的管理员或帐户所有者联系以配置集成。

集成演练

在Pagerduty

Nagios Core可以通过两种方式与Pagerduty集成:通过全球事件路由或直接通过Pagerduty服务的集成。

与全球事件路由集成

与全球事件路由集成使您可以根据Nagios Core的事件有效载荷将事件路由到特定服务。如果您想了解更多信息,请访问我们的文章全球事件路由

1.从自动化菜单,选择事件规则

2.选择默认全局规则集或者创建一个新的

3.单击您要使用的规则集的名称,然后单击旁边的箭头传入事件来源显示集成密钥信息。复制您的集成密钥并将其保持在安全的地方以供以后使用。完成Nagios Core中的集成设置后,您将返回此接口,以指定如何将事件从Nagios Core路由Pagerduty中的服务路由。

笔记:如果您的团队已经集成了全球事件路由,您可以通过在现有配置文件中检查PagerDuty事件规则集成密钥(在上面的步骤3中找到)来验证。然后,您可以通过为您的服务编写新的全球事件规则,将现有的集成和Nagios核心事件使用到您的服务中。

现在,您可以进入本指南的Nagios核心部分。

与Pagerduty服务集成

如果您不需要根据事件有效载荷将警报从Nagios Core将警报从Nagios Core路由到不同的响应者,则可以直接与PagerDuty服务集成。你仍然可以使用服务级事件规则执行诸如抑制非可行警报和调整严重性之类的动作。

1.从服务菜单,选择服务目录

2。如果您将集成添加到现有服务,单击要添加集成的服务名称。然后选择万博pc版下载集成选项卡然后单击添加新的集成

如果您正在为您的集成创建新服务,请在部分中阅读我们的文档配置服务和集成万博pc版下载并按照概述的步骤创建新服务部分。

3。集成类型菜单。

4。点击添加服务或者添加集成保存您的新集成。您将被重定向到服务的“集成”选项卡。万博pc版下载

5.在列表中找到您的集成,然后单击右侧。一个集成密钥将在此屏幕上生成。将此键保存在安全的地方,因为当您在下一节中配置与Nagios Core的集成时,将使用它。

在Nagios核心中

如果您过去已经集成了Nagios Core,现在想与其他服务集成,请跳过步骤3。

本指南包括通过从现成软件包安装的Nagios Core的步骤apt-get(总部位于Debian,即Ubuntu)和百胜(基于RHEL,即CentOS,Fedora)Linux软件包管理器以及已从源安装Nagios Core的系统(“源安装”)。您无需执行本指南中的所有命令,而只需要用于系统类型的命令。请注意,所有提供的命令均旨在运行用户。

1.安装Pagerduty代理。代理从Nagios Core接收事件,并将其发送到Pagerduty,使用队列提供有助于解决任何问题的日志记录,并在有任何连接故障(即您的Nagios Core Server暂时丢失连接性)时自动检索发送事件。笔记:如果您还没有,我们强烈建议您切换到Python 3使用Pagerduty代理。该代理不会在CentOS 5或更低的情况下运行,因为它需要比CentOS 5的版本更新版本的Python。基于PERL的Nagios Core集成在较旧的操作系统上。

2.下载pagerduty_nagios.cfg来自Github:

WGET https://raw.githubusercontent.com/pagerduty/pdagent-万博pc版下载integrations/master/pagerduty_nagios.cfg

3。打开pagerduty_nagios.cfg在文本编辑器中。

4。输入集成密钥(在上面的pagerduty部分中生成)寻呼机场地。如果您想一次将Nagios Core与多个Pagerduty服务集成,则可以使用全局事件路由(上面的Pagerduty部分中的说明),也可以阅读有关我们的文章直接与多个Pagerduty服务集成

5。将Nagios Core配置文件移至位。对于基于Debian的系统,这通常是/etc/nagios3/conf.d

mv pagerduty_nagios.cfg /etc/nagios3/conf.d

对于基于RHEL的系统,这通常是/etc/nagios

mv pagerduty_nagios.cfg /etc /nagios

对于源安装,将文件移至/usr/local/nagios/etc/对象

mv pagerduty_nagios.cfg /usr /当地的/nagios/etc/对象

6。如果您使用的是基于Debian的发行版,则跳过此步骤。如果您使用的是基于RHEL的发行版,则需要编辑Nagios Core Config以加载Pagerduty配置。为此,打开/etc/nagios/nagios.cfg并将此行添加到文件:

cfg_file =/etc/nagios/pagerduty_nagios.cfg

如果使用源安装,请将此行添加到主配置文件/USR/local/nagios/etc/nagios.cfg

cfg_file =/usr/当地的/nagios/etc/objects/pagerduty_nagios.cfg

7.将联系人“ Pagerduty”添加到您的Nagios Core配置的主要联系人组中。如果您使用默认配置,请打开/etc/nagios3/conf.d/contacts_nagios2.cfg(在基于Debian的系统上)或/etc/nagios/objects/contacts.cfg(在基于RHEL的系统上)或/USR/local/nagios/etc/objects/contacts.cfg(用于源安装)并查找“管理员”联系人组。然后,只需添加“ Pagerduty”联系人。

定义ContactGroup {ContactGroup_name Admins别名Nagios管理员成员root,pagerduty;添加Pagerduty在这里}

8.重新加载或重新启动Nagios Core以进行配置更改以生效:

  • 基于Debian的系统:
    • 服务Nagios3重新启动
  • 基于RHEL的系统:
    • 服务Nagios重新启动

9.下载pagerduty.cgi

WGET https://raw.githubusercontent.com/mdcollins05/pd-nag-connector/master/pagerduty.cgi

10.编辑pagerduty.cgi文件以便command_fileNagios Core命令文件的可变点。可以通过运行命令找到路径grep“^command_file” /etc/nagios3/nagios.cfg(在基于Debian的系统上)grep“^ *command_file” /etc/nagios/nagios.cfg(在基于RHEL的系统上)或grep“^ *command_file” /usr/local/nagios/etc/nagios.cfg(在源安装上)。如果您没有看到任何信息,请确保command_file变量未注册(不是从)。

11.移动pagerduty.cgi对于基于debian的系统,这通常是/usr/lib/cgi-bin/nagios3/

mv pagerduty.cgi/usr/lib/cgi-bin/nagios3/

对于大多数基于RHEL的系统,这通常是/usr/lib64/nagios/cgi/

mv pagerduty.cgi/usr/lib64/nagios/cgi/

对于Amazon Linux&CentOS 6+系统,通常是/usr/local/nagios/sbin

mv pagerduty.cgi/usr/local/nagios/sbin/

12.制作pagerduty.cgi可执行。

对于基于Debian的系统:

chmod +x/usr/lib/cgi-bin/nagios3/pagerduty.cgi

对于大多数基于RHEL的系统:

chmod +x/usr/lib64/nagios/cgi/pagerduty.cgi

对于Amazon Linux&CentOS 6+系统:

chmod +x/usr/local/nagios/sbin//pagerduty.cgi

13.安装所需的perl库以使脚本工作。

对于基于Debian的系统:

易于-得到安装libwww-perl libjson-perl

对于Ubuntu 16.04系统,您还需要安装libcgi-pm-perl

易于-得到安装libwww-perl libjson-perl libcgi-pm-perl

用于基于RHEL的系统:

YUM安装Perl-JSON PERL-CGI PERL-LIBWWW-PERL

14。如果您使用的是基于RHEL的发行版,则跳过此步骤。如果您使用的是基于Debian的发行版,则需要确保Nagios Core具有启用外部命令。在/etc/nagios3/nagios.cfg,检查该变量check_external_commands等于1并且变量command_check_interval设置为您的环境价值合理。这command_check_interval变量确定Nagios核心检查外部命令的频率。

15。如果您使用的是基于RHEL的发行版,则跳过此步骤。如果您使用的是基于Debian的发行版,则需要确保您的Web服务器用户(通常www-data)能够写入Nagios Core命令文件。以下命令为默认命令文件位置启用此命令:

/ETC/init.d/nagios3停止##注意:这将停止您的Nagios服务!dpkg-statoverride-上升 -添加Nagios www-data2730/var/lib/nagios3/rwdpkg-statoverride-上升 -添加Nagios Nagios751/var/lib/nagios3/etc/init.d/nagios3开始

在Pagerduty(续)

1。转到与Nagios Core集成的每个服务,请单击万博pc版下载选项卡,单击添加或管理扩展,然后单击+新扩展。

2。为了扩大类型选择纳吉奥斯,然后输入姓名对于您的webhook,粘贴在您的纳吉奥斯用户名,,,,密码URL,然后单击节省。URL看起来与此相似:ip-or-domain/nagios3/cgi-bin/pagerduty.cgi不包括http://或者https://笔记:除非您已禁用它,否则Nagios Core Web界面需要用户名和密码。我们强烈建议配置能够运行仅用于Webhook的Nagios Core命令的用户。如果您在浏览器中使用此URL,则应该看到400个请求必须是帖子。如果您看不到此信息,请检查您的Web服务器日志以获取尝试调用此URL时发生的情况的详细信息。

3.要测试此集成,您将需要在Nagios Core中遇到一个问题,该问题生成事件并触发Pagerduty的事件。从那里开始,承认这一事件应添加评论,指出该事件已被“被Pagerduty承认”。

常问问题

我可以在不通过Internet访问我的Nagios Core安装的情况下进行双向集成吗?

双向集成要求通过Internet访问您的Nagios Core Server,以从Pagerduty接收Webhook呼叫。如果您希望将对Nagios Core Web服务器的访问限制为特定的IP,则可以找到Pagerduty的Webhook IP在我们的知识库中:安全列入IPS。或者,您可以使用类似的服务Ngrok用公共网址为您的Nagios Core Server创建安全的隧道,该隧道可用于您的Webhook。

如何配置Nagios Core来使用多个PagerDuty服务?

当前集成很容易做到这一点,因为Pagerduty中的Nagios Core服务直接映射到Nagios Core中的“联系人”。默认情况下,此联系人命名为Pagerduty并在pagerduty_nagios.cfg文件。为了配置多个服务,只需复制现有的联系人定义并将其重命名(即pagerduty_database,,,,pagerduty_network, ETC。)。然后将相应的集成密钥从pagerduty复制并粘贴到寻呼机场地。不要忘记重新启动您的Nagios核心,以使更改生效。配置多个服务的另一个选项是使用全局事件路由集成密钥(请参阅上面的全局事件路由部分集成)。

如果Nagios核心事件发生在我的网络降低时发生怎么办?

如果由于任何原因无法达到Pagerduty服务器,将将事件存储到盘中队列中。当连接恢复时,Pagerduty代理将尝试重新介绍事件。

由于Nagios Core需要我的外部Internet连接才能将故障报告发送给Pagerduty,因此如果我们的网站失去外部连接,我将如何收到通知?

您应该配置外部ping检查服务,例如状态蛋糕或者点头监视您网站的外部连接。当然,您也可以使用Pagerduty接收这些服务的警报。

整合似乎不起作用。这是怎么回事?

首先,确保您已经安装了Pagerduty代理,并且在尝试安装它时,您的软件包管理器没有错误。失败的安装(即由于不兼容的分布,例如CentOS 5)是集成不起作用的最常见问题。

检查Pagerduty联系正在得到主持人或者服务通知在Syslog中。您可以抓住您的Syslog,看看是否Pagerduty接触正在通知。这是Ubuntu系统的一个示例(在基于RHEL的系统上,Syslog在/var/log/消息):

格雷普通知 /var/log/syslog可能28182057ip-10-11-139-249Nagios3:服务通知:Pagerduty; localhost;当前的用户;批判;通知服务 -经过-pagerduty;用户关键 -3用户目前已记录

如您所见,Pagerduty接触已通知服务通知。如果是Pagerduty接触永远不会出现,这意味着Pagerduty联系与有关主机/服务的通知无关。如果您使用默认配置,请确保Pagerduty联系人是管理员联系人组的成员。如果是Pagerduty联系已通知,请检查代理日志/var/log/pdagent/pdagentd.log

在我们的NAGIOS故障排除指南

Pagerduty了解什么样的Nagios核心消息?

Pagerduty可以处理问题,,,,致谢, 和恢复消息。所有其他消息,包括flappingstartflappingstop,被忽略。

立即开始使用Pagerduty

尝试免费使用Pagerduty 14天 - 无需信用卡。

Baidu