ZABBIX 认证方式有三种,分别是Internal、LDAP和HTTP。
注意:实现LDAP用户账户统一认证需要AD和ZABBIX共有用户帐号并且保证LDAP设置中 Test authentication 选项中用户和密码和AD中的相同。
Windows AD域
创建OU zabbix
在OU中创建账号
设置账号密码
OU中用户账户
ZABBIX Server
查看php 是否安装ldap 模块
LDAP配置
代码语言:javascript复制LDAP host:访问DC的地址。格式:ldap://ip地址
Port:默认389
Base DN: DC=ytzjsj,DC=com,也就是域名(ytzjsj.com)
Search attribute: sAMAccountName。
Bind DN:CN=Admin, OU=zabbix, DC=ytzjsj, DC=com。
CN就是在DC中创建的LDAPuser用户, OU就是LDAPuser属于哪个ou,DC=ytzjsj和DC=com同上。
Bind password:xxxx ,改密码为LDAPuser用户的密码
Login:Admin
User password:在DC中创建Admin用户和密码
开启LDAP认证
创建新用户
AD域控上需要创建ytzjsj的账户和密码
注意:在添加新用户时,如果 ZABBIX 已经开启ldap 认证且AD上已经创建新用户的账户和密码,这时在ZABBIX上创建用户可以不填写用户的密码可直接使用AD上的密码实现认证!
新用户登陆
LDAP挂掉后该怎么办
将认证类型改为Internal,然后使用Admin登陆,如果忘记密码,也可以重置Admin密码为admin。
代码语言:javascript复制use zabbix; #进入zabbix库
show tables; #查看zabbix库中数据表
desc config; #查看config表结构
用户和认证的信息涉及到四张表,分别为config、users、users_groups、usrgrp。
其中,认证类型由 authentication_type,字段决定,值可以为0,1和2。
0 代表Internal,1代表LDAP,2代表HTTP。
操作步骤
代码语言:javascript复制select userid,alias,passwd from zabbix.users;
update zabbix.config set authentication_type=0;
update zabbix.users set passwd=md5("admin") where userid='1';
flush privileges;
用户数据库参数介绍
查询Admin用户的ID
select * from users;
代码语言:javascript复制(zabbix@localhost)[(none)]> select userid,alias,name,passwd from zabbix.users;
-------- ------- -------- ----------------------------------
| userid | alias | name | passwd |
-------- ------- -------- ----------------------------------
|1 | Admin | Zabbix | f8c29048c7741c7fcfa77fb0cd30a2d5 |
| 2 | guest | | d41d8cd98f00b204e9800998ecf8427e |
|3 | zjsj | | afce02a060d53fa624ae21636316ca99 |
-------- ------- -------- ----------------------------------
3 rows in set (0.000 sec)
查询权限组ID
select * from usrgrp;
代码语言:javascript复制(zabbix@localhost)[zabbix]> select * from usrgrp;
---------- --------------------------- ------------ -------------- ------------
| usrgrpid | name | gui_access | users_status | debug_mode |
---------- --------------------------- ------------ -------------- ------------
| 7 | Zabbix administrators | 0 | 0 | 0 |
| 8 | Guests | 1 | 0 | 0 |
| 9 | Disabled | 0 | 1 | 0 |
| 11 | Enabled debug mode | 0 | 0 | 0 |
| 12 | No access to the frontend | 3 | 0 | 0 |
| 13 | zjsj | 0 | 0 | 0 |
---------- --------------------------- ------------ -------------- ------------
6 rows in set (0.001 sec)
代码语言:javascript复制select * from users_groups;
(zabbix@localhost)[zabbix]> select * from users_groups ;
---- ---------- --------
| id | usrgrpid | userid |
---- ---------- --------
| 4 | 7 | 1 |
| 2 | 8 | 2 |
| 5 | 13 | 3 |
---- ---------- --------
3 rows in set (0.000 sec)
查询用户和权限组对应关系
select * from usrgrp;
代码语言:javascript复制(zabbix@localhost)[zabbix]> select * from usrgrp;
---------- --------------------------- ------------ -------------- ------------
| usrgrpid | name | gui_access | users_status | debug_mode |
---------- --------------------------- ------------ -------------- ------------
| 7 | Zabbix administrators | 0 | 0 | 0 |
| 8 | Guests | 1 | 0 | 0 |
| 9 | Disabled | 0 | 1 | 0 |
| 11 | Enabled debug mode | 0 | 0 | 0 |
| 12 | No access to the frontend | 3 | 0 | 0 |
| 13 | zjsj | 0 | 0 | 0 |
---------- --------------------------- ------------ -------------- ------------
6 rows in set (0.000 sec)
修改用户所在权限组
代码语言:javascript复制update users_groups set usrgrpid='1' where userid=3;
flush privileges;