zabbix部署踩坑记录
服务器:阿里云Centos 7.6 数据库:MySQL5.6
1,grant all privileges on zabbix.* to zabbix@localhost;
提示ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'zabbix'
查看root用户有没有授权权限
select host,user,grant_priv,Super_priv from mysql.user;
+-----------+----------+------------+------------+ | host | user | grant_priv | Super_priv | +-----------+----------+------------+------------+ | 127.0.0.1 | root | Y | Y | | % | root | N | N | | +-----------+----------+------------+------------+
可以看到%的grant_priv的值为N,也就是说root用户不能授权给其他用户,所以我们需要把这个值改为Y
mysql> update mysql.user set grant_priv='N' where host='%';
Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0
mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
改完之后最好重启一下服务器(没重启的话,还是会报那个错,重启后就正常了)
systemctl restart mysqld.service
2,执行zabbix-server-mysql的sql脚本时报错
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
超出索引字节的限制,并不是指字段长度限制。在官方文档“Limits on InnoDB Tables”有关于这方面的介绍、描述
https://dev.mysql.com/doc/refman/5.6/en/create-index.html
这个问题搞了很久,同一个sql脚本,我在其他服务器上也尝试了下,在MySQL5.7版本上和5.6版本表现不一样
navicat连接数据库,设计表-选项,行格式(row_format)
在5.6上执行sql脚本,结果为COMPACT,在5.7上结果为DYNAMIC,怀疑是数据库版本的限制

3,进入ip/zabbix,配置数据库连接时一直连不上
既然是数据库连不上,就着重检查几个配置文件:
先检测zabbix_server.conf
DBhost:服务器的ip
DBName:zabbix
DBUser:zabbix
DBPort:3306
DBPassword:数据库zabbix用户的密码
看都是正常的,用mysql -uzabbix -p也能连上mysql
这儿又是一个大坑 ,在网上查了才发现是还有一个文件没配置
先进入/etc/zabbix,有一个web目录,cd web
下面有个zabbix.conf.php.example,把它改为zabbix.conf.php

vim zabbix.conf.php
注意:这里的DB_PORT是0,和初始化配置zabbix前端时,填的那个端口一致
我改成3306,前端也填3306时就一直不行
下面的密码就是数据库zabbix用户的密码
DB_SERVER也要填localhost,我改成服务器的ip就不行

ZBX_SERVER就填服务器的ip,ZBXPORT填10051

另外还要在阿里云控制台上先把10050和10051端口打开
重启server和agent进程
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
这会终于能完成初始化了
4,前端显示zabbix server is not running: the information displayed may not be current!
服务器运行状态显示为否
查看日志 tail -200 /var/log/zabbix/zabbix_server.log

显示连接不上数据库,用mysql -uzabbix -p是能够连上的
这种问题一般是权限不够造成的,
这里我用了个粗暴的方法,先进入navicat,修改mysql数据库的user表

将zabbix用户的 host改为%
进入数据库
mysql -uroot -p
use mysql
select host,user,grant_priv,Super_priv from mysql.user;
+----------+-----------+------------+------------+ | user | host | Grant_priv | super_priv | +----------+-----------+------------+------------+ | root | 127.0.0.1 | Y | Y | | root | localhost | Y | Y | | % | zabbix | N | N | +----------+-----------+------------+------------+
grant all privileges on zabbix.* to zabbix@'%';
flush privileges;
再看已经不报错了
5. 修改zabbix_agentd.conf会导致zax掉线
因为只有一台机器,
Server=127.0.0.1
ListenPort=10050
Hostname=Zabbix Server
ServerActive是注释掉的

但如果将Server改为阿里云服务器ip,Hostname也修改,就重启server和agent就会显示不可用
Received empty response from Zabbix Agent at [ip:10050]. Assuming that agent dropped connection because of access permission
在其他机器上部署zabbix_agent
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum install zabbix-agent
cd /etc/zabbix vim zabbix_agentd.conf
修改server,serverActive,hostname,userParameter
systemctl enable zabbix-agent
systemctl start zabbix-agent
在zabbix服务器前端添加主机
注意:主机添加后ZBX是灰色的,要先给这个主机添加一个监控项才会变绿色
参考资料:1.https://www.cnblogs.com/kerrycode/p/9680881.html
2.https://dev.mysql.com/doc/refman/5.6/en/create-index.html
3.https://www.cnblogs.com/biaopei/p/8376941.html
4.https://www.zabbix.com/cn/download?zabbix=5.0&os_distribution=red_hat_enterprise_linux&os_version=7&db=mysql
浙公网安备 33010602011771号