1、 升级前必做的事情

1.升级之前一定要做数据库的备份,万一升级失败还能做回滚

2.升级之前在页面上关闭所有的动作,防止升级过程中触发一些非正常问题造成不必要的告警通知

 

2、 以下操作在本地环境进行,以防对现有zabbix环境的破坏 ###

mkdir /data/

cd /data/

wget -c https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.1.tar.gz

tar xf zabbix-6.0.1.tar.gz

cd zabbix-6.0.1/

./configure --prefix=/data/zabbix-server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --with-unixodbc && make && make install

/data/zabbix-server/sbin/zabbix_server --version #返回信息如下

zabbix_server (Zabbix) 6.0.1

# 拷贝需要升级的资源到zabbix server上面

scp /data/zabbix-server/sbin/zabbix_server root@zabbix_server_ip:/tmp/

scp -r /data/zabbix-6.0.1/ui root@zabbix_server_ip:/tmp/

 

3、 以下操作在zabbix server上进行

cp /data/zabbix-server/sbin/zabbix_server /data/zabbix-server/sbin/zabbix_server.bak.5.2.6

mkdir -p /data/zabbix-6.0.1/

mv /tmp/ui /data/zabbix-6.0.1/

### 以下操作在zabbix server上进行:修改nginx之前

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name localhost;

root /data/zabbix-ui-5.2.6/;

index index.php;

location ~ .*\.php$ {

fastcgi_read_timeout 300;

include fastcgi_params;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

}

### 以下操作在zabbix server上进行:修改nginx后

server {

listen 80 default_server;

listen [::]:80 default_server;

server_name localhost;

root /data/zabbix-6.0.1/ui/;

index index.php;

location ~ .*\.php$ {

fastcgi_read_timeout 300;

include fastcgi_params;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

}

}

nginx -t

nginx -s reload

systemctl restart zabbix_server.service

 

升级成功的日志

26781:20220303:110508.325 Starting Zabbix Server. Zabbix 6.0.1 (revision a80cb13868).

26781:20220303:110508.325 ****** Enabled features ******

26781:20220303:110508.325 SNMP monitoring: YES

26781:20220303:110508.325 IPMI monitoring: NO

26781:20220303:110508.325 Web monitoring: YES

26781:20220303:110508.326 VMware monitoring: YES

26781:20220303:110508.326 SMTP authentication: YES

26781:20220303:110508.326 ODBC: YES

26781:20220303:110508.326 SSH support: NO

26781:20220303:110508.326 IPv6 support: NO

26781:20220303:110508.326 TLS support: NO

26781:20220303:110508.326 ******************************

26781:20220303:110508.326 using configuration file: /usr/local/zabbix/zabbix-server/etc/zabbix_server.conf

26781:20220303:110508.359

26781:20220303:110508.359 Warning! Unsupported MySQL database server version (5.07.34)

26781:20220303:110508.359 Should be at least (8.00.0)

26781:20220303:110508.359 Use of supported database version is highly recommended.

26781:20220303:110508.359

26781:20220303:110508.361 current database version (mandatory/optional): 06000000/06000000

26781:20220303:110508.361 required mandatory version: 06000000

26781:20220303:110508.363 database could be upgraded to use primary keys in history tables

26782:20220303:110508.381 starting HA manager

26782:20220303:110508.400 HA manager started in active mode

26781:20220303:110508.402 server #0 started [main process]

26783:20220303:110508.402 server #1 started [service manager #1]

26784:20220303:110508.403 server #2 started [configuration syncer #1]

26784:20220303:110515.363 slow query: 6.329295 sec, "select pp.item_preprocid,pp.itemid,pp.type,pp.params,pp.step,h.hostid,pp.error_handler,pp.error_handler_params from item_preproc pp,items i,hosts h where pp.itemid=i.itemid and i.hostid=h.hostid and (h.proxy_hostid is null or i.type in (5,15,18)) and h.status in (0,1) and i.flags<>2"

26790:20220303:110517.111 server #4 started [alerter #1]

26791:20220303:110517.112 server #5 started [alerter #2]

 

 

 

 

4、升级过程遇到的问题:问题处理完 重启zabbix server也就是执行命令

问题1:报错日志如下

22917:20220302:201523.838 Unable to start Zabbix server due to unsupported MySQL database server version (5.07.34)

22917:20220302:201523.838 Must be at least (8.00.0)

22917:20220302:201523.838 Use of supported database version is highly recommended.

22917:20220302:201523.838 Override by setting AllowUnsupportedDBVersions=1 in Zabbix server configuration file at your own risk.

问题1:解决方法

