目录
前言
ansible服务器部署
使用ansible配置zabbix-mysql端
使用ansible配置zabbix-server端
使用ansible配置zabbix-agent端
一键部署zabbix
总结
前言
ansible是一款非常强大的自动化运维工具,使用它去批量管理服务器非常方便;zabbix是一款企业级,开源免费的监控系统,使用它去监控我们的服务器,可以让我们快速定位到产生的问题并及时处理,两者的结合大大提高了我们的工作效率.
1.四台centos7版本的虚拟机(ansible zabbix-server zabbix-mysql zabbix-agent)
2.环境配好: 关闭防火墙 关闭selinux 配置国内的base,epel仓库 网络畅通
3.ansible服务器给另外三台做ssh免密(便于ansible管理)
ssh-keygen 一路回车,生成密钥
ssh-copy-id +ip地址 拷贝公钥给其他三台服务器
ansible服务器部署
1.安装ansible
yum -y install ansible
2.添加主机清单
vim /etc/ansible/hosts
[zabbix_server]
10.0.0.227
[zabbix_mysql]
10.0.0.228
[zabbix_agent]
10.0.0.229
3.验证
使用ansible配置zabbix-mysql端
1.创建zabbix-mysql角色,ansible服务器下载好数据库仓库软件包放在file目录下
ansible-galaxy init zabbix-mysql
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.编辑zabbix-mysql/tasks/main.yml
- name: uploadk
copy:
src: mysql80-community-release-el7-3.noarch.rpm #拷贝数据库仓库安装包,记得把需要拷贝的放到角色目录的files目录下
dest: /root/
- name: installrepo
command: rpm -ivh /root/mysql80-community-release-el7-3.noarch.rpm #安装仓库软件包
- name: install-yum.utils
yum:
name: yum-utils
state: present
- name: five
command: yum-config-manager --enable mysql57-community 启用5.7版本
- name: eight
command: yum-config-manager --disable mysql80-community 禁用8.0版本
- name: check
command: sed -i 's/gpgcheck=1/gpgcheck=0/' /etc/yum.repos.d/mysql-community.repo #关闭检查机制
- name: installmysql #安装数据库
yum:
name: mysql,mysql-server
state: present
- name: mysqldstart
command: systemctl start mysqld
- name: copysh #数据库初始化及配置脚本
copy:
src: mysql.sh
dest: /root/
- name: runsh
command: bash /root/mysql.sh
脚本如下:
#!/bin/bash
#数据库初始化及相关配置脚本
begin() {
systemctl start mysqld
sun=`cat /var/log/mysqld.log |grep password |awk '{print $NF}'` #数据库初始化
mysqladmin -u root -p"$sun" password 'Sunsweet@123'
echo "数据库初始化成功"
}
peizhi() {
mysql -uroot -pSunsweet@123 -e "create database zabbix character set utf8 collate utf8_bin;" #创建字符集为utf8的名叫zabbix的库
mysql -uroot -pSunsweet@123 -e "grant all on zabbix.* to zabbix@'%' identified by 'Sunsweet@123';" #创建名叫zabbix的用户并授权
mysql -uroot -pSunsweet@123 -e "set global log_bin_trust_function_creators = 1;" #默认开启
echo "数据库配置成功"
}
main() {
begin
peizhi
}
main
(3)执行mysql.yml文件
ansible-playbook mysql.yml
使用ansible配置zabbix-server端
(参考zabbix官网:www.zabbix.com 使用的是zabbix 5.0版本)
1.创建zabbix-server角色,ansible服务器下载好zabbix仓库文件放在file目录下
ansible-galaxy init zabbix-server
yum -y install https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
2.编辑zabbix-server/tasks/main.yml
- name: installrpm #准备zabbix仓库
copy:
src: zabbix.repo
dest: /etc/yum.repos.d/
- name: installservice
yum:
name: zabbix-server-mysql,zabbix-agent,centos-release-scl,yum-utils
state: present
- name: update
command: yum-config-manager --enable zabbix-frontend #启用zabbix-frontend标签
- name: installweb
yum:
name: zabbix-web-mysql-scl,zabbix-apache-conf-scl
state: present
- name: installrpm
yum:
name: mariadb
state: present
- name: inputdata
shell: "zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix - pSunsweet@123 zabbix -h 10.0.0.228" #导入数据 使用创建好的用户 库 密码 数据库主机的IP地址
- name: copyfile
copy:
src: zabbix_server.conf #修改好数据库信息(IP地址 库名 用户名 密码)的配置文件
dest: /etc/zabbix/zabbix_server.conf
- name: copyfiles
copy:
src: zabbix.conf #修改好时区的配置文件
dest: /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
- name: startservice
command: systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm #重启服务
3.创建server.yml文件并写入
---
- name: useserver
hosts: zabbix_server
roles:
- zabbix-server
4.执行server.yml文件
ansible-playbook server.yml
5.server端地址+/zabbix 访问
6.配置数据库信息
7.server端信息
使用ansible配置zabbix-agent端
1.创建zabbix-agent角色并准备好zabbix.repo放入files目录下
ansible-galaxy init zabbix-agent
2.编辑zabbix-agent/tasks/main.yaml
- name: repo
copy:
src: zabbix.repo
dest: /etc/yum.repos.d/
- name: installagent
yum:
name: zabbix-agent
state: present
- name: copyfile
copy:
src: zabbix_agentd.conf 注意:zabbix_agentd.conf中修改的是Server ServerActive 都为server端的地址 hostname自定义 UnsafeUserParameters=1 自定义 keys可以使用特殊字符
dest: /etc/zabbix/zabbix_agentd.conf
- name: startagent
command: systemctl restart zabbix-agent
3.编辑agent.yml
---
- name: agent
hosts: zabbix_agent
roles:
- zabbix-agent
一键部署zabbix
yml文件内容如下:
--- 注意:调用角色的顺序
- name: zabbixmysql #调用zabbix-mysql角色
hosts: zabbix_mysql
roles:
- zabbix-mysql
- name: zabbixagent #调用zabbix-agent角色
hosts: zabbix_agent
roles:
- zabbix-agent
- name: zabbixserver #调用zabbix-server角色
hosts: zabbix_server
roles:
- zabbix-server
总结
本文zabbix-server,zabbix-mysql,zabbix-agent分别只使用了一台服务器,ansible批量管理更适用多台服务器,添加服务器只需要在ansible服务器的主机清单的主机组里添加即可,非常方便部署zabbix服务,也希望本文对大家有所帮助,如有不足,请批评指正,不太理解的地方也可以私信我,大家一起探讨.