6.企业运维-----zabbix(数据库替换为TIDB)

一.Tidb的简单介绍

1.Tidb是什么

  • TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。TiDB 的目标是为 OLTP (Online Transactional Processing) 和 OLAP (Online Analytical Processing) 场景提供一站式的解决方案。

2.整体架构

  • TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件
    在这里插入图片描述

(1)Tidb Server

TiDB Server 负责接收 SQL 请求,处理 SQL 相关的逻辑,并通过 PD 找到存储计算所需数据的 TiKV 地址,与 TiKV 交互获取数据,最终返回结果。TiDB Server 是无状态的,其本身并不存储数据,只负责计算,可以无限水平扩展,可以通过负载均衡组件(如LVS、HAProxy 或 F5)对外提供统一的接入地址。

(2)PD Server

Placement Driver (简称 PD) 是整个集群的管理模块,其主要工作有三个:一是存储集群的元信息(某个 Key 存储在哪个 TiKV 节点);二是对 TiKV 集群进行调度和负载均衡(如数据的迁移、Raft group leader 的迁移等);三是分配全局唯一且递增的事务 ID。

PD 通过 Raft 协议保证数据的安全性。Raft 的 leader server 负责处理所有操作,其余的 PD server 仅用于保证高可用。
建议部署奇数个 PD 节点

(3)TiKV Server

TiKV Server 负责存储数据,从外部看 TiKV 是一个分布式的提供事务的 Key-Value 存储引擎。存储数据的基本单位是 Region,每个 Region 负责存储一个 Key Range(从 StartKey 到 EndKey 的左闭右开区间)的数据,每个 TiKV 节点会负责多个 Region。TiKV 使用 Raft 协议做复制,保持数据的一致性和容灾。副本以 Region 为单位进行管理,不同节点上的多个 Region 构成一个 Raft Group,互为副本。数据在多个 TiKV 之间的负载均衡由 PD 调度,这里也是以 Region 为单位进行调度

(4)TiSpark

TiSpark 作为 TiDB 中解决用户复杂 OLAP 需求的主要组件,将 Spark SQL 直接运行在 TiDB 存储层上,同时融合 TiKV 分布式集群的优势,并融入大数据社区生态。至此,TiDB 可以通过一套系统,同时支持 OLTP 与 OLAP,免除用户数据同步的烦恼。

3.实验环境

四台虚拟机

节点机器所需服务
server1: 172.25.15.1zabbix-server mariadb PD1,TiDB
server2: 172.25.15.4tikv集群
server3: 172.25.15.5tikv集群
server4: 172.25.15.6tikv集群

二、server1主机环境搭建

1.zabbix-server服务提前搭建(详细参考《4.企业运维-----Zaibbzx监控》)

成功启动
在这里插入图片描述

2.mariadb提前部署

[root@server1 ~]# mysql -pwestos
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2949
Server version: 5.5.60-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
[root@server1 ~]# systemctl stop mariadb		#关闭

在这里插入图片描述
成功登陆

3.安装配置TIDB

下载安装包安装并启用

[root@server1 ~]# ls
percona-zabbix-templates-1.1.8-1.noarch.rpm  tidb-latest-linux-amd64.tar.gz
schema.sql.gz                                zabbix.api
[root@server1 ~]# tar -zxf tidb-latest-linux-amd64.tar.gz 
[root@server1 ~]# ls
percona-zabbix-templates-1.1.8-1.noarch.rpm  tidb-latest-linux-amd64.tar.gz
schema.sql.gz                                zabbix.api
tidb-latest-linux-amd64
[root@server1 ~]# cd tidb-latest-linux-amd64/
[root@server1 tidb-latest-linux-amd64]# ls
bin
[root@server1 tidb-latest-linux-amd64]# ./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.15.1:2379" --peer-urls="http://172.25.15.1:2380" --initial-cluster="pd1=http://172.25.15.1:2380" --log-file=pd.log &	#开启PD并后台运行
[1] 8880
[root@server1 tidb-latest-linux-amd64]# 2021/07/15 03:06:05 systime_mon.go:11: [info] start system time monitor 

##查看2379与2380端口是否开放
[root@server1 tidb-latest-linux-amd64]# netstat -antlp | grep :2379
tcp        0      0 172.25.15.1:2379        0.0.0.0:*               LISTEN      8880/./bin/pd-serve 
tcp        0      0 172.25.15.1:36048       172.25.15.1:2379        ESTABLISHED 8880/./bin/pd-serve 
tcp        0      0 172.25.15.1:36044       172.25.15.1:2379        ESTABLISHED 8880/./bin/pd-serve 
tcp        0      0 172.25.15.1:2379        172.25.15.1:36048       ESTABLISHED 8880/./bin/pd-serve 
tcp        0      0 172.25.15.1:2379        172.25.15.1:36044       ESTABLISHED 8880/./bin/pd-serve 
[root@server1 tidb-latest-linux-amd64]# netstat -antlp | grep :2380
tcp        0      0 172.25.15.1:2380        0.0.0.0:*               LISTEN      8880/./bin/pd-serve 
[root@server1 tidb-latest-linux-amd64]# 

在这里插入图片描述
在这里插入图片描述

三、解压并开启tikv(server4、5、6)

1.server4配置

