一.原环境:
ubuntu14.4
mysql:5.6
zabbix2.4位编译安装,zabbix_server与zabbix_mysql不在同一主机上
二.升级准备:
备份zabbix所有配置文件:/usr/local/zabbix
备份数据库数据: mysqldump -uroot -ppassword -B zabbix -E -R --skip-lock-tables >zabbix_bak_20180223.sql
备份zabbix页面文件: /usr/share/nginx/html/zabbix
不管做任何操作,备份永远是最明智的操作,虽然这次的升级操作,没有用到
三. zabbix2.4是编译安装的,新版本也用编译安装
源码包下载地址:
https://www.zabbix.com/download_sources
选择版本下载https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.2.6/zabbix-3.2.6.tar.gz/download
tar xf zabbix-3.2.6.tar.gz
cd zabbix-3.2.6
./configure --prefix=/usr/local/zabbix --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl
sudo make
sudo make install
编译安装完成后,重启zabbixs_server
/etc/init.d/zabbix-server restart
正常启动无误后,配置zabbix web页面
cp -r zabbix-3.2.6/frontends/php/ usr/share/nginx/html/zabbix
根据备份文件 修改配置文件/usr/share/nginx/html/zabbix/conf/zabbix.conf.php
重启nginx即可,,访问zabbix网页正常
四.升级过程中遇到的问题
编译安装zabbix完成后,重启zabbix-server失败,查看日志,原因的数据库升级失败,
![](https://www.#.com/imgs/1/1/4/4/27/c3f403918f8e97d67dc874553c7b4fbf.jpe)
![](https://www.#.com/imgs/2/8/4/6/69/bcec305d2bc30a77806c3ebedc737f5f.jpe)
根据报错信息,查找原因:MySQL的varchar主键只支持不超过767个字节,需要将mysql的字符编码设置为utf8mb4
调整mysql配置:innodb_file_format=barracuda
innodb_file_per_table=true
innodb_large_prefix=true
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
max_allowed_packet=500M
重启数据库
重启zabbix_server,依然报错:[Z3005] query failed: [1071] Specified key was too long; max key length is 767 bytes [create index problem_tag_2 on problem_tag (tag,value)]
个人理解,字段值设置过大,导致添加索引过大导致失败,可以把手动作为索引的那个column 改小一点 就可以了
重启zabbix_server后正常