zabbix4.0 mysql本地数据库迁移到腾讯云数据库

本文详细介绍了如何将Zabbix4.0的MySQL本地数据库迁移到腾讯云数据库,包括使用Navicat Premium、腾讯云自带工具以及Linux远程连接的方法,以及修改Zabbix的数据库连接配置,确保数据迁移后的顺利运行。
摘要由CSDN通过智能技术生成

转载来源 :zabbix4.0 mysql本地数据库迁移到腾讯云数据库 :
https://www.jianshu.com/p/19e40d853466

原环境:centos7.2 mysql5.7
目的环境:腾讯云 mysql5.7
工具:navicat premium

1.1.远程云数据库——使用工具navicat premium

使用navicat premium连接mysql时只有云数据库内网连接方式
首先在ssh标签页输入一个和云数据库可达的IP
在这里插入图片描述
再在常规下输入云主机的内网IP以及用户名密码即可
在这里插入图片描述
root登录后在navicat premium中执行sql语句,创建zabbix数据库以及zabbix用户并赋权
语句如下:

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@'10.%' identified by 'your passwd';
flush privileges;

1.2 远程云数据库——使用工具腾讯云自带工具

创建账户
点击云数据库——管理——数据库管理——账号管理,如下:
在这里插入图片描述
点击创建账号——填写完毕后确定即可
在这里插入图片描述
创建数据库
数据库登陆后点击“前往PMA”,输入sql语句执行即可
在这里插入图片描述

可参考 参考:https://cloud.tencent.com/document/product/236/8465

1.3 远程云数据库——使用linux远程连接

需要登录到和内网服务器同一网段的机器上(此云数据库没有外网IP)

登录

[root@VM_20_3_centos scripts]# mysql -h 10.50.xx.xx -u zabbix -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1749
Server version: 5.7.18-txsql_57_0918-log 20180918

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

导出
因为腾讯云的mysql开启GTID,所以导出的时候需要添加 --set-gtid-purged=OFF,如下

mysqldump -h 10.50.xx.xx -u zabbix -p --set-gtid-purged=OFF zabbix >test.sql

导入
将从原数据库导出的ZABBIX20190527.sql导入到云数据中(可参考3的导出方法)

mysql -h 10.50.xx.xx  -uzabbix -p zabbix < ZABBIX20190527.sql

可参考:

https://docs.lvrui.io/2016/10/28/%E5%BC%80%E5%90%AFGTID%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E5%AF%BC%E5%87%BA%E5%AF%BC%E5%85%A5%E5%BA%93%E7%9A%84%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/

2 修改zabbix的数据库连接

修改 /etc/zabbix/web/zabbix.conf.php文件

[root@VM_20_3_centos ~]# cat /etc/zabbix/web/zabbix.conf.php
<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = '10.50.xx.xx';
$DB['PORT']     = '3306';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'your passwd';

// Schema name. Used for IBM DB2 and PostgreSQL.
$DB['SCHEMA'] = '';

$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'wupao';

$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;

**
修改/etc/zabbix/zabbix_server.conf中的数据库配**

[root@VM_20_3_centos ~]# egrep -v '^$|#' /etc/zabbix/zabbix_server.conf
ListenPort=10051
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=10.50.xx.xx
DBName=zabbix
DBUser=zabbix
DBPassword=your passwd
DBPort=3306
StartTrappers=20
StartDiscoverers=90
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=30

重启zabbix_server服务,重启httpd服务

systemctl restart zabbix-server
systemctl restart httpd

3 将原数据库中数据通过mysqldump导出
原有数据库操作,执行mysqldump,将源数据库数据备份

