Ansible实现zabbix服务器agent端批量部署

项目需求:由于搭建zabbix,需要每台服务器都需要安装监控端(agent)正常的的操作是一台一台去安装,这样确实有点浪费时间,这里为大家准备了一款开源

的自动化运维工具Ansible,相信大家也很熟悉,话不多说,开始部署。

这里我已经提前安装好ansible了,如果不知道怎么安装的小伙伴可以看我上一遍随笔。

修改主机名以及/etc/ansible/hosts  把需要执行的机器添加进入,并生成秘钥,成免交互(上篇文章都有)

192.168.30.21    ansible

192.168.30.25    client1

192.168.30.26    client2

[root@ansible ~]# vim zabbix-agent.sh

#!/bin/bash

HN=$(hostname)

if  [ ! -f /etc/yum.repos.d/zabbix.repo ]

then

    rpm -Uvh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

fi

rpm -q zabbix-agent &>/dev/null

[ $? -ne 0 ] && yum -y install zabbix-agent

cp /etc/zabbix/zabbix_agentd.conf{,-$(date +%F%T)}

sed -i 's/Server=127.0.0.1/Server=192.168.30.21/g' /etc/zabbix/zabbix_agentd.conf

sed -i 's/ServerActive=127.0.0.1/ServerActive=192.168.30.21/g' /etc/zabbix/zabbix_agentd.conf

sed -i 's/Hostname=Zabbix server/Server=$HN/g' /etc/zabbix/zabbix_agentd.conf

systemctl restart zabbix-agent

[root@ansible ~]# vim /etc/ansible/zabbix-agent.yml

- hosts: cloud

  remote_user: root

  tasks:

    - name: install yum

      copy: src=/root/zabbix-agent.sh dest=/opt/zabbix-agent.sh mode=777

      notify:

        - script agent

  handlers:

    - name: script agent

      command: /opt/zabbix-agent.sh

预执行-C

[root@ansible ansible]# ansible-playbook -C /etc/ansible/zabbix-agent.yml

[root@ansible ansible]# ansible-playbook  /etc/ansible/zabbix-agent.yml

查看端口开启状态

[root@client1 ~]# netstat -anpt |grep 10050

tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      3358/zabbix_agentd  

tcp6       0      0 :::10050                :::*                    LISTEN      3358/zabbix_agentd  

这样多台服务器的agent端已经成功批量部署多台,然后可以在zabbixagent端再添加监控项,再添加告警通知到邮箱

原文地址:https://www.cnblogs.com/zc1741845455/p/10881074.html