zabbix +tidb 配置监控系统 (二进制包搭建tidb数据库服务)

什么是tidb

TiDB 是 PingCAP 公司基于 Google Spanner / F1 论文实现的开源分布式 NewSQL 数据库。
zabbix +tidb 配置监控系统 (二进制包搭建tidb数据库服务)_第1张图片

TiDB 集群主要分为三个组件:

TiDB Server

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

PD Server

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

核心特性

  • 水平扩展
  • 高可用
使用二进制包配置zabbix数据库

配置环境:

rhel7.3 firewalld和selinux均为disabled状态

toto1: 172.25.13.110 PD1 tidb zabbix-server

toto3: 172.25.13.130 tikv

toto6: 172.25.13.160 tikv

下载源码包: http://download.pingcap.org/tidb-latest-linux-amd64.tar.gz
每一个节点都解压压缩包进入解压出的目录

 tar zxf tidb-latest-linux-amd64.tar.gz
 cd tidb-latest-linux-amd64

注意:服务启动顺序: PD-server —> tikv-server —>tidb-server
以下启动各个应用程序组件实例的时候,请选择后台启动,避免前台失效后程序自动退出。

启动服务:

具体参数可参看官方文档: https://www.pingcap.com/docs-cn/op-guide/configuration/

toto1:启动 PD-server

[root@toto1 tidb-latest-linux-amd64]#  ./bin/pd-server  --name=pd1   \
--data-dir=pd1 --client-urls="http://172.25.13.110:2379"  \
--peer-urls="http://172.25.13.110:2380"  \
--initial-cluster="pd1=http://172.25.13.110:2380"  --log-file=pd.log &   

toto3:启动 tikv-server :

[root@toto3 tidb-latest-linux-amd64]# /bin/tikv-server\
 --pd="172.25.13.110:2379" \
--addr="172.25.13.130:20160" \
--data-dir=tikv1  \
--log-file=tikv.log &

toto6:启动 tikv-server :

[root@toto6 tidb-latest-linux-amd64]#  ./bin/tikv-server \
--pd="172.25.13.110:2379" \
--addr="172.25.13.160:20160" \
--data-dir=tikv1  \
--log-file=tikv.log &

toto1:启动 tidb-server

[root@toto1 tidb-latest-linux-amd64]#  ./bin/tidb-server &

查看端口4000是否启动:

[root@toto1 mnt]# netstat -antlp |grep 4000

9137/zabbix_server: 
tcp        0      0 172.25.13.110:48496     172.25.13.110:4000      ESTABLISHED 9143/zabbix_server: 
tcp        0      0 172.25.13.110:52362     172.25.13.110:4000      TIME_WAIT   -                   
tcp6       0      0 :::4000                 :::*                    LISTEN      2547/./bin/tidb-ser 
tcp6       0      0 172.25.13.110:4000      172.25.13.110:48498     ESTABLISHED 2547/./bin/tidb-ser 
tcp6       0      0 172.25.13.110:4000      172.25.13.110:48500     ESTABLISHED 2547/./bin/tidb-ser 
tcp6       0      0 172.25.13.110:4000      172.25.13.110:48508     ESTABLISHED 2547/./bin/tidb-ser 
tcp6       0      0 172.25.13.110:4000      172.25.13.110:48472     ESTABLISHED 2547/./bin/tidb-ser 
tcp6       0      0 172.25.13.110:4000      172.25.13.110:48468     ESTABLISHED 2547/./bin/tidb-ser 

设置zabbix服务将TIDB与zabbix关

关闭之前安装的mariadb-server服务:

systemctl stop mariadb.service

使用客户端登陆数据库,创建库和用户应进行用户授权。

shell>mysql -h 172.25.13.110 -P 4000 -uroot 	
MySQL [(none)]> create user zabbix@'%' identified by 'redhat';   # 创建用户
MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin;  # 创建库
MySQL [(none)]> grant all on zabbix.* to zabbix@'%' identified by 'redhat';  # 用户授权
MySQL [zabbix]> quit

将zabbix数据导入:

zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz  | \
mysql -h 172.25.13.110 -P 4000 -uzabbix -p zabbix

报错 statement count 5001 exceeds the transaction limitation, autocommit = true

查询由于tidb大事务限制,也就是一个事务里面,默认最多包含5000条 SQL statement,在不超过上面 rocksdb 层的几个限制的前提下,这个参数可以修改 tidb 的配置文件进行调整。通过设置:tidb_batch_insert 参数进行处理。

tidb_batch_insert 参数:作用域: SESSION默认值: 0这个变量用来设置是否自动切分插入数据。仅在 autocommit 开启时有效。 当插入大量数据时,可以将其设置为 true,这样插入数据会被自动切分为多个 batch,每个 batch 使用一个单独的事务进行插入。

MySQL [(none)]> set tidb_batch_insert=1;
MySQL [(none)]> source /mnt.date.sql;

这个需要一个sql文件,该sql文件就是需要导入数据库中的数据文件。
set tidb_batch_insert=1 只能是临时设定。如果设置完成后,退出数据库后再次登陆就会变成默认值0,所以设置完成之后使用source /mnt.date.sql;导入数据。

修改zabbix配置文件:

vim /etc/zabbix/zabbix_server.conf

[root@server1 ~]# vim /etc/zabbix/zabbix_server.conf #编辑如下内容: 
91 DBHost=172.25.13.110 # zabbix 数据库地址
100 DBName=zabbix   #数据库名称
117 DBUser=zabbix  # 数据库用户
125 DBPassword=redhat # 数据库密码 
140 DBPort=4000 # 数据库端口,TIDB为4000

vim /etc/zabbix/web/zabbix.conf.php

[root@toto1 tidb-latest-linux-amd64]# vim /etc/zabbix/web/zabbix.conf.php 
$DB['TYPE']     = 'MYSQL';
$DB['SERVER']   = '172.25.13.110';
$DB['PORT']     = '4000';
$DB['DATABASE'] = 'zabbix';
$DB['USER']     = 'zabbix';
$DB['PASSWORD'] = 'redhat';

开启服务:

systemctl start zabbix-server
systemctl start httpd.service 

在浏览器中进行查看

zabbix +tidb 配置监控系统 (二进制包搭建tidb数据库服务)_第2张图片

你可能感兴趣的:(zabbix +tidb 配置监控系统 (二进制包搭建tidb数据库服务))