配置ansible加密,自动化部署Zabbix监控与TiDB数据库

📅 2026/8/20 12:37:56
配置ansible加密,自动化部署Zabbix监控与TiDB数据库
目录一、配置加密二、变量文件2.1 user.yml变量2.2 apache.yml变量三、自动部署zabbix3.1 配置server端3.2 配置agent端四、TIDB部署一、配置加密一般用于用户的密码登录等场景下添加变量并单独将这些变量写成变量文件userlist.yml将变量文件进行加密[nyfserver1 ansible]$ ansible-vault encrypt userlist.yml此时为二进制文件文件被加密此时文件被加密需要输入密码才可以运行[nyfserver1 ansible]$ ansible-playbook user.yml --ask-vault-pass二、变量文件2.1 user.yml变量创建目录将刚才写的变量文件复制创建好的目录中[nyfserver1 ansible]$ mkdir host_vars[nyfserver1 ansible]$ cd host_vars/[nyfserver1 host_vars]$ ls[nyfserver1 host_vars]$ mkdir server3[nyfserver1 server3]$ cp ../../userlist.yml vault首先将变量文件的目录名称与清单中的分组名称一定要一样vim hosts一定要保持一致然后将user.yml中的变量删掉然后正常运行执行yml文件自动扫描变量文件2.2 apache.yml变量apache中的变量删掉创建变量组和文件会自动扫描文件[nyfserver1 ansible]$ vim apache.yml[nyfserver1 ansible]$ mkdir group_vars[nyfserver1 ansible]$ cd group_vars/[nyfserver1 group_vars]$ mkdir webserver[nyfserver1 group_vars]$ cd webserver/[nyfserver1 webserver]$ vim vars能够读取到变量正常运行主机的优先级更高三、自动部署zabbix3.1 配置server端安装模块mysql[rootserver1 ansible]# ansible-galaxy collection install ansible.mysql[nyfserver1 ansible]$ vim hosts[nyfserver1 ansible]$ vim zabbix.yml配置仓库安装相关zabbix-servermysql等创建初始数据库和用户并设置权限导入zabbix初始架构和数据并判断如果已经导入过便不再执行跳过此时去server2查看已经导入数据了修改zabbix server 连接数据库的密码在server2上查看已经自动写入启动所有服务并设置开机自启动可以每配置一步都检查语法并且执行最后能够全部跑通即可[nyfserver1 ansible]$ ansible-playbook --syntax-check zabbix.yml[nyfserver1 ansible]$ ansible-playbook zabbix.yml3.2 配置agent端首先安装模块也可以不用安装这个模块用来API调用自动在网页添加主机[rootserver1 ansible]# ansible-galaxy collection install zabbix.zabbix然后编辑文件本人编辑在同一个文件中的安装repo源安装agent并且修改server3agent文件中的参数主动式和被动式都打开了并且Hostname一定要填自己agent的主机名确认一下文件确实已经修改重启服务查看10050端口是否被监听浏览器可正常访问四、TIDBTiDB 是 PingCAP 研发的开源 NewSQL 分布式关系型数据库高度兼容 MySQL 协议与语法。核心目标解决单机 MySQL 容量上限、分库分表运维复杂的痛点原生支持水平扩容、分布式事务 ACID、金融级高可用同时支持 HTAP混合事务 实时分析。通俗类比MySQL 是单机数据库数据量满了要么升级高配机器垂直扩容要么手动分库分表TiDB 是天然分布式数据库集群不够用直接新增服务器节点数据自动迁移均衡业务代码几乎不用改动。四大核心组件TiDB Server计算层无状态 SQL 计算节点接收客户端 SQL 请求做语法解析、查询优化不存储真实数据。可以横向无限扩容前端搭配 HAProxy/LVS 做负载均衡。PDPlacement Driver 调度元数据集群整个集群的 “大脑”保存集群元数据数据分片Region分布在哪台 TiKV全局授时支撑分布式事务自动调度数据迁移、负载均衡、Raft leader 切换。TiKV分布式行存存储引擎真实存放数据的组件底层是分布式 KV 存储。数据被切分成 Region默认 96MB每个 Region 多副本默认 3 副本依靠Raft 一致性协议同步副本。节点宕机自动切换副本实现故障自愈保障 OLTP 在线交易业务。TiFlash列存引擎可选实时从 TiKV 同步一份数据以列存储保存。复杂统计、报表、OLAP 分析查询自动路由到 TiFlash不影响线上交易读写实现一套集群同时跑业务和实时分析HTAP。部署- server1TiDB 集群节点 → PD TiKV存储元数据与数据- server2TiDB 集群节点 → TiKV TiDB-Server (4000)后续部署 Zabbix 服务全局头部配置server1上配置安装 TiUP 包管理器工具重新声明全局环境变量使用 TiUP 制作离线镜像。自定义制作的离线镜像。curl --proto https --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | shsource .bash_profiletiup clustermv tidb-community-server--linux-amd64 tidb-community-server-v7.5.0-linux-amd64tiup mirror set /root/tidb-community-server-v7.5.0-linux-amd64tiup mirror showtiup list clustertiup mirror set https://tiup-mirrors.pingcap.comrm -rf /root/tidb-community-server-v7.5.0-linux-amd64tiup mirror clone tidb-community-server-v7.5.0-linux-amd64 v7.5.0 --oslinux --archamd64tiup mirror set /root/tidb-community-server-v7.5.0-linux-amd64部署并启动集群查询集群列表不存在 → tiup 部署存在直接跳过启动 TiDB 集群TiDB 启动完成4000 端口监听目标机器 server2 安装 python3 pip pymysql创建 zabbix 数据库导入 Zabbix 结构tidb不支持触发器需要将数据库触发器 SQL 语句已经全部删除干净[rootserver2 ~]# yum install -y zabbix-sql-scripts[rootserver2 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz /tmp/zabbix.sql[rootserver2 ~]# awk /CREATE TRIGGER/,/\$\$/ {next} /CREATE FUNCTION/,/\$\$/ {next} /CREATE PROCEDURE/,/\$\$/ {next} 1 /tmp/zabbix.sql /tmp/zabbix_raw.sql[rootserver2 ~]# grep -i create trigger /tmp/zabbix_raw.sql[rootserver2 ~]# rm -f /tmp/zabbix_raw.sql[rootserver2 ~]# sed /^CREATE TRIGGER/,/;/d /tmp/zabbix.sql /tmp/zabbix_raw.sql[rootserver2 ~]# grep ^CREATE TRIGGER /tmp/zabbix_raw.sql[rootserver2 ~]# awk skip0;{linetolower($0);if(line ~ /^create trigger/ || line ~ /^create function/ || line ~ /^create procedure/){skip1;}if(line ~ /^delimiter[[:space:]]\$\$/){skip1;}if(skip1){if(line ~ /\$\$$/ || line ~ /^delimiter[[:space:]];/){skip0;}next;}print;} /tmp/zabbix.sql /tmp/zabbix_raw.sql[rootserver2 ~]# awk BEGIN{del0}tolower($0) ~ /^create trigger/ {del1;next}del1 {if ($0 ~ /;/) del0;next}1 /tmp/zabbix.sql | sed -e /^CREATE FUNCTION/,/;/d -e /^CREATE PROCEDURE/,/;/d /tmp/zabbix_raw.sql[rootserver2 ~]# grep -i ^create trigger /tmp/zabbix_raw.sql[rootserver2 ~]# grep -i ^create function /tmp/zabbix_raw.sql[rootserver2 ~]# grep -i ^create procedure /tmp/zabbix_raw.sql[rootserver2 ~]# grep -i delimiter.*\$\$ /tmp/zabbix_raw.sql后续和zabbix流程基本一致