安装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
解压安装
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
安装完成部分截图
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 同理
进行中的截图
部署 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