zabbix 4.4.4升级5.0.2(编译安装,数据库:TimescaleDB)
由于网络上使用Postgresql TimescaleDB组件的比较少,从zabbix4到5,全是数据库的各种升级折腾,现在将官方升级文档和自己在升级中遇到的问题记录下来,供他人查询
一、备份zabbix-4.4.4
[root@Zabbix_Server ~]# mv /usr/local/zabbix /usr/local/zabbix-4.4.4 #程序文件备份
[root@Zabbix_Server ~]# cp -p -R /opt/zabbix /opt/zabbix-4.4.4 #配置文件备份
[root@Zabbix_Server ~]# mv /var/www/zabbix /var/www/zabbix-4.4.4 #web文件备份
二、编译zabbix-5.0.2
[root@Zabbix_Server ~]# tar zxvf zabbix-5.0.2.tar.gz
[root@Zabbix_Server ~]# cd zabbix-5.0.2
[root@Zabbix_Server zabbix-5.0.2]# ./configure --prefix=/usr/local/zabbix --sysconfdir=/opt/zabbix --enable-server --enable-agent --with-net-snmp --enable-java --with-libxml2 --with-libcurl --with-postgresql=/usr/pgsql-11/bin/pg_config --disable-dependency-tracking
....
.....
......
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <http://www.zabbix.com> *
***********************************************************
[root@Zabbix_Server zabbix-5.0.2]# make install
三、配置zabbix服务
拷贝启动文件并配置可执行
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
cp misc/init.d/fedora/core/zabbix_server /etc/init.d/
chmod +x /etc/init.d/zabbix_agentd
chmod +x /etc/init.d/zabbix_server
根据安装目录修改zabbix_server和zabbix_agentd启动目录
vim /etc/init.d/zabbix_agentd
vim /etc/init.d/zabbix_server
BASEDIR=/usr/local 修改成下面的安装目录
BASEDIR=/usr/local/zabbix
拷贝zabbi web到httpd目录
mkdir /var/www/zabbix -p
cp -a ui/* /var/www/zabbix
chown -R apache. /var/www/zabbix
四、数据库升级
启用数字(浮点)值的扩展范围
数值(浮点)数据类型现在支持大约15位精度,范围从大约-1.79E + 308到1.79E + 308(PostgreSQL 11和更早版本除外)。默认情况下,新安装是这样的。但是,在升级现有安装时,必须应用手动数据库升级补丁。
如果不应用修补程序,则前端中的系统信息将显示:“数据库历史记录表已升级:否”。
该修补程序将更改历史记录和趋势表的数据列,这些数据列通常包含大量数据,因此预计需要一些时间才能完成。由于确切的估算值取决于服务器性能,数据库管理系统的配置和版本,并且无法预测,因此建议先在生产环境之外测试补丁程序。
请为您的数据库执行适当的补丁程序(SQL文件)
*仅对服务器数据库运行这些脚本。
*在运行这些脚本之前,请确保Zabbix服务器已停止。之后重新启动服务器。
[root@timescaledb ~]# su postgres
bash-4.4$ psql
could not change directory to "/root": Permission denied
psql (11.8)
Type "help" for help.
postgres=# \c zabbix
You are now connected to database "zabbix" as user "postgres".
zabbix=#
执行:
ALTER TABLE ONLY trends
ALTER COLUMN value_min TYPE DOUBLE PRECISION,
ALTER COLUMN value_min SET DEFAULT '0.0000',
ALTER COLUMN value_avg TYPE DOUBLE PRECISION,
ALTER COLUMN value_avg SET DEFAULT '0.0000',
ALTER COLUMN value_max TYPE DOUBLE PRECISION,
ALTER COLUMN value_max SET DEFAULT '0.0000';
ALTER TABLE ONLY history
ALTER COLUMN value TYPE DOUBLE PRECISION,
ALTER COLUMN value SET DEFAULT '0.0000';
这里遇到问题,提示:ERROR: ONLY option not supported on hypertable operations,在Zabbix俄语论坛上找到了一个要求相同的人(根据google翻译)。建议只是从提供的double.sql中删除“ only”关键字
ALTER TABLE trends
ALTER COLUMN value_min TYPE DOUBLE PRECISION,
ALTER COLUMN value_min SET DEFAULT '0.0000',
ALTER COLUMN value_avg TYPE DOUBLE PRECISION,
ALTER COLUMN value_avg SET DEFAULT '0.0000',
ALTER COLUMN value_max TYPE DOUBLE PRECISION,
ALTER COLUMN value_max SET DEFAULT '0.0000';
ALTER TABLE history
ALTER COLUMN value TYPE DOUBLE PRECISION,
ALTER COLUMN value SET DEFAULT '0.0000';
升级数据库表后,还请在/ui/conf/zabbix.conf.php中将$ DB ['DOUBLE_IEEE754']值设置或更新为true。
目录 返回
首页