zabbix2.4.5迁移到zabbix3.0

zabbix2.4.5迁移到zabbix3.0

参考文档

http://qicheng0211.blog.51cto.com/3958621/1744603

起因

zabbix 2.4.5数据库mysql突然死掉了,查找mysql数据库日志发现保存数据磁盘读写错误,原来那是台r410的老机,后来索性换了1台R610的稍微好的机子,现在机器都换了打算zabbix版本也

一块儿换掉,开启zabbix3.0模式,下面是主要步骤,数据库这块儿是这次才发现有个简单方法的。

0,首先要有原来数据库备份

硬件服务器也升级了 ,只有最近一份数据库全部备份,发现数据太大,如果全部导入费时,查找各种资料发现没有导入时忽略某些表的方法,后来想到手动对sql数据表进行过滤。

grep -v  'INSERT INTO `history_uint` VALUES' zabbix.sql >zabbix.nohistory.sql

grep -v  'INSERT INTO `history` VALUES' zabbix.nohistory.sql >zabbix.nohistory0.sql

如果想导入历史趋势,后面两步可以不需要,我的需要保留

grep -v  'INSERT INTO `trends_uint` VALUES' zabbix.nohistory0.sql > zabbix.nohistory1.sql

grep -v  'INSERT INTO `trends` VALUES' zabbix.nohistory1.sql > zabbix.nohistory2.sql

后来我修改了备份方法,由原来的全部备份到备份时忽略历史数据。

mysqldump -uroot -p'pasword' zabbix  --ignore-table=zabbix.history_uint --ignore-table=zabbix.history  >zabbix.nohistory.sql

1,LAMP或者LNMP环境

网上方法很多,就是一点,mysql使用innodb引擎 ,版本5.6或以上,php版本5.6或以上,apache或者nginx根据个人爱好。我的都是用rpm包,数据用的mariadb。

mariadb源

cat /etc/yum.repos.d/mariadb.repo 

# http://mariadb.org/mariadb/repositories/  

[mariadb]  

name = MariaDB  

baseurl = http://yum.mariadb.org/5.5/centos6-amd64  

gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB  

gpgcheck=1  

安装

yum -y install MariaDB-client MariaDB-server MariaDB-devel

2,zabbix3.0源码包还是rpm也是根据个人爱好。

# 升级centos6的zabbix官方yum源(官方yum源没有提供CentOS6版本的zabbix3.0 server)

rpm -Uvh  http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

# 下载itnihao打包好的CentOS6版本的zabbix3.0 rpm包,感谢itnihao奉献

mkdir /data

cd /data

yum install git createrepo -y

git clone https://github.com/zabbixcn/zabbix3.0-rpm.git

# 创建zabbix3.0本地yum源

createrepo /data/zabbix3.0-rpm/RPMS

cat > /etc/yum.repos.d/zabbix3.0.repo << 'EOF'

[zabbix3.0]

name=zabbix3.0 itnihao

baseurl=file:///data/zabbix3.0-rpm/RPMS

enabled=0

gpgcheck=0

EOF

# 重建yum缓存

yum clean all

yum makecache

# yum安装zabbix3.0相关服务(注意:要禁止epel源)

yum --disablerepo=epel --enablerepo=zabbix3.0 install zabbix-server-mysql zabbix-agent zabbix-get zabbix-sender zabbix-web zabbix-web-mysql zabbix-release

3,导入数据

mysql -u root password 'password'  < zabbix.nohistory0.sql

4,启动zabbix-server

service zabbix-server start

此时会自动更新zabbix数据库

5,设置web端

这里主要是有个字体,需要注意下,默认打开图形乱码,下载简体字。上传,修改代码。

vim /usr/share/zabbix/include/defines.inc.php 

:%s/graphfont/DejaVuSans/g   

另外注意下,3.0版本的zabbix-server配置文件和2.4.5的有些不一样,我这里参考3.0的默认修改,结果如下:

LogFile=/var/log/zabbix/zabbix_server.log

LogFileSize=0

PidFile=/var/run/zabbix/zabbix_server.pid

DBHost=localhost

DBName=zabbix

DBUser=zabbix

DBPassword=password

StartPollers=160

StartIPMIPollers=1

StartPollersUnreachable=80

