Skip to main content
Centreon 自带 PagerDuty Events 流连接器(pagerduty-events-apiv2.lua),它把主机和服务的状态变化以 PagerDuty Events API v2 格式的 JSON 发送到 http_server_url 参数指定的地址,默认是 https://events.pagerduty.com/v2/enqueue。Flashduty 的 PagerDuty 集成 与该格式兼容,因此不需要单独的 Centreon 集成:在 Flashduty 创建 PagerDuty 集成,把它的推送地址填进连接器的 http_server_url 即可。

在 Flashduty On-call


您可通过以下两种方式获取集成推送地址,任选其一即可。集成类型都选择 PagerDuty,不是 Centreon。

使用专属集成

  1. 进入 Flashduty 控制台,选择 协作空间,打开一个协作空间
  2. 选择 配置 → 集成数据 → 专属集成,点击 新增一个集成
  3. 选择 PagerDuty,点击 保存
  4. 打开生成的集成卡片,复制 推送地址,形如 https://api.flashcat.cloud/event/push/alert/pagerduty?integration_key=<集成密钥>

使用共享集成

  1. 进入 Flashduty 控制台,选择 集成中心 → 告警事件
  2. 选择 PagerDuty,填写集成名称
  3. 配置默认路由并选择协作空间;创建后可在 路由 中增加更多规则
  4. 点击 保存,复制生成的 推送地址

在 Centreon 中配置


步骤 1:安装流连接器

在要发送数据的服务器(中央服务器、远程服务器或轮询器)上,以 root 执行:

步骤 2:配置 Broker 输出

  1. 在中央服务器上进入 Configuration → Pollers → Broker configuration,点击 central-broker-master(如果由远程服务器或轮询器发送,选择对应的 Broker 配置)
  2. 在 Output 标签页选择 Generic - Stream connector,点击 Add,新增一个输出
  3. 按下表填写:
  1. 点击 Filter category 表格下方的 +Add a new entry 添加以下参数:
  1. 部署配置,并在所有轮询器上重启 centengine:
Flashduty 的 PagerDuty 集成既接受推送地址中的 integration_key 参数,也接受请求体里的 routing_key;上面两个参数都填,连接器发出的请求就可以通过验证。保持 max_buffer_size 为默认值,连接器每次请求只发送一个事件。

步骤 3:验证

按 Centreon 文档,可以在连接器所在服务器上用 curl 发送一条测试事件,routing_key 使用集成密钥,请求地址换成 Flashduty 推送地址:
Flashduty 应返回 HTTP 202,并出现一条告警;把 event_action 改为 resolve 再发一次,告警恢复。

字段映射


Centreon 连接器发出的字段(见连接器源码)与 Flashduty 的对应关系: 连接器按 Centreon 状态设置的等级:

恢复与去重


  • 同一个主机或服务始终使用同一个 Alert Key,状态从 WARNING 变为 CRITICAL 时更新同一条告警,回到 OK 或 UP 时恢复
  • 连接器库的默认参数只发送 HARD 状态,并且不发送已确认(acknowledged)或处于停机维护(downtime)的对象;如需改变,在连接器参数中调整 hard_only、acknowledged、in_downtime
  • 只推送部分对象时,使用连接器的过滤参数,例如 accepted_hostgroups、accepted_servicegroups、accepted_pollers

排查问题


  • Flashduty 没有收到告警:检查 /var/log/centreon-broker/pagerduty-events.log(默认日志文件,log_level 最高为 3);确认 http_server_url 是完整的推送地址,pdy_routing_key 已填写
  • 连接器日志显示 POST 失败:连接器只把 HTTP 202 视为成功,Flashduty 对 PagerDuty Events API v2 请求返回 202;其他状态码请检查 integration_key 是否正确
  • 告警没有恢复:确认恢复状态(服务 OK、主机 UP)没有被过滤参数(例如 service_status、host_status)排除
  • 收不到已确认对象的告警:默认 acknowledged 为 0,已确认的问题不再推送
更多说明请参阅 Centreon 文档 PagerDuty Events 和连接器源码 pagerduty-events-apiv2.lua。