zabbix编译解决ldap问题
// 今天安装zabbix发现ldap出错
在说解决措施之前让我们先来了解一下什么是ldap?以及ldap是干什么的,以及ldap在zabbix中的作用
ldap简介
- ldap指的是轻型目录访问协议,是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
- 目录服务在开发内部网和互联网程序共享用户、系统、网络、服务和应用的过程中占据了重要地位
- ldap的一个常用用途是单点登录,用户可以在多个服务器中使用同一个密码,通常用于公司内部网站的登录中
- ldap目录与普通数据库的主要不同之处在于数据的组织方式,它是一种层次的、树形结构。所有条目的属性的定义是对象类object class的组成部分,并组成在一起构成schema;那些在组织内代表个人的schema被命名为white pages schema。数据库内的每个条目都与若干个对象联系,而这些对象类决定了一个属性是否为可选和它保存哪些类型的信息。属性的名字一般是一个易于记忆的字符串。
- ldap目录条目可描述一个层次结构,这个结构可以反映一个政治、地理或者组织范畴。在原始的X.500模型中,反应国家的条目位于树的顶端;接着是州或者民族组织。典型的LDAP配置使用DNS名称作为树形结构的顶端,下列是代表人、文档、组织单元、打印机和其他任何事务的条目。
- LDAP影响了后续的internet协议,包括新版本的X.500、DSML、SPML和Service Location Protocol。
为什么要zabbix要使用ldap
我们一起来思考一个问题,随着一个公司越做越大,服务器的数量越来越多,这就需要更多的人来管理,人多了又会导致一个问题就是管理zabbix人远的账号和密码会很多怎么进行管理呢?ldap就可以实现对其的集中管理zabbix系统配置实现通过域认证登录。zabbix配置ldap认证对接AD域,可以让用户通过域账号登录,这样既减少zabbix管理人员的用户管理工作,又使得用户不需要记忆那些复杂的密码。
ldap的作用
ldap的作用: 通过ldap验证,将zabbix和windows域控联系在一起,只有域控中的用户才能登录zabbix
解决措施
// php-7.2.24的解压的包的位置
[root@192 ldap]# pwd
/usr/local/php-7.4.24/ext/ldap //进入此目录下
// 进行预编译
[root@192 ldap]# /usr/local/php7/bin/phpize //php7编译安装的位置
// 若出现下面的问题,意思就是说找不到autoconf。我们直接安装
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
// 解决办法
[root@192 ldap]# yum -y install autoconf
// 此时我们再次执行
[root@192 ldap]# /usr/local/php7/bin/phpize //出现如下内容,表示没有问题
Configuring for:
PHP Api Version: 20190902
Zend Module Api No: 20190902
Zend Extension Api No: 320190902
// 进行编译安装
[root@192 ldap]# pwd
/usr/local/php-7.4.24/ext/ldap
[root@192 ldap]# ./configure --with-php-config=/usr/local/php7/bin/php-config --with-ldap
// 编译时若出现如下错误
configure: error: Cannot find ldap libraries in /usr/lib. //找不到 ldap库
// 解决办法
[root@192 ldap]# vim /etc/php.ini //修改php.ini文件
888 ; If you wish to have an extension loaded automatically, use the following
889 ; syntax:
890 extension=ldap.so
891 ; extension=modulename
// 若不到文件在哪的朋友可以使用如下命令
[root@192 ldap]# find / -name php.ini
[root@192 ldap]# find / -name ldap.so
/usr/lib64/ldb/modules/ldb/ldap.so
[root@192 ldap]# cp -rp /usr/lib64/libldap* /usr/lib/
// 除了复制也可以做软连接
[root@192 ~]# ln -s /usr/lib64/libldap* /usr/lib/
// 进行安装
[root@192 ldap]# make && make install
// 若make install执行完之后出现如下内容
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'
// 解决措施如下
[root@192 ldap]# tail -1 /etc/ld.so.conf //在此文件的最后一行如下内容
/usr/local/lib
[root@192 ldap]# ldconfig //使用命令重新加载配置文件
[root@192 ldap]# systemctl restart php-fpm.service //别忘记重启php
友情提示可能出现上面以外的其他错误
// 若在解决错误的过程出现下面这个问题
error:configure: error: Cannot find ldap.h
// 解决措施
[root@192 ~]# yum -y install openldap openldap-devel
// 此时我们可以看到ldap处于ok状态了