Zabbix+分布式数据库TiDB实现分布式数据库监控

1.TiDB简介
什么是TiDB

TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
TiDB优势
纯分布式架构,拥有良好的扩展性,支持弹性的扩缩容
支持SQL,对外暴露MySQL的网络协议,并兼容大多数MySQL的语法,在大多数场景下可以直接替换MySQL
默认支持高可用,在少数副本失效的情况下,数据库本身能够自动进行数据修复和故障转移,对业务透明
支持ACID事务,对于一些有强一致需求的场景友好
具有丰富的工具链生态,覆盖数据迁移、同步、备份等多种场景
TiDB架构
Zabbix+分布式数据库TiDB实现分布式数据库监控_第1张图片
2.实验环境
redhat7.6

节点                                                 安装服务

node1:172.25.33.1                        zabbix-server mariadb PD1,TiDB
node2:172.25.33.2                        tikv集群
node3:172.25.33.3                        tikv集群

3.node1环境搭建
zabbix下载(建议参考官方文档www.zabbix.com)

Install Zabbix repository
[root@node1 ~]rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
Install Zabbix server and agent
[root@node1 ~]yum install zabbix-server-mysql zabbix-agent

Zabbix+分布式数据库TiDB实现分布式数据库监控_第2张图片

安装 Zabbix frontend
aliyun.com镜像站
安装
centos-release-scl-2-3.el7.centos.noarch.rpm
centos-release-scl-rh-2-3.el7.centos.noarch.rpm
编辑配置文件 /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
...
enabled=1
...
Install Zabbix frontend packages
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

4.安装mysql数据库并初始化数据库

安装mysql数据库
aliyun.com镜像站
安装mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
解压
tar zxf mysql-5.7.33-1.el7.x86_64.rpm-bundle.tar
安装
yum install -y mysql-community-client-5.7.33-1.el7.x86_64.rpm mysql-community-common-5.7.33-1.el7.x86_64.rpm mysql-community-libs-5.7.33-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.33-1.el7.x86_64.rpm mysql-community-server-5.7.33-1.el7.x86_64.rpm 
设置mysql开机自启动并立即启动
systemctl enable --now mysqld

Zabbix+分布式数据库TiDB实现分布式数据库监控_第3张图片

初始化数据库

查看mysl初始密码
cat /var/log/mysql.log | grep A
mysql_secure_installation
输入初始密码
输入新密码

Zabbix+分布式数据库TiDB实现分布式数据库监控_第4张图片

创建初始数据库

在数据库主机上运行以下代码。
mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> quit;

Zabbix+分布式数据库TiDB实现分布式数据库监控_第5张图片

 导入初始架构和数据,系统将提示您输入新创建的密码

zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

为Zabbix server配置数据库 

编辑配置文件 /etc/zabbix/zabbix_server.conf

DBPassword=password

Zabbix+分布式数据库TiDB实现分布式数据库监控_第6张图片

 为Zabbix前端配置PHP

编辑配置文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai

Zabbix+分布式数据库TiDB实现分布式数据库监控_第7张图片

 启动Zabbix server和agent进程,并为它们设置开机自启:

systemctl enable --now zabbix-server zabbix-agent httpd rh-php72-php-fpm
配置Zabbix前端
连接到新安装的Zabbix前端: http://server_ip_or_name/zabbix
根据Zabbix文件里步骤操作: Installing frontend

5.node1安装配置TiDB

wget https://download.pingcap.org/tidb-latest-linux-amd64.tar.gz

node1开启PD并后台运行

[root@node1 ~]tar zxf tidb-latest-linux-amd64.tar.gz 
[root@node1 ~]cd tidb-v5.0.1-linux-amd64/
开启PD并后台运行
[root@node1 tidb-v5.0.1-linux-amd64]./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.33.1:2379" --peer-urls="http://172.25.33.1:2380" --initial-cluster="pd1=http://172.25.33.1:2380" --log-file=pd.log &
查看2379和2380端口是否开放
[root@node1 tidb-v5.0.1-linux-amd64]netstat -antlp | grep :2379
[root@node1 tidb-v5.0.1-linux-amd64]netstat -antlp | grep :2380

