LNMP环节中部署Zabbix及问题记录
最近遇到的一些问题记录。

原来的服务器中已经有LNMP的环境,所以这里是基于LNMP的部署,需要首先配置好LNMP的VHOST环境,创建好站点和数据库,并准备好数据库名称、连接用户及密码。

假定此处创建的信息为:

DBNAME:Zabbix
DBUSER:Zabbix
DBPWD:Zabbix

安装Zabbix

先创建zabbix用户

groupadd zabbix
useradd -g zabbix zabbix

下载所需的Zabbix版本:

wget https://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/3.4.15/zabbix-3.4.15.tar.gz
tar zxvf zabbix-3.4.15.tar.gz
cd zabbix-3.4.15

或者到这里选择自己需要的版本。
进行基础配置:

./configure --prefix=/usr/local/zabbix/ --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 

根据提示执行

make install

将WEB站点所需运行的WEB文件复制到配置好的LNMP的站点路径:

cp zabbix-3.4.15/frontends/php/* /home/html/zabbix.website.com

配置数据库

在前面已经创建好了数据库,所以需要对数据库设置utf8的编码,避免导入数据库的时候出现问题。

use zabbix 
set names utf8;

进入Zabbix目录:

cd zabbix-3.4.15
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/schema.sql
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/images.sql
mysql -uzabbix -pzabbix -hlocalhost zabbix < database/mysql/data.sql

配置服务的启动文件:

cp misc/init.d/tru64/zabbix_agentd /etc/init.d/
cp misc/init.d/tru64/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_*

编辑Zabbix的配置文件:

vi /usr/local/zabbix/etc/zabbix_server.conf

此时可访问http:zabbix.website.com 进行安装。

配置过程中碰到的问题处理

configure: error: Invalid Net-SNMP directory - unable to find net-snmp-config
configure: error : Not found NET-SNMP library

以上两个问题的解决办法:

yum install net-snmp 
yum install net-snmp-devel 

configure: error: MySQL library not found

该问题的解决办法:

yum install mysql-devel  
configure: error: Not found curl Library

该问题的解决办法:

yum install curl-devel 

[Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

该问题解决办法:

vi /usr/local/zabbix/etc/zabbix_server.conf

在里面添加mysql.sock的实际路径:

DBSocket=/tmp/mysql.sock

configure: error: Cannot find ldap.h

该问题解决办法:

yum install openldap
yum install openldap-devel

安装时候的PHP ldap Warning问题
如果系统内不存在ldap.so则需要编译。步骤如下:
点击这里,下载你PHP的版本的二进制包。
然后解压,进入该目录:

cd php-7.3.1/ext/ldap/ 
/usr/local/php/bin/phpize
./configure  --with-php-config=/usr/local/php/bin/php-config  --with-ldap
make && make install 
ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718
vi /usr/local/php/etc/php.ini
#在里面添加
extension=ldap.so 
#重新启动PHP服务
service php-fpm restart

“Lack of free swap space”问题解决

选择Configuration->Templates(模板),在模板界面中选择Template OS Linux右侧的Triggers(触发器),在触发器页面中打开Lack of free swap space on {HOST.NAME}项目,在新打开的触发器编辑页面中修改Expression(表达式)的内容,由原先的:

{Template OS Linux:system.swap.size[,pfree].last(0)}<50

修改为:

{Template OS Linux:system.swap.size[,pfree].last(0)}<50 and {Template OS Linux:system.swap.size[,free].last(0)}<>0