#!/usr/bin/env bash
#author:chy
#date:20190416 
Date=`date +"%Y%m%d"`
LogFile=zabbix_sql.log
ZABBIXBegin=`date +"%Y-%m-%d %H:%M:%S"`
ZABBIXDumpFile=ZABBIX$Date.sql
ZABBIXGZDumpFile=ZABBIX$Date.sql.tar.gz
BakDir_ZABBIX=/data/backup/mysql/
PASSWD=your passwd
mysqldump -uzabbix -p$PASSWD -l zabbix >$BakDir_ZABBIX$ZABBIXDumpFile
cd $BakDir_ZABBIX
/usr/bin/tar czPvf $ZABBIXGZDumpFile $ZABBIXDumpFile
/usr/bin/rm -f $BakDir_ZABBIX$ZABBIXDumpFile
ZABBIXEnd=`date +"$%Y-%m-%d %H:%M:%S"`
echo zabbixbackup_start:$ZABBIXBegin end:$ZABBIXEnd $ZABBIXGZDumpFile >> $LogFile
##delete 300天之前的数据
find /data/backup/mysql/* -type f -mtime +300 |xargs rm -rf

4 zabbix 数据库分表

之前有对本地zabbix数据库做了分表操作,请参考之前的文章

https://www.jianshu.com/p/b6b5b5377c9b
将数据库迁移到云数据库后,需要修改相应的脚本
修改为远程连接到云数据库即可

cat  /data/scripts/zabbix_partitions.sh
#!/usr/bin/env bash
#author:chy
#date:20190527
DIR=/data/scripts
PARTBegin=`date +"%Y-%m-%d %H:%M:%S"`
mysql -h 10.50.xx.xx -uzabbix -pyour_paaswd zabbix -e"CALL partition_maintenance_all('zabbix')" &>>$DIR/partition.log&
PARTEnd=`date +"$%Y-%m-%d %H:%M:%S"`
echo zabbixMYSQL_part_start:$PARTBegin end:$PARTEnd >> $DIR/partitiona.log

crontab

#zabbix partition_maintenance
01 03 * * * /bin/bash /data/scripts/zabbix_partitions.sh

参考链接 :zabbix4.0 mysql本地数据库迁移到腾讯云数据库 :
https://www.jianshu.com/p/19e40d853466

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Zabbix 中监控 MySQL 数据库,需要进行以下步骤: 1. 安装 Zabbix Agent 在要监控的 MySQL 服务器上安装 Zabbix Agent。你可以从 Zabbix 官网下载适合你系统的安装包,或使用包管理器进行安装。 2. 安装 MySQL 监控插件 在 Zabbix Server 上安装 MySQL 监控插件。你可以从 Zabbix 官网下载适合你版本的插件。 3. 配置 MySQL 监控插件 在 Zabbix Server 上编辑插件配置文件(mysql.conf),配置 MySQL 数据库的连接信息和监控项。 例如: ``` UserParameter=mysql.ping, mysqladmin -uroot ping | grep -c alive UserParameter=mysql.version, mysql -V UserParameter=mysql.status[*], mysqladmin -uroot -p$1 status $2 | awk '{print $$NF}' UserParameter=mysql.size[*], mysql -uroot -p$1 -e 'SELECT table_schema "$2", Round(Sum(data_length + index_length) / 1024 / 1024, 2) "Size (MB)" FROM information_schema.tables WHERE table_schema="$2";' | grep -v Size UserParameter=mysql.qps, mysqladmin -uroot -p$1 status | cut -f9 -d':' | awk '{print $$1}' ``` 这些配置项允许 Zabbix Agent 在远程 MySQL 服务器上执行命令并获取数据。 4. 添加 MySQL 监控项 在 Zabbix Server 上添加 MySQL 数据库监控项。你可以通过 Zabbix Web 界面添加监控项,包括: - MySQL 数据库版本 - MySQL 数据库状态 - MySQL 数据库大小 - MySQL 数据库 QPS(每秒查询数) 5. 创建 MySQL 监控模板 在 Zabbix Web 界面上创建 MySQL 监控模板,并将监控项添加到模板中。 6. 将 MySQL 主机关联到监控模板 将要监控的 MySQL 主机关联到 MySQL 监控模板。 完成以上步骤后,你就可以在 Zabbix Web 界面上查看 MySQL 数据库的监控数据了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值