Nagios 同步插件 - get_all 实现

launchpad 蓝图: https://blueprints.launchpad.net/vitrage/+spec/synchronizer-nagios-get-all

此蓝图描述了 Vitrage 同步器的 Nagios 插件及其 get_all Nagios 服务(测试)的实现。

问题描述

Nagios 测试结果应通过 Vitrage 同步器添加到 Vitrage 图中。 这需要为 Nagios 编写一个同步器插件。

该插件应支持两种模式

  • get_all: 查询所有 Nagios 测试的结果,并将相应的事件发送到同步器

  • notifications: 在 Nagios 测试结果发生变化时通知同步器

此蓝图指的是 get_all 实现。

作为第一阶段,我们将仅支持 Nagios 3。

提议的变更

当前的 Nagios 插件将支持 Nagios 3.x。

Nagios 插件将配置为

每隔轮询间隔秒,Nagios 插件将调用 Nagios URI 以查询 Nagios 服务(测试)的结果。 它将解析返回的 html(Nagios 3.x 没有 REST API),创建 Nagios 事件并将它们发送到 Vitrage 图队列。

备选方案

数据模型影响

Nagios 事件将如下所示

字段

描述

示例

resource_name

Nagios 主机名称

  • compute-0-0.local

  • os-glance-00.local

  • ilo.node14

resource_type

Nagios 主机类型

  • nova.host

  • nova.instance

  • switch

服务

Nagios 服务(测试)名称

  • CPU 负载

  • check_ceph_health

status

服务的状态

  • OK

  • WARNING

  • CRITICAL

  • UNKNOWN

last_check

上次检查服务的时间

2016-01-04 19:17:10

duration

自上次状态更改以来的持续时间

1d 2h 55m 48s

attempt

尝试次数

1/3

status_info

附加信息

OK - 15min load 1.66

at 32 CPUs

vitrage_entity_type

信息来源

nagios(常量值)

REST API 影响

版本影响

其他最终用户影响

部署者影响

Nagios 插件应配置 Nagios URI、凭据和轮询间隔。

开发者影响

Horizon 影响

实现

负责人

主要负责人

ifat-afek

工作项

依赖项

测试

此蓝图需要单元测试和 Tempest 测试。

文档影响

应记录 Nagios 配置

参考资料

Nagios 配置: https://github.com/openstack/vitrage/blob/master/doc/source/nagios-config.rst

同步器主蓝图: https://github.com/openstack/vitrage-specs/blob/master/specs/mitaka/vitrage-synchronizer.rst