2015年(68)
分类: 系统运维
2015-08-31 17:16:16
我们nagios监控的主机大概有200多台,包含几个合作厂家的机器,nagios平时都是我们这边在维护,其他厂家基本上不会上去看或作其他操作。最近一合作厂家希望可以访问nagios看看自己的机器的运行情况,对于我们这边来说也是希望可以为每个厂家分配一个不同的用户名,登录后都只能查看和管理自己机器的信息而不能查看其他厂家的主机信息。
刚开始我想到在搭nagios的时候,用户验证是用apache来做的,接到这个需求后的第一反应是这个东西可能做不了。但接着一想,不应该啊,nagios本身至少会有一些用户配置的吧,于是看了下文档,还真的发现有:
对着文档配置后,可以实现需求,记录如下:
(1)新增一个apache用户,如userA
[root@service3F-38 ~]# htpasswd /usr/local/nagios/etc/htpasswd.users userA
(2)更改cgi.cfg配置
[root@service3F-38 ~]# vi /usr/local/nagios/etc/cgi.cfg
use_authentication=1
如果只允许查看,不允许管理,加上下面配置
authorized_for_read_only=userA
(3)将userA设为联系人
[root@service3F-38 ~]# vi /usr/local/nagios/etc/objects/contacts.cfg #添加如下配置
define contact{
contact_name userA
use generic-contact
alias userA
}
(4)在属于userA的主机、服务配置文件的联系人中加入userA:
[root@service3F-38 ~]# vi /usr/local/nagios/etc/objects/hosts.cfg
define host {
host_name web02-1.22@sh
alias web02-1.22@sh
address 10.1.1.22
contacs userA
contact_groups sys_admins
check_command check-host-alive
max_check_attempts 5
notification_interval 3
notification_period 24x7
notification_options d,u,r
}
(5)重启nagios后生效
[root@service3F-38 ~]# /etc/init.d/nagios restart