StartTrappers=20

StartPingers=100

StartDiscoverers=120

StartHTTPPollers=2

StartSNMPTrapper=1

CacheSize=1024M

StartDBSyncers=16

TrendCacheSize=1024M

TrapperTimeout=30

FpingLocation=/usr/sbin/fping

DBSocket=/var/lib/mysql/mysql.sock

SNMPTrapperFile=/var/log/snmptrap/snmptrap.log

Timeout=10

AlertScriptsPath=/usr/lib/zabbix/alertscripts

ExternalScripts=/usr/lib/zabbix/externalscripts

LogSlowQueries=3000

补充:

后来又升级一台,备份数据库时没有备份history,history_unit这两个数据库,也没先导入架构表,直接导入趋势数据,所有操作完后,查看zabbix-server.log发现数据不能插入历史数据表。后处理如下:

CREATE TABLE `history` (

        `itemid`                 bigint unsigned                           NOT NULL,

        `clock`                  integer         DEFAULT '0'               NOT NULL,

        `value`                  double(16,4)    DEFAULT '0.0000'          NOT NULL,

        `ns`                     integer         DEFAULT '0'               NOT NULL

) ENGINE=InnoDB;

CREATE INDEX `history_1` ON `history` (`itemid`,`clock`);

CREATE TABLE `history_uint` (

        `itemid`                 bigint unsigned                           NOT NULL,

        `clock`                  integer         DEFAULT '0'               NOT NULL,

        `value`                  bigint unsigned DEFAULT '0'               NOT NULL,

        `ns`                     integer         DEFAULT '0'               NOT NULL

) ENGINE=InnoDB;

CREATE INDEX `history_uint_1` ON `history_uint` (`itemid`,`clock`);

就是新建这两个表,这样就不需要再重新导入一次数据了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逸鹏说道

SQL Server 执行计划缓存

概述 了解执行计划对数据库性能分析很重要,其中涉及到了语句性能分析与存储,这也是写这篇文章的目的,在了解执行计划之前先要了解一些基础知识,所以文章前面会讲一些...

3929
来自专栏用户画像

mysql 模拟试题一

  3.SQL语言的数据操纵语句包括 SELECT,INSERT,UPDATE和 DELETE, 最重要的,也是使用最频繁的语句是__A__。 

1274
来自专栏我和PYTHON有个约会

数据库连接引擎那点事儿

天长,地久。天地之所以能长且久者,以其不自生也,故能长生。是以圣人后其身而身先,外其身而身存,非以其无私邪?故能成其私。——老子

882
来自专栏冷冷

MySQL 解决外键约束不能删除数据的问题

第一种方法是使用MySQL 官方提供的文档方法             这个禁用约束: 运行这个命令 SET FOREIGN_KEY_CHECKS=0; 之后数...

22610
来自专栏农夫安全

注入学习之sqli-labs-3(第二关)

前言 本来是想一个个关卡讲下去,后来自己测试了一下,发现第二、三、四这三关跟第一关,起始原理是一样的,只不过是单引号,双引号,带不带括号的区别,只要我们带入的语...

3396
来自专栏哎_小羊

私信基本功能数据库设计

上一篇写了基于resin4.0+websocket实现私信功能服务端消息推送文章,趁热打铁,在写一篇关于私信功能的数据库设计文章,非代码篇,希望想对第一次做设计...

4227
来自专栏杨建荣的学习笔记

MySQL query rewrite插件简单测试

在机场继续努力一把,学习了下MySQL query rewrite这个插件,感觉还不错,j简答测试了下,已经找到Oracle FGA的影子了。

1782
来自专栏.NET技术

经典SQL语句大全之数据开发

1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Str...

1745
来自专栏cloudskyme

oracle10g分区的几种类型

为了简化数据库大表的管理,例如在数据仓库中一般都是TB级的数量级.ORACLE8以后推出了分区选项.分区将表分离在若于不同的表空间上,用分而治之的方法来支撑元限...

35111
来自专栏菩提树下的杨过

mysql 学习笔记

以前主要使用oracle做数据库,现在换成mysql了,发现不一样的地方还是挺多的,记录一下: 一、centos上的yum install方式安装  完全卸...

2157

扫码关注云+社区

领取腾讯云代金券