根据提示分析是因为zabbix 6.0.1对数据库的版本有要求,但是可以通过设置跳过检查

执行下面的命令添加配置跳过检查

echo "AllowUnsupportedDBVersions=1" >> zabbix_server.conf

重启zabbix serversystemctl restart zabbix_server.service

问题2:报错日志如下

23026:20220302:201746.160 Warning! Unsupported MySQL database server version (5.07.34)

23026:20220302:201746.160 Should be at least (8.00.0)

23026:20220302:201746.160 Use of supported database version is highly recommended.

23026:20220302:201746.160

23026:20220302:201746.162 current database version (mandatory/optional): 05030057/05030057

23026:20220302:201746.162 required mandatory version: 06000000

23026:20220302:201746.162 starting automatic database upgrade

23026:20220302:201746.163 [Z3005] query failed: [1060] Duplicate column name 'scope' [alter table `scripts` add `scope` integer default '1' not null]

23026:20220302:201746.163 database upgrade failed

问题2:解决方法,如果下面的insert执行失败可以忽略

登录zabbix server数据库执行下面的命令

use zabbix;

CREATE TABLE `scripts` (

`scriptid` bigint unsigned NOT NULL,

`name` varchar(255) DEFAULT '' NOT NULL,

`command` varchar(255) DEFAULT '' NOT NULL,

`host_access` integer DEFAULT '2' NOT NULL,

`usrgrpid` bigint unsigned NULL,

`groupid` bigint unsigned NULL,

`description` text NOT NULL,

`confirmation` varchar(255) DEFAULT '' NOT NULL,

`type` integer DEFAULT '0' NOT NULL,

`execute_on` integer DEFAULT '2' NOT NULL,

PRIMARY KEY (scriptid)

) ENGINE=InnoDB;

CREATE INDEX `scripts_1` ON `scripts` (`usrgrpid`);

CREATE INDEX `scripts_2` ON `scripts` (`groupid`);

CREATE UNIQUE INDEX `scripts_3` ON `scripts` (`name`);

ALTER TABLE `scripts` ADD CONSTRAINT `c_scripts_1` FOREIGN KEY (`usrgrpid`) REFERENCES `usrgrp` (`usrgrpid`);

ALTER TABLE `scripts` ADD CONSTRAINT `c_scripts_2` FOREIGN KEY (`groupid`) REFERENCES `hstgrp` (`groupid`);

INSERT INTO `scripts` (`scriptid`,`name`,`command`,`host_access`,`usrgrpid`,`groupid`,`description`,`confirmation`,`type`,`execute_on`) values ('1','Ping','ping -c 3 {HOST.CONN}; case $? in [01]) true;; *) false;; esac','2',NULL,NULL,'','','0','2');

INSERT INTO `scripts` (`scriptid`,`name`,`command`,`host_access`,`usrgrpid`,`groupid`,`description`,`confirmation`,`type`,`execute_on`) values ('2','Traceroute','/usr/bin/traceroute {HOST.CONN}','2',NULL,NULL,'','','0','2');

INSERT INTO `scripts` (`scriptid`,`name`,`command`,`host_access`,`usrgrpid`,`groupid`,`description`,`confirmation`,`type`,`execute_on`) values ('3','Detect operating system','sudo /usr/bin/nmap -O {HOST.CONN}','2','7',NULL,'','','0','2');

 

问题3:报错日志如下

28099:20220302:202822.509 using configuration file: /usr/local/zabbix/zabbix-server/etc/zabbix_server.conf

28099:20220302:202822.517 current database version (mandatory/optional): 04000000/05030057

28099:20220302:202822.517 required mandatory version: 05020000

28099:20220302:202822.542 server #0 started [main process]

28101:20220302:202822.543 server #1 started [configuration syncer #1]

28101:20220302:202822.545 [Z3005] query failed: [1054] Unknown column 'compression_availability' in 'field list' [select discovery_groupid,snmptrap_logging,severity_name_0,severity_name_1,severity_name_2,severity_name_3,severity_name_4,severity_name_5,hk_events_mode,hk_events_trigger,hk_events_internal,hk_events_discovery,hk_events_autoreg,hk_services_mode,hk_services,hk_audit_mode,hk_audit,hk_sessions_mode,hk_sessions,hk_history_mode,hk_history_global,hk_history,hk_trends_mode,hk_trends_global,hk_trends,default_inventory_mode,db_extension,autoreg_tls_accept,compression_status,compression_availability,compress_older,instanceid,default_timezone from config order by configid]

zabbix_server [28101]: ERROR [file and function: , revision:798506596c] Something impossible has just happened.

28101:20220302:202822.545 === Backtrace: ===

