我使用传统配置文件安装了 Nagios。我创建了一些联系人组并将它们分配给主机。
对于 Web UI,我使用 check_mk。问题如下:
Check_mk 支持根据联系人组成员身份显示主机/服务。但我无法在 check_mk 中使用 Nagios 联系人组。(结果应该是,如果 XYZ 人员登录,他只能看到分配给他的主机和服务。)
我的用户在 LDAP 中(我使用 check_mk 登录表单,而不是 apache 授权)。
我在文档中找不到有关此的任何信息,所以如果有人有经验,请告诉我这是如何工作的。
问题是我不能让每个人都成为管理员并接收所有警报......
在收到两个答案建议后,我添加了以下内容:
我完成了这些步骤(如果没有意义,请纠正:))我有一个额外的管理员用户不在 LDAP 中来管理 check_mk。
- 我在 nagios 中创建了 DN ou=People,dc=company,dc=com 下的用户(以 uid 属性作为 ID,对象类为 posixAccount)
- 我在 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 联系人的主机和服务。
默认情况下,所有具有有效 HTTP 身份验证的用户都具有用户角色...普通用户只能看到他们在 Nagios 中联系的对象并对其采取行动。
我的设置是包含 check_mk 的 OMD,所以我没有手动编辑 nagios 配置。但据我所知它也应该适用于您的设置。如果不行,请在监控门户网站check_mk/livestatus 部分的论坛。很多 check_mk 开发人员都在那里活跃。