####Zabbix监控系统配置TIDB服务####

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

  • 高度兼容 MySQL
大多数情况下,无需修改代码即可从 MySQL 轻松迁移至 TiDB,分库分表后的 MySQL 集群亦可通过 TiDB 工具进行实时迁移。
  • 水平弹性扩展
通过简单地增加新节点即可实现 TiDB 的水平扩展,按需扩展吞吐或存储,轻松应对高并发、海量数据场景。
  • 分布式事务
TiDB 100% 支持标准的 ACID 事务。
  • 真正金融级高可用
相比于传统主从 (M-S) 复制方案,基于 Raft 的多数派选举协议可以提供金融级的 100% 数据强一致性保证,且在不丢失大多数副本的前提下,可以实现故障的自动恢复 (auto-failover),无需人工介入。
  • 一站式 HTAP 解决方案
TiDB 作为典型的 OLTP 行存数据库,同时兼具强大的 OLAP 性能,配合 TiSpark,可提供一站式 HTAP 解决方案,一份存储同时处理 OLTP & OLAP,无需传统繁琐的 ETL 过程。
  • 云原生 SQL 数据库
TiDB 是为云而设计的数据库,支持公有云、私有云和混合云,使部署、配置和维护变得十分简单。

TiDB 的设计目标是 100% 的 OLTP 场景和 80% 的 OLAP 场景,更复杂的 OLAP 分析可以通过 TiSpark 项目来完成。

TiDB 对业务没有任何侵入性,能优雅的替换传统的数据库中间件、数据库分库分表等 Sharding 方案。同时它也让开发运维人员不用关注数据库 Scale 的细节问题,专注于业务开发,极大的提升研发的生产力。
整体架构:

要深入了解 TiDB 的水平扩展和高可用特点,首先需要了解 TiDB 的整体架构。TiDB 集群主要包括三个核心组件:TiDB Server,PD Server 和 TiKV Server。此外,还有用于解决用户复杂 OLAP 需求的 TiSpark 组件。
在这里插入图片描述

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

  • TiKV Server

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

  • TiSpark

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

环境部署:

hostname ip 安装的服务
server4 172.25.46.4 PD1,Tidb,zabbix-server,web
server5 172.25.46.5 Tikv1
server6 172.25.46.5 Tikv2
server7 172.25.46.7 Tikv3

1.zabbix部署

[root@server1 ~]# yum install -y zabbix-server-mysql zabbix-web-mysql #安装 Zabbix 前端 Server
[root@server1 ~]# yum install -y mariadb-server  #安装数据库
[root@server1 ~]# systemctl start mariadb  #打开数据库
[root@server1 ~]# mysql_secure_installation  ##初始化数据库,设置密码

4.所有节点都解压tidn 安装包并启动PD

[root@server4 tidb]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server4 tidb]# cd tidb-latest-linux-amd64
[root@server4 tidb-latest-linux-amd64]# ./bin/pd-server --name=pd1 --data-dir=pd1 --client-urls="http://172.25.46.4:2379" --peer-urls="http://172.25.46.4:2380" --initial-cluster="pd1=http://172.25.46.4:2380" --log-file=pd.log &
[1] 13267

server5(tikv1)启动:

[root@server5 tidb]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server5 tidb]# cd tidb-latest-linux-amd64
[root@server5 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.46.4:2379" --addr="172.25.46.5:20160" --data-dir=tikv1 --log-file=tikv.log &
[1] 11801

server6(tikv2)启动:

[root@server6 tidb]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server6 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.46.4:2379" --addr="172.25.46.6:20160" --data-dir=tikv1 --log-file=tikv.log &
[1] 11993

server7(tikv2)启动:

[root@server7 tidb]# tar zxf tidb-latest-linux-amd64.tar.gz
[root@server7 tidb-latest-linux-amd64]# ./bin/tikv-server --pd="172.25.46.4:2379" --addr="172.25.46.7:20160" --data-dir=tikv1 --log-file=tikv.log &
[1] 11747

启动tidb-server

[root@server4 web]# cd
[root@server4 ~]# ls
4.0  tidb-latest-linux-amd64  tidb-latest-linux-amd64.tar.gz
[root@server4 ~]# cd tidb-latest-linux-amd64
[root@server4 tidb-latest-linux-amd64]# ./bin/tidb-server &
[1] 2137
[root@server4 tidb-latest-linux-amd64]# ./bin/tidb-server &

查看端口:
[root@server4 ~]# netstat -antlp
在这里插入图片描述
将Tidb与zabbix关联
1.配置TIDB数据库

[root@server4 ~]# mysql -h 172.25.46.4 -P 4000 -uroot;

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 380
Server version: 5.5.52-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

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

MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
ERROR 1007 (HY000): Can't create database 'zabbix'; database exists
MariaDB [(none)]>  grant all privileges on zabbix.* to zabbix@'172.25.46.%' identified by 'westos';##授权用户
Query OK, 0 rows affected (0.00 sec)
[root@server4 tidb-latest-linux-amd64]# cd /usr/share/doc/zabbix-server-mysql-4.0.5/
[root@server4 zabbix-server-mysql-4.0.5]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@server4 zabbix-server-mysql-4.0.5]#  zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | mysql -p zabbix  #将zabbix-server-mysql导入数据库

MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| INFORMATION_SCHEMA |
| PERFORMANCE_SCHEMA |
| mysql              |
| test               |
| zabbix             |
+--------------------+
5 rows in set (0.00 sec)

2.编辑文件zabbix-server监听数据库的端口和用户、密码

[root@server4 ~]# vim /etc/zabbix/zabbix_server.conf 
90 DBHost=172.25.46.4
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword=westos
131 #DBSocket=/var/lib/mysql/mysql.sock
139 DBPort=4000

3.修改zabbix的web(php)配置/etc/zabbix/web/zabbix.conf.php

[root@server4 ~]# cp /usr/share/zabbix/conf/zabbix.conf.php.example /etc/zabbix/web/
[root@server4 ~]#  cd /etc/zabbix/web/
[root@server4 ~]# mv  zabbix.conf.php.example zabbix.conf.php
[root@server4 web]# ls
maintenance.inc.php  zabbix.conf.php
[root@server4 web]# vim zabbix.conf.php 
<?php
// Zabbix GUI configuration file.
global $DB, $HISTORY;

$DB['TYPE']                     = 'MYSQL';
$DB['SERVER']                   = '172.25.46.4';
$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                = '';

启动服务:

[root@server4 web]# systemctl start zabbix-server
[root@server4 web]# systemctl start zabbix-agent
[root@server4 web]# systemctl start httpd

查看日志
[root@server4 web]# cat /var/log/zabbix/zabbix_server.log
在这里插入图片描述
在浏览器查看
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44821839/article/details/95043882