项目需求:由于搭建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端已经成功批量部署多台,然后可以在zabbix上agent端再添加监控项,再添加告警通知到邮箱