Zabbix+分布式数据库TiDB实现分布式数据库监控_第8张图片

6.解压并开启tikv(node2,node3)

[root@node2 ~]tar zxf tidb-latest-linux-amd64.tar.gz 
[root@node2 ~]cd tidb-v5.0.1-linux-amd64/
[root@node2 tidb-v5.0.1-linux-amd64]./bin/tikv-server --pd="172.25.33.1:2379" --addr="172.25.33.2:20160" --data-dir=tikv1 --log-file=tikv.log &
[root@node2 tidb-v5.0.1-linux-amd64]netstat -antlp | grep tikv
[root@node3 ~]tar zxf tidb-latest-linux-amd64.tar.gz 
[root@node3 ~]cd tidb-v5.0.1-linux-amd64/
[root@node3 tidb-v5.0.1-linux-amd64]./bin/tikv-server --pd="172.25.33.1:2379" --addr="172.25.33.3:20160" --data-dir=tikv1 --log-file=tikv.log &
[root@node3 tidb-v5.0.1-linux-amd64]netstat -antlp | grep tikv


Zabbix+分布式数据库TiDB实现分布式数据库监控_第9张图片
7.node1服务端开启zabbix及tidb

[root@node1 tidb-v5.0.1-linux-amd64]./bin/tidb-server &
[root@node1 tidb-v5.0.1-linux-amd64] netstat -antlp | grep tidb
[root@node1 tidb-v5.0.1-linux-amd64] netstat -antlp | grep 4000

Zabbix+分布式数据库TiDB实现分布式数据库监控_第10张图片

8.数据导入(创建TIDB)
数据库连接tidb

[root@node2 tidb-v5.0.1-linux-amd64]mysql -h 172.25.33.1 -P 4000 -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> CREATE USER 'zabbix'@'%' IDENTIFIED BY 'password';
mysql> grant all privileges on *.* to 'zabbix'@'%';

Zabbix+分布式数据库TiDB实现分布式数据库监控_第11张图片

给数据库导入数据

将之前mysql导入的zabbix库的数据倒出,此步要确定之前已经创建了zabbix数据库。
[root@node2 tidb-v5.0.1-linux-amd64]mysqldump -uroot -p zabbix >/mnt/zabbix.sql
将备份的数据库导入tidb的数据库中
[root@node1 mnt]# mysql -h 172.25.33.1 -P 4000 -uroot
MySQL [(none)]> use zabbix;
Database changed
MySQL [zabbix]> set tidb_batch_insert=1;
MySQL [zabbix]> source /mnt/zabbix.sql;

Zabbix+分布式数据库TiDB实现分布式数据库监控_第12张图片

9.node1修改配置文件

[root@node1 ~]vim /etc/zabbix/zabbix_server.conf 
DBPort=4000
[root@node1 ~] cd /etc/zabbix/web/
[root@node1 ~]vim zabbix.conf.php
$DB['TYPE']                             = 'MYSQL';
$DB['SERVER']                   = '172.25.33.1';
$DB['PORT']                             = '4000';
$DB['DATABASE']                 = 'zabbix';
$DB['USER']                             = 'zabbix';
$DB['PASSWORD']                 = 'password';

重启服务
[root@node1 ~]systemctl restart zabbix-server
[root@node1 ~]systemctl restart zabbix-agent

Zabbix+分布式数据库TiDB实现分布式数据库监控_第13张图片
Zabbix+分布式数据库TiDB实现分布式数据库监控_第14张图片
Zabbix+分布式数据库TiDB实现分布式数据库监控_第15张图片

8.浏览器访问进行测试

你可能感兴趣的:(数据库,分布式)