应用环境:Linux运维工作少不了一个好的监控,zabbix就是目前比较好的一款开源监控软件。
监控类型多种多样,如果不介意或者系统支持安装,那么agent方式是首选。
当主机数量较多时,可以利用相关工具(ansible,puppet或其他)进行批量部署,节省时间提高效率。
测试环境:通过在ansible-server上操作,使得client-1/2/3上自动安装、配置、并启动zabbix-agent。
部署步骤:
1. 安装ansible
~]#yum install -y epel-release //安装epel源
~]# yum install -y ansible //ansible会自动从epel源中下载安装
2. 编辑ansible的hosts文件
~]# vim /etc/ansible/hosts
3. 创建相关文件夹
~]# cd /etc/ansible/roles/
roles]# mkdir zabbix-agent{files,templates,tasks} -pv
用途说明:
4. 在三个目录下分别建立相应文件
① 在files中存放已经下载好的zabbix-agent包,这里是:zabbix-agent-3.2.6-1.el7.x86_64.rpm
② 在tasks中新建main.yaml文件(注意:必须为该名字)
tasks]# vim main.yaml //内容如下
注意:上图画框的文件就是直接从新建的文件夹files和文件夹templates里寻找,不用写上绝对路径。
③ 在templates中存放zabbix_agentd.conf.j2文件(注意:必须带.j2)
templates]# egrep -v "^#|^$" zabbix_agentd.conf.j2
用目录树看一下:
5. 配置ansible无密码SSH到client
~]# ssh-keygen //产生私钥和公钥
成功后在~/.ssh/路径下将生成ssh密钥文件:id_rsa及id_rsa.pub
~]# ssh-copy-id root@192.168.1.21 //将公钥发送至192.168.1.21主机
6. 以ansible方式ping通客户端
~]# ansible new -m ping
注意:能够以ansible的方式ping通是一切批量部署的前提!!!
7. 建立一个playbook文件
假设就建立在~目录下,名为:zabbix-agent.yaml,该文件的执行可用来调用创建好的roles。
~]#vim zabbix-agent.yaml //内容如下
8. 测试该playbook文件
~]# ansible-playbook zabbix-agent.yaml --check //加上 “ --check ” 可以检测错误
如果没报错,则可实际执行,如下所示就代表测试通过:
9. 执行该playbook文件
~]# ansible-playbook zabbix-agent.yaml //去掉 “ --check ” 就真实的执行了
10. 检查
随机从三台主机中找一台检查一下部署的任务是否都起作用,想下图:
结束。