跳转到主要内容

在 Flashduty On-call


您可通过以下2种方式,获取一个集成推送地址,任选其一即可。

使用专属集成

当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。
  1. 进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面
  2. 选择 集成数据 tab,点击 添加一个集成,进入添加集成页面
  3. 选择 Nagios 集成,点击 保存,生成卡片。
  4. 点击生成的卡片,可以查看到 推送地址,复制备用,完成。

使用共享集成

当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。
  1. 进入 Flashduty 控制台,选择 集成中心=>告警事件,进入集成选择页面。
  2. 选择 Nagios 集成:
    • 集成名称:为当前集成定义一个名称。
  3. 配置默认路由,并选择对应的协作空间(集成创建后可以前往 路由 进行更多路由规则的配置)。
  4. 点击 保存 后,复制当前页面的新生成的 推送地址 备用。
  5. 完成。

在 Nagios


不同的系统和安装方式,Nagios 的安装路径可能不同,请根据实际情况调整以下配置中的路径。

一、下载通知脚本

登录 Nagios Server 所在服务器,下载通知脚本到 Nagios 插件目录:
  • Debian/Ubuntu 系统(通常为 /usr/lib/nagios/plugins/):
cd /usr/lib/nagios/plugins/
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/send_to_flashduty.sh
chmod +x send_to_flashduty.sh
  • RHEL/CentOS 系统(通常为 /usr/lib64/nagios/plugins/):
cd /usr/lib64/nagios/plugins/
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/send_to_flashduty.sh
chmod +x send_to_flashduty.sh
  • 源码安装(通常为 /usr/local/nagios/libexec/):
cd /usr/local/nagios/libexec/
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/send_to_flashduty.sh
chmod +x send_to_flashduty.sh
脚本中使用了 curl 命令,请确保 Nagios Server 上已安装 curl。

二、创建 Flashduty 配置文件

下载 Flashduty 配置文件到 Nagios 配置目录:
  • Debian/Ubuntu 系统(通常为 /etc/nagios3/conf.d/):
cd /etc/nagios3/conf.d/
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/flashduty.cfg
  • RHEL/CentOS 系统(通常为 /etc/nagios/objects/):
cd /etc/nagios/objects/
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/flashduty.cfg
  • 源码安装(通常为 /usr/local/nagios/etc/objects/):
cd /usr/local/nagios/etc/objects/
wget --header="Referer: https://console.flashcat.cloud" https://download.flashcat.cloud/flashduty/integration/nagios/flashduty.cfg

三、修改配置文件

编辑下载的 flashduty.cfg 文件,修改以下内容:
  1. pager 字段的值替换为你在 Flashduty 控制台获取的集成推送地址
  2. 根据你的 Nagios 安装路径,修改 command_line 中脚本的路径
配置文件内容示例:
define contact {
    contact_name                    Flashduty
    alias                           Flashduty Alert Receiver
    service_notification_commands   notify-service-by-Flashduty
    host_notification_commands      notify-host-by-Flashduty
    service_notification_options    w,u,c,r
    host_notification_options       d,u,r
    service_notification_period     24x7
    host_notification_period        24x7
    pager                           <YOUR_FLASHDUTY_PUSH_URL>
}

define command {
    command_name    notify-host-by-Flashduty
    command_line    <NAGIOS_PLUGIN_PATH>/send_to_flashduty.sh type=HOST WEBHOOK_URL="$CONTACTPAGER$" hostname="$HOSTNAME$" state="$HOSTSTATE$" output="$HOSTOUTPUT$" notification_type="$NOTIFICATIONTYPE$" time="$LONGDATETIME$" host_address="$HOSTADDRESS$" host_alias="$HOSTALIAS$" check_command="$HOSTCHECKCOMMAND$"
}

define command {
    command_name    notify-service-by-Flashduty
    command_line    <NAGIOS_PLUGIN_PATH>/send_to_flashduty.sh type=SERVICE WEBHOOK_URL="$CONTACTPAGER$" hostname="$HOSTNAME$" state="$SERVICESTATE$" output="$SERVICEOUTPUT$" notification_type="$NOTIFICATIONTYPE$" time="$LONGDATETIME$" host_address="$HOSTADDRESS$" service_desc="$SERVICEDESC$" host_alias="$HOSTALIAS$" max_attempts="$MAXSERVICEATTEMPTS$"
}
参数说明:
  • pager:Flashduty 推送地址,即你在 Flashduty 控制台获取的集成推送地址
  • <NAGIOS_PLUGIN_PATH>:需要替换为实际的脚本路径,如 /usr/local/nagios/libexec
  • service_notification_options:服务告警通知选项,w=警告,u=未知,c=严重,r=恢复
  • host_notification_options:主机告警通知选项,d=宕机,u=不可达,r=恢复
如需在告警中携带更多信息,可以在 command_line 末尾按照 key=value 格式追加参数,例如:environment="production" region="$_HOSTREGION$"。这些参数将作为标签(labels)推送到 Flashduty。

四、引入配置文件

如果你使用的是 RHEL/CentOS 系统源码安装,需要在 Nagios 主配置文件中引入 Flashduty 配置文件。
  • RHEL/CentOS 系统:编辑 /etc/nagios/nagios.cfg,添加:
cfg_file=/etc/nagios/objects/flashduty.cfg
  • 源码安装:编辑 /usr/local/nagios/etc/nagios.cfg,添加:
cfg_file=/usr/local/nagios/etc/objects/flashduty.cfg
Debian/Ubuntu 系统通常会自动加载 /etc/nagios3/conf.d/ 目录下的所有配置文件,无需手动引入。

五、将 Flashduty 添加到联系人组

编辑联系人配置文件,将 Flashduty 联系人添加到 admins 联系人组(或你使用的其他联系人组):
  • Debian/Ubuntu 系统:编辑 /etc/nagios3/conf.d/contacts_nagios2.cfg
  • RHEL/CentOS 系统:编辑 /etc/nagios/objects/contacts.cfg
  • 源码安装:编辑 /usr/local/nagios/etc/objects/contacts.cfg
找到联系人组定义,将 Flashduty 添加到成员列表:
define contactgroup {
    contactgroup_name       admins
    alias                   Nagios Administrators
    members                 nagiosadmin,Flashduty
}

六、验证配置并重启服务

  1. 验证 Nagios 配置文件:
  • Debian/Ubuntu 系统
/usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
  • RHEL/CentOS 系统
/usr/sbin/nagios -v /etc/nagios/nagios.cfg
  • 源码安装
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
  1. 如果验证通过,重启 Nagios 服务:
# Debian/Ubuntu
systemctl restart nagios3

# RHEL/CentOS/源码安装
systemctl restart nagios
  1. 完成配置后,当 Nagios 检测到告警时,将自动推送到 Flashduty。

状态对照


Nagios 到 Flashduty 告警等级映射关系:
NagiosFlashduty状态
CRITICALCritical严重
DOWNCritical严重
UNREACHABLECritical严重
WARNINGWarning警告
OKOk恢复
UPOk恢复
UNKNOWNInfo提醒