Ansible方式替换zabbix数据库为TIDB

时间:2022-06-21 21:43:01

安装ansible

安装python2.7

一般系统都会自带,没有安装的可以自行下载安装

下载setuptools

wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.zip

解压安装

unzip setuptools-7.0.zip
cd setuptools-7.0/
python setup.py install

下载pip

wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9

解压安装

tar zxf pip-9.0.1.tar.gz
cd pip-9.0.1/
python setup.py install

下载ansible

pip install ansible-2.4.0.0.tar.gz

安装完成部分截图
Ansible方式替换zabbix数据库为TIDB

TiDB Ansible 的部署

1.部署中控机一台:

  • Python 2.6 或 Python 2.7,安装有 Ansible 2.3 版本或以上版本。
  • 依赖 Python Jinja2 及 MarkupSafe 指定版本模块: pip install Jinja2==2.7.2 MarkupSafe==0.11
  • 可通过 ssh 登录目标机器,支持密码登录或 ssh authorized_key 登录。
  • 中控机可以是部署目标机器中的某一台,该机器需开放外网访问,并且安装 curl 软件包,用于下载 binary。

2.部署目标机器若干

  • TiKV 至少3实例,且与 TiDB、PD 模块不位于同一主机
  • Linux 操作系统,x86_64 架构(amd64),内核版本建议 3.10 以上,推荐 CentOS 7.3 及以上版本, 文件系统推荐 ext4(部分内核版本 xfs 文件系统有 bug, 本工具检查到 xfs 文件系统有 bug 会退出)。
  • 机器之间网络互通,防火墙、iptables 等可以在部署验证时关闭,后期开启。
  • 机器的时间、时区设置正确(要求机器时间同步),有 NTP 服务可以同步正确时间
  • 若使用普通用户作为 Ansible SSH 远程连接用户,该用户需要有 sudo 到 root 权限,或直接使用 root 用户远程连接。
  • Python 2.6 或 Python 2.7。

在中控机器上安装配置 Ansible

下载最新 master 版本
wget https://github.com/pingcap/tidb-ansible/archive/master.zip
解压并配置

unzip master.zip
cd tidb-ansible-master/
ls
#各个文件的说明
ansible.cfg: ansible 配置文件
inventoty.ini: 组和主机的相关配置
conf: TiDB 相关配置模版
group_vars: 相关变量配置
scripts: grafana 监控 json 模版
local_prepare.yml: 用来下载相关安装包
bootstrap.yml: 初始化集群各个节点
deploy.yml: 在各个节点安装 TiDB 相应服务
roles: ansible tasks 的集合
start.yml: 启动所有服务
stop.yml: 停止所有服务
unsafe_cleanup_data.yml: 清除数据
unsafe_cleanup.yml: 销毁集群
vim inventory.ini

# TiDB Cluster Part
[tidb_servers]
172.25.21.1

[tikv_servers]
172.25.21.2
172.25.21.3
172.25.21.4

[pd_servers]
172.25.21.1

[spark_master]

[spark_slaves]

# Monitoring Part
[monitoring_servers]
172.25.21.1

[grafana_servers]
172.25.21.1
......

#如果使用root用户使用下面的配置
## Connection
# ssh via root:
ansible_user = root
ansible_become = true
ansible_become_user = tidb

# ssh via normal user
# ansible_user = tidb

下面的操作都在tidb-ansible-master/目录下

联网下载 master 版本的 binary 到中控机:

ansible-playbook local_prepare.yml

初始化系统环境,修改内核参数(需要中控机可以免密登陆其他的目标机)

#如服务运行用户尚未建立,此初始化操作会自动创建该用户。

ansible-playbook bootstrap.yml -k

使用 -k 参数是因为使用 root 用户远程连接需要密码 ,执行其他 playbook 同理

进行中的截图
Ansible方式替换zabbix数据库为TIDB

部署 TiDB 集群软件

ansible-playbook deploy.yml -k

启动 TiDB 集群

ansible-playbook start.yml -k

测试

使用 MySQL 客户端连接测试, TCP 4000 端口是 TiDB 服务默认端口。

mysql -u root -h 172.25.21.1 -P 4000

通过浏览器访问监控平台。
地址:http://172.25.21.1:3000 默认帐号密码是:admin/admin

将 Zabbix 的数据库设置为 TiDB

主机(server1):

安装zabbix

yum install -y php-bcmath-5.4.16-36.el7_1.x86_64.rpm php-mbstring-5.4.16-36.el7_1.x86_64.rpm
yum install -y zabbix-agent-3.2.6-1.el7.x86_64.rpm zabbix-server-mysql-3.2.6-1.el7.x86_64.rpm zabbix-web-3.2.6-1.el7.noarch.rpm zabbix-web-mysql-3.2.6-1.el7.noarch.rpm fping-3.10-1.el7.x86_64.rpm iksemel-1.4-2.el7.centos.x86_64.rpm
yum install -y mariadb      ##安装 mariadb 软件,即 MySQL 客户端
mysql -u root -h 172.25.21.1 -P 4000
mysql > CREATE DATABASE zabbix CHARSET 'utf8';     #创建数据库
mysql > grant all on *.* to zabbix@'172.25.%.%' identified by 'zabbix'; #添加授权
mysql > grant all on *.* to zabbix@'localhost' identified by 'zabbix';
zcat /usr/share/doc/zabbix-server-mysql-3.2.6/create.sql.gz | mysql -u root -h 172.25.27.11 -P 4000 zabbix    #导入zabbix数据
mysql -uzabbix -pzabbix

MariaDB [(none)]> use zabix
MariaDB [zabbix]> show tables;
+----------------------------+
| Tables_in_zabbix |
+----------------------------+

| acknowledges |
| actions |
| alerts |
| application_discovery |
| application_
prototype |
| 。。。 |
| usrgrp |
| valuemaps |
+----------------------------+

127 rows in set (0.00 sec)

更改zabbix配置文件

vim /etc/zabbix/zabbix_server.conf 

ListenPort=10051
SourceIP=172.25.21.1
LogType=file
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
DebugLevel=3
PidFile=/var/run/zabbix/zabbix_server.pid
SocketDir=/var/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zz
DBPassword=redhat
DBSocket=/var/lib/mysql/mysql.sock
DBPort=4000
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
AlertScriptsPath=/usr/lib/zabbix/alertscripts
ExternalScripts=/usr/lib/zabbix/externalscripts
LogSlowQueries=3000

#如果监控中zabbix server系统状态出现严重,可试着更改上面配置文件中
StartProxyPollers=5 #默认注释,为1

更改时区

vim /etc/httpd/conf.d/zabbix.conf
php_value date.timezone Asia/Shanghai

service zabbix-server start #启动zabbix
systemctl start httpd #启动apache

可以访问172.25.21.1/zabbix

监控段(server2,server3,server4)

安装zabbix监控端安装包

rpm -ivh zabbix-agent-3.2.6-1.el7.x86_64.rpm

修改配置文件

vim /etc/zabbix/zabbix_agentd.conf
Server=172.25.21.1 #更改为监控主机ip
ServerActive=172.25.21.1

/etc/init.d/zabbix-agent start #启动zabbix-agent