[root@server4 ~]# ls
tidb-latest-linux-amd64.tar.gz
[root@server4 ~]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server4 ~]# cd tidb-latest-linux-amd64
[root@server4 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.15.1:2379" --addr="172.25.15.4:20160" --data-dir=tikv1 --log-file=tikv.log &	#启用TIKV
[1] 3829
[root@server4 tidb-latest-linux-amd64]# netstat -antlp

在这里插入图片描述
在这里插入图片描述

2.server5配置

[root@server5 ~]# ls
tidb-latest-linux-amd64.tar.gz
[root@server5 ~]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server5 ~]# cd tidb-latest-linux-amd64
[root@server5 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.15.1:2379" --addr="172.25.15.5:20160" --data-dir=tikv1 --log-file=tikv.log &
[1] 23184
[root@server5 tidb-latest-linux-amd64]# netstat -antlp | grep tikv
tcp6       0      0 172.25.15.5:20160       :::*                    LISTEN      23184/./bin/tikv-se 
tcp6       0      0 172.25.15.5:20160       172.25.15.4:52144       ESTABLISHED 23184/./bin/tikv-se 
tcp6       0      0 172.25.15.5:45374       172.25.15.1:2379        ESTABLISHED 23184/./bin/tikv-se 
tcp6       0      0 172.25.15.5:48480       172.25.15.4:20160       ESTABLISHED 23184/./bin/tikv-se 

在这里插入图片描述

3.server6配置

[root@server6 ~]# ls
tidb-latest-linux-amd64.tar.gz
[root@server6 ~]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server6 ~]# cd tidb-latest-linux-amd64
[root@server6 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.15.1:2379" --addr="172.25.15.6:20160" --data-dir=tikv1 --log-file=tikv.log &
[1] 13138
[root@server6 tidb-latest-linux-amd64]# netstat -antlp | grep tikv
tcp6       0      0 172.25.15.6:20160       :::*                    LISTEN      13138/./bin/tikv-se 
tcp6       0      0 172.25.15.6:57372       172.25.15.1:2379        ESTABLISHED 13138/./bin/tikv-se 
tcp6       0      0 172.25.15.6:57000       172.25.15.4:20160       ESTABLISHED 13138/./bin/tikv-se 
tcp6       0      0 172.25.15.6:20160       172.25.15.4:51062       ESTABLISHED 13138/./bin/tikv-se 
[root@server6 tidb-latest-linux-amd64]# 

在这里插入图片描述

四、server1服务端开启zabbix及tidb

[root@server1 tidb-latest-linux-amd64]# ./bin/tidb-server  ##开启时间较为缓慢,需要先关闭mariadb
[root@server1 tidb-latest-linux-amd64]# ./bin/tidb-server &  ##可以打入后台运行
[2] 2834
[root@server1 tidb-latest-linux-amd64]# ps ax|grep tidb
15295 ?        Sl     0:00 ./bin/tidb-server
16726 pts/1    S+     0:00 grep --color=auto tidb

#查看端口4000是否开启
[root@server1 tidb-latest-linux-amd64]# netstat -antlp | grep 4000
tcp6       0      0 :::4000                 :::*                    LISTEN      15295/./bin/tidb-se 
[root@server1 tidb-latest-linux-amd64]# 

在这里插入图片描述
启动顺序为PD-tikv-tidb(顺序很重要)启动时选择后台启动,避免前台失效后程序自动退出

五、数据导入(创建TIDB)

1.数据库连接tidb

[root@server1 tidb-latest-linux-amd64]# mysql -h 172.25.15.1 -P 4000 -uroot ##数据库通过4000端口连接tidb,连接成功
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.7.1-TiDB-0.9.0 MySQL Community Server (Apache License 2.0)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin;	 ##创建数据库
Query OK, 0 rows affected (0.00 sec)

MySQL [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by 'westos';	##用户授权,用户zabbix要提前创建好,否则会报错
Query OK, 1 row affected (0.00 sec)
MySQL [(none)]> 

在这里插入图片描述

2.给数据库中导入数据

[root@server1 ~]# cd /usr/share/doc/zabbix-server-mysql-4.0.5/
[root@server1 zabbix-server-mysql-4.0.5]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@server1 zabbix-server-mysql-4.0.5]# zcat create.sql.gz |mysql -h 172.25.15.1 -P 4000 -uroot zabbix  	#导入数据

在这里插入图片描述

六、修改配置文件,重启zabbix服务

1.zabbix配置文件的修改

[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf
139  DBport=4000

在这里插入图片描述

2.修改zabbix前端php代码数据库连接端口及地址

[root@server1 ~]#  cd /etc/zabbix/
[root@server1 zabbix]# ls
web                 zabbix_agentd.d           zabbix_java_gateway_logback.xml
zabbix_agentd.conf  zabbix_java_gateway.conf  zabbix_server.conf
[root@server1 zabbix]# cd web/
[root@server1 web]# ls
maintenance.inc.php  zabbix.conf.php
[root@server1 web]# vim zabbix.conf.php
[root@server1 web]# cat zabbix.conf.php 
<?php
// Zabbix GUI configuration file.
global $DB;

$DB['TYPE']     = 'MYSQL';	
$DB['SERVER']   = '172.25.15.1';		#修改地址
$DB['PORT']     = '4000';				#修改端口
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'westos';

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

$ZBX_SERVER      = 'localhost';
$ZBX_SERVER_PORT = '10051';
$ZBX_SERVER_NAME = 'zabbix server';
$IMAGE_FORMAT_DEFAULT = IMAGE_FORMAT_PNG;
[root@server1 web]# systemctl restart zabbix-server.service 	#重启服务
[root@server1 web]# systemctl restart zabbix-agent.service 		#重启服务

在这里插入图片描述

3.浏览器访问http://172.25.15.1/zabbix

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值