目录

前言

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.验证

zabbix怎么配置windows监控项 zabbix ssh监控_zabbix

       使用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.配置数据库信息 

zabbix怎么配置windows监控项 zabbix ssh监控_mysql_02

 7.server端信息

zabbix怎么配置windows监控项 zabbix ssh监控_zabbix_03

zabbix怎么配置windows监控项 zabbix ssh监控_zabbix_04

zabbix怎么配置windows监控项 zabbix ssh监控_ansible_05

 

zabbix怎么配置windows监控项 zabbix ssh监控_运维_06

        使用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服务,也希望本文对大家有所帮助,如有不足,请批评指正,不太理解的地方也可以私信我,大家一起探讨.