TIDB(开源分布式关系型数据库)
TIDB是一款定位于在线事物处理/在线分析处理(HTAP)的融合型数据库产品,实现了一键水平伸缩,强一致性的多副本数据安全,分布式事务,实时OLAP等重要特性。同时兼容MySQL协议和生态,迁移便捷,运维成本极低。
TIDB 的主体架构包含三个模块,对应 Github 上面 PingCAP 组织下的三个开源项目:tidb / tikv / pd:
●tidb 主要是负责 SQL 的解析器和优化器,它相当于计算执行层,同时也负责客户端接入和交互
●tikv 是一套分布式的 Key-Value 存储引擎,它承担整个数据库的存储层,数据的水平扩展和多副本高可用特性都是在这一层实现
●pd 相当于分布式数据库的大脑,一方面负责收集和维护数据在各个 tikv 节点的分布情况,另一方面 pd 承担调度器的角色,根据数据分布状况以及各个存储节点的负载来采取合适的调度策略,维持整个系统的平衡与稳定
上面的这三个模块,每个角色都是一个多节点组成的集群,所以最终 TiDB 的架构看起来是这样的。
Zabbix+tidb 配置
环境:rhel7.3
Server1:172.25.45.1 PD1 tidb zabbix-server
Server2:172.25.45.2 tikv
Server3:172.25.45.3 tikv
Server4:172.25.45.4 tikv
Server1已经配置过zabbix-server并且也已经安装过mariadb服务;
首先下载官方binary
wget http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz
wget http://download.pingcap.org/tidb-ansible-master.zip
tidb-ansible-master.zip tidb-latest-linux-amd64.tar.gz
将这两个文件拷贝给server1–4四个主机;
四个主机全部都解开压缩包;
在server1启动PD:
tar zxf tidb-latest-linux-amd64.tar.gz
cd tidb-latest-linux-amd64/
./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.45.1:2379" --peer-urls="http://172.25.45.1:2380" --initial-cluster="pd1=http://172.25.45.1:2380" --log-file=pd.log &
ps ax
然后再server2—3三台主机启动tikv
tar zxf tidb-latest-linux-amd64.tar.gz
cd tidb-latest-linux-amd64/
./bin/tikv-server --pd="172.25.45.1:2379" --addr="172.25.45.2:20160" --data-dir=tikv1 --log-file=tikv.log &
三台主机启动tikv之后,再在server1启动tidb;
./bin/tidb-server
启动完成后查看端口,有4000端口,启动成功;
启动顺序为PD—->tikv——-tidb;(顺序不可搞错);启动时候选择后台启动,避免前台失效后程序自动退出;
全部启动成功后,用mysql客户端连接tidb;
需要提前给server1mysql远程登陆的权限
grant all privileges on *.* to 'root'@'172.25.45.%' identified by 'westos';
如果能连接上的话,数据库的基本配置就已经成功了;
现在需要往zabbix应用中集成;
vim /etc/zabbix/zabbix_server.conf
修改端口;
然后修改zabbix的web(php)配置
完成之后重新启动服务;
systemctl restart zabbix-server zabbix-agent httpd