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:
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
发表评论