问题3:解决方法

登录zabbix server数据库执行下面的命令

use zabbix;

rename table config to config_bak;

CREATE TABLE `config` (

`configid` bigint unsigned NOT NULL,

`work_period` varchar(255) DEFAULT '1-5,09:00-18:00' NOT NULL,

`alert_usrgrpid` bigint unsigned NULL,

`default_theme` varchar(128) DEFAULT 'blue-theme' NOT NULL,

`authentication_type` integer DEFAULT '0' NOT NULL,

`ldap_host` varchar(255) DEFAULT '' NOT NULL,

`ldap_port` integer DEFAULT 389 NOT NULL,

`ldap_base_dn` varchar(255) DEFAULT '' NOT NULL,

`ldap_bind_dn` varchar(255) DEFAULT '' NOT NULL,

`ldap_bind_password` varchar(128) DEFAULT '' NOT NULL,

`ldap_search_attribute` varchar(128) DEFAULT '' NOT NULL,

`discovery_groupid` bigint unsigned NOT NULL,

`max_in_table` integer DEFAULT '50' NOT NULL,

`search_limit` integer DEFAULT '1000' NOT NULL,

`severity_color_0` varchar(6) DEFAULT '97AAB3' NOT NULL,

`severity_color_1` varchar(6) DEFAULT '7499FF' NOT NULL,

`severity_color_2` varchar(6) DEFAULT 'FFC859' NOT NULL,

`severity_color_3` varchar(6) DEFAULT 'FFA059' NOT NULL,

`severity_color_4` varchar(6) DEFAULT 'E97659' NOT NULL,

`severity_color_5` varchar(6) DEFAULT 'E45959' NOT NULL,

`severity_name_0` varchar(32) DEFAULT 'Not classified' NOT NULL,

`severity_name_1` varchar(32) DEFAULT 'Information' NOT NULL,

`severity_name_2` varchar(32) DEFAULT 'Warning' NOT NULL,

`severity_name_3` varchar(32) DEFAULT 'Average' NOT NULL,

`severity_name_4` varchar(32) DEFAULT 'High' NOT NULL,

`severity_name_5` varchar(32) DEFAULT 'Disaster' NOT NULL,

`ok_period` varchar(32) DEFAULT '5m' NOT NULL,

`blink_period` varchar(32) DEFAULT '2m' NOT NULL,

`problem_unack_color` varchar(6) DEFAULT 'CC0000' NOT NULL,

`problem_ack_color` varchar(6) DEFAULT 'CC0000' NOT NULL,

`ok_unack_color` varchar(6) DEFAULT '009900' NOT NULL,

`ok_ack_color` varchar(6) DEFAULT '009900' NOT NULL,

`problem_unack_style` integer DEFAULT '1' NOT NULL,

`problem_ack_style` integer DEFAULT '1' NOT NULL,

`ok_unack_style` integer DEFAULT '1' NOT NULL,

`ok_ack_style` integer DEFAULT '1' NOT NULL,

`snmptrap_logging` integer DEFAULT '1' NOT NULL,

`server_check_interval` integer DEFAULT '10' NOT NULL,

`hk_events_mode` integer DEFAULT '1' NOT NULL,

`hk_events_trigger` varchar(32) DEFAULT '365d' NOT NULL,

`hk_events_internal` varchar(32) DEFAULT '1d' NOT NULL,

`hk_events_discovery` varchar(32) DEFAULT '1d' NOT NULL,

`hk_events_autoreg` varchar(32) DEFAULT '1d' NOT NULL,

`hk_services_mode` integer DEFAULT '1' NOT NULL,

`hk_services` varchar(32) DEFAULT '365d' NOT NULL,

`hk_audit_mode` integer DEFAULT '1' NOT NULL,

`hk_audit` varchar(32) DEFAULT '365d' NOT NULL,

`hk_sessions_mode` integer DEFAULT '1' NOT NULL,

`hk_sessions` varchar(32) DEFAULT '365d' NOT NULL,

`hk_history_mode` integer DEFAULT '1' NOT NULL,

`hk_history_global` integer DEFAULT '0' NOT NULL,

`hk_history` varchar(32) DEFAULT '90d' NOT NULL,

`hk_trends_mode` integer DEFAULT '1' NOT NULL,

`hk_trends_global` integer DEFAULT '0' NOT NULL,

`hk_trends` varchar(32) DEFAULT '365d' NOT NULL,

`default_inventory_mode` integer DEFAULT '-1' NOT NULL,

`custom_color` integer DEFAULT '0' NOT NULL,

`http_auth_enabled` integer DEFAULT '0' NOT NULL,

`http_login_form` integer DEFAULT '0' NOT NULL,

`http_strip_domains` varchar(2048) DEFAULT '' NOT NULL,

`http_case_sensitive` integer DEFAULT '1' NOT NULL,

`ldap_configured` integer DEFAULT '0' NOT NULL,

`ldap_case_sensitive` integer DEFAULT '1' NOT NULL,

`db_extension` varchar(32) DEFAULT '' NOT NULL,

`autoreg_tls_accept` integer DEFAULT '1' NOT NULL,

`compression_status` integer DEFAULT '0' NOT NULL,

`compression_availability` integer DEFAULT '0' NOT NULL,

`compress_older` varchar(32) DEFAULT '7d' NOT NULL,

`instanceid` varchar(32) DEFAULT '' NOT NULL,

`saml_auth_enabled` integer DEFAULT '0' NOT NULL,

`saml_idp_entityid` varchar(1024) DEFAULT '' NOT NULL,

`saml_sso_url` varchar(2048) DEFAULT '' NOT NULL,

`saml_slo_url` varchar(2048) DEFAULT '' NOT NULL,

`saml_username_attribute` varchar(128) DEFAULT '' NOT NULL,

`saml_sp_entityid` varchar(1024) DEFAULT '' NOT NULL,

`saml_nameid_format` varchar(2048) DEFAULT '' NOT NULL,

`saml_sign_messages` integer DEFAULT '0' NOT NULL,

`saml_sign_assertions` integer DEFAULT '0' NOT NULL,

`saml_sign_authn_requests` integer DEFAULT '0' NOT NULL,

`saml_sign_logout_requests` integer DEFAULT '0' NOT NULL,

`saml_sign_logout_responses` integer DEFAULT '0' NOT NULL,

`saml_encrypt_nameid` integer DEFAULT '0' NOT NULL,

`saml_encrypt_assertions` integer DEFAULT '0' NOT NULL,

`saml_case_sensitive` integer DEFAULT '0' NOT NULL,

`default_lang` varchar(5) DEFAULT 'en_GB' NOT NULL,

`default_timezone` varchar(50) DEFAULT 'system' NOT NULL,

`login_attempts` integer DEFAULT '5' NOT NULL,

`login_block` varchar(32) DEFAULT '30s' NOT NULL,

`show_technical_errors` integer DEFAULT '0' NOT NULL,

`validate_uri_schemes` integer DEFAULT '1' NOT NULL,

`uri_valid_schemes` varchar(255) DEFAULT 'http,https,ftp,file,mailto,tel,ssh' NOT NULL,

`x_frame_options` varchar(255) DEFAULT 'SAMEORIGIN' NOT NULL,

`iframe_sandboxing_enabled` integer DEFAULT '1' NOT NULL,

`iframe_sandboxing_exceptions` varchar(255) DEFAULT '' NOT NULL,

`max_overview_table_size` integer DEFAULT '50' NOT NULL,

`history_period` varchar(32) DEFAULT '24h' NOT NULL,

`period_default` varchar(32) DEFAULT '1h' NOT NULL,

`max_period` varchar(32) DEFAULT '2y' NOT NULL,

`socket_timeout` varchar(32) DEFAULT '3s' NOT NULL,

`connect_timeout` varchar(32) DEFAULT '3s' NOT NULL,

`media_type_test_timeout` varchar(32) DEFAULT '65s' NOT NULL,

`script_timeout` varchar(32) DEFAULT '60s' NOT NULL,

`item_test_timeout` varchar(32) DEFAULT '60s' NOT NULL,

`session_key` varchar(32) DEFAULT '' NOT NULL,

PRIMARY KEY (configid)

) ENGINE=InnoDB;

CREATE INDEX `config_1` ON `config` (`alert_usrgrpid`);

CREATE INDEX `config_2` ON `config` (`discovery_groupid`);

 

 

问题4:报错日志如下

18175:20220303:101206.481 current database version (mandatory/optional): 06000000/06000000

18175:20220303:101206.481 required mandatory version: 06000000

18175:20220303:101206.483 database could be upgraded to use primary keys in history tables

18175:20220303:101206.486 cannot read instance id from database

问题4:解决方法

登录数据库,执行下面的命令

use zabbix;INSERT INTO `config` (`configid`,`work_period`,`alert_usrgrpid`,`discovery_groupid`,`dbversion_status`) values ('1','1-5,09:00-18:00','7','5','5.7.34');

 

 

 

 

以上sql都是用下面的方式找到的

grep scripts zabbix-5.2.6/database/mysql/*sql

 

 

 

 

查看原文