nagios 联系组到 check_mk

nagios 联系组到 check_mk

我使用传统配置文件安装了 Nagios。我创建了一些联系人组并将它们分配给主机。

对于 Web UI,我使用 check_mk。问题如下:

Check_mk 支持根据联系人组成员身份显示主机/服务。但我无法在 check_mk 中使用 Nagios 联系人组。(结果应该是,如果 XYZ 人员登录,他只能看到分配给他的主机和服务。)

我的用户在 LDAP 中(我使用 check_mk 登录表单,而不是 apache 授权)。

我在文档中找不到有关此的任何信息,所以如果有人有经验,请告诉我这是如何工作的。

问题是我不能让每个人都成为管理员并接收所有警报......

在收到两个答案建议后,我添加了以下内容:

我完成了这些步骤(如果没有意义,请纠正:))我有一个额外的管理员用户不在 LDAP 中来管理 check_mk。

  1. 我在 nagios 中创建了 DN ou=People,dc=company,dc=com 下的用户(以 uid 属性作为 ID,对象类为 posixAccount)
  2. 我在 DN ou=group,dc=company,dc=com 下创建了 5 个组(以 cn 为组 ID,用户成员在 memberUid 字段下,对象类为 posixGroup)

群组:

  • cn=nagios(适用于所有 nagios 用户,包含用户 U1、U2、U3、U4)
  • cn=nagios_admins(对于管理员角色,包含用户 U1、U2)
  • cn=nagios_users(对于用户角色,包含用户 U3)
  • cn=nagios_guests(用于来宾角色,包含用户 U4)
  • cn=testgroup(我的联系人组,包含用户 U1)
  • 在 nagios 文本配置中,我添加了名为“testgroup”的联系人组:

    define contactgroup{
         contactgroup_name   testgroup
         alias               LDAP test contactgroup
         members             user1
    }
    
    define contact{
         contact_name                    user1                   ; Short
         use                             generic-contact         ;
         alias                           Nagios Admin            ; Full
         email                           [email protected]        ;
    }
    

4)我将测试组分配给了 Nagios 文本配置中的多个服务主机(对于 Nagios 电子邮件警报来说效果很好)

5)我在 WATO 中创建了名为 testgroup 的联系人组

6)我重新启动了 check_mk (check_mk -R)

7)我更新了 CHECK_MK 中的用户 LDAP 设置:

LDAP 用户设置:

User Base DN: dc=company,dc=com
Search Scope: search whole subtree
Search Filter: (objectclass=posixAccount)
Filter Group: cn=nagios,ou=group,dc=company,dc=com
User-ID Attribute: uid

看起来运行良好,来自的用户

cn=nagios,ou=group,dc=company,dc=com can authentificate well.

LDAP 组设置:

Group Base DN: ou=group,dc=company,dc=com
Search scope: whole subtree
Search filter:
(&(objectclass=posixGroup)(|(cn=nagios)(cn=nagios_admins)(cn=nagios_users)(cn=testgroup)(cn=nagios_guests)))
Member Attribute: memberUid

LDAP 属性同步插件:

Alias: LDAP attribute to sync: cn
Contactgroup Membership: checked
Roles:
     Normal monitoring user: cn=nagios_users,ou=group,dc=company,dc=com
     Administrator: cn=nagios_admins,ou=group,dc=company,dc=com
     Guest user: cn=nagios_guests,ou=group,dc=company,dc=com

Handle nested group memberships: unchecked

8)保存并测试后我可以看到这个输出:

connection     Success     Connection established. The connection settings seem to be ok.
User Base-DN     Success     The User Base DN could be found.
Count Users     Success     Found 4 users for synchronization.
Group Base-DN     Success     The Group Base DN could be found.
Count Groups     Success     Found 5 groups for synchronization.
Sync-Plugin: Roles     Success     Found all 3 groups.

9)当我以用户 U1 身份登录 check_mk 时,我无法看到 nagios 中分配给联系人组 testgroup 的主机和服务 :-(

我可以授权自己,但没有适用的规则政策。当我以管理员身份打开 WATO 用户时,我可以看到所有 4 个用户,但这四个用户都是“普通监控用户”,当我单击编辑按钮时,我无法添加他们联系人组并更改角色(我不想要,应该从 LDAP 中读取)。但在用户表中没有分配联系人组或通知(联系人组:无,通知:不是联系人)。

请看一下,我开始绝望了:)

答案1

作为起点:

如果您从 WATO 内部定义 nagios 组,则可以通过 GUI 分配所有内容。

在 LDAP 文档中,关键行可能是这一行:

“将用户添加到所有联系人组中,只要该用户是 LDAP 中某个组的成员,并且该组的 CN 与联系人组的名称完全匹配。”(您还必须启用该功能,但我想指出的是组匹配)

因此,如果您有一个 LDAP 组 unix-admins,您还应该通过 WATO 定义一个联系人组“unix-admins”。然后可以将某个 WATO 文件夹或特定服务指定为要通知的联系人。

答案2

在 check_mk Multisite 中,每个未明确定义为管理员或访客的用户都分配有“用户”角色。默认情况下,此角色仅显示用户作为 nagios 联系人的主机和服务。

Check_MK Multisite 中的授权

默认情况下,所有具有有效 HTTP 身份验证的用户都具有用户角色...普通用户只能看到他们在 Nagios 中联系的对象并对其采取行动。

我的设置是包含 check_mk 的 OMD,所以我没有手动编辑 nagios 配置。但据我所知它也应该适用于您的设置。如果不行,请在监控门户网站check_mk/livestatus 部分的论坛。很多 check_mk 开发人员都在那里活跃。

相关内容