zabbix配置LDAP还是比较简单的,我们直接使用最外层的用户授权即可,不用在LDAP上对用户进行分组管理,因为zabbix自身还会有一层授权控制。
一、zabbix 配置 openldap 认证
- LDAP主机:可以填IP或域名
- 端口:默认389
- 基于DN:此处填写
ou=ops,ou=users,dc=sys,dc=com
,表示用户基于ops这一分组下维护- 搜索属性:uid
- 绑定DN:此处填写
ou=zabbix,ou=groups,dc=sys,dc=com
,表示绑定一个用于查询LDAP的账户- 绑定密码:这里填上面绑定DN是
ou=zabbix
的密码- 登陆:Admin,这个用户与zabbix管理账户重叠,但是要注意需要先在LDAP中创建此用户,并设置密码
- 用户密码:将上一步创建用户的密码写在这里,点击测试,如果配置正确,将会提示LDAP登录成功
二、python 导入 ldap 用户
上述配置完成后已经把ldap和zabbix打通了,用户登录zabbix时,会先到ldap认证,判断用户是否有效;但是zabbix不会把ldap的用户同步过了,你要登录,得先在zabbix上创建和ldap内同名的用户才行,这个显得很被动了,于是写个脚本,定时往zabbix数据库插入用户,这样就免去手工创建的用户的烦恼。下面是脚本:(环境是python2.6)
ldap命令看到的数据
1 | [admin@localhost ~]$ ldapsearch -x -LLL -H ldap:// -b ou=users,dc=sys,dc=com -D "cn=admin,dc=sys,dc=com" -w "Abc.123456" givenName|sed '1,12'd|sed '/^$/d'|egrep -v 'ou=Group|ou=machines' |
cn是zabbix的alias字段,givenName需要base64解码成中文名
1 | #!/usr/bin/env python |
执行
1 | [ ]$ python insert_sql.py |
再去user下看,可以看到新增了很多用户
登录下,认证是成功的,接下来,你可以对用户进行分组和授权了
三、zabbix认证方式修改
当出现网络故障或LDAP服务不可用时,zabbix系统便无法登录,这里可以通过修改zabbix数据库的方式更改认证方式
查看认证方式
1 | > select authentication_type from config; |
修改认证方式
1 | > update config set authentication_type=0; # 可修改值为 0, 1, 2 |
- 0 内置
- 1 LDAP
- 2 HTTP