如何允许 Nagios 中的用户查看某些服务器的状态,但不禁用/启用任何内容?

如何允许 Nagios 中的用户查看某些服务器的状态,但不禁用/启用任何内容?

如何允许 Nagios 中的用户查看某些服务器的状态,但不禁用/启用任何内容?

答案1

在 /usr/local/nagios/etc/cgi.cfg(或系统上的任何位置)中定义只读用户:

# A comma-delimited list of usernames that have read-only rights in
# the CGIs.  This will block any service or host commands normally shown
# on the extinfo CGI pages.  It will also block comments from being shown
# to read-only users.

authorized_for_read_only=viewer

当然,必须先将查看者定义为具有适当 htpasswd 身份验证的联系人。在服务/主机详细信息页面中,通常有命令的右侧将显示:

您的帐户没有执行命令的权限。

答案2

如果我正确理解了您的问题,您可能想向 nagios 添加只能查看部分服务器且无权执行任何管理任务(启动/停止监控或警报)的用户。

要实现这一点,您需要将用户添加到 nagios 的 .htpasswd 文件中,然后在 nagios 中创建一个联系人,其 contact_name 与 .htpasswd 中设置的用户名相匹配,然后将该联系人仅添加到您希望他们看到的主机。请记住,当您将模板中定义的内容添加到主机配置时,它会覆盖模板而不是添加到模板中,因此您还需要重新添加主机在模板中已有的任何联系人。

答案3

允许用户仅对某些主机具有只读访问权限在 Nagios webview 中你必须实现以下更改:

笔记:跳到3.如果您已经启用密码保护的身份验证:

  1. 编辑cgi.cfgnagios 安装中的文件(例如/usr/local/nagios/etc)以启用密码保护登录:

    use_authentication=1
    
  2. 在 Apache 安装目录中的文件中nagios.conf,验证是否包含以下行来指向该htpasswd.users文件:

    AuthName "Nagios Access"
    AuthType Basic
    AuthUserFile /usr/local/nagios/etc/htpasswd.users
    Require valid-user
    
  3. htpasswd.users使用命令和 Apache HTTPD 密码管理器将用户添加到文件htpasswd。位置可能因您的系统而异;它的一些常见位置是/usr/bin/usr/local/apache/bin

    # htpasswd /usr/local/nagios/etc/htpasswd.users testuser01
    New password:
    Re-type new password:
    Adding password for user testuser01
    
  4. 编辑cgi.cfg位于您的 nagios 安装中的;取消注释authorized_for_read_only并添加您想要授予访问权限的用户名:

    authorized_for_read_only=testuser1
    
  5. objects/contacts.cfg从您的 nagios 安装中为用户创建一个条目:

    define contact {
        contact_name                    testuser01
        use                             generic-contact
        alias                           Test User 01
        email                           [email protected]
    }
    
  6. 同样,objects/contacts.cfg定义一个组来容纳需要相同主机相同访问权限的用户和其他未来用户 - 当用户包含在组中时更容易管理:

    define contactgroup {
        contactgroup_name       view-only-host01
        alias                   View Only access to alarms for Host01
        members                 testuser01
    }
    
  7. 获取先前定义的联系人组,view-only-host01并在您的主机的 .cfg 中(例如objects/host01.cfg)将其添加到您想要授予仅查看访问权限的每个服务中:

    define service{
           service_description     Alarm for Test service - Metric 01
           check_command           webinject!test/test.xml
           servicegroups           availability
           contact_groups          admins,view-only-host01
    }
    
  8. 重启 nagios

答案4

在您的 cgi.cfg 文件中,有以下几行:

authorized_for_all_services=*

authorized_for_all_hosts=*

通常这些配置如上,因此所有用户至少可以查看您的所有主机和服务。因此,如果您将新用户添加到 htpasswd 文件中,他们应该默认获得所需的行为。

相关内容