标签:
对Linux进行批量部署Zabbix-agent我们这里使用的是ansible来对zabbix-agent进行批量部署,当然在Linux上也可以使用脚本来完成部署
环境 ansible:10.127.0.133 agent1:172.168.0.4 agent2:172.168.0.5 进行密钥授权认证实现免密登陆为方便ansible对agent主机的管理,需要将ansible与agent进行公钥认证来实现免密登陆
ssh-keygen -t rsa ssh-copy-id -i /root/.ssh/id_rsa.pub 172.168.0.4 ssh-copy-id -i /root/.ssh/id_rsa.pub 172.168.0.5 在ansible/hosts中添加主机信息 [Linux-agent] 172.168.0.4 172.168.0.5 编辑Linux-agent的playbook文件进行批量部署 实现步骤:安装zabbix-agent4.2的rpm包
使用yum安装zabbix-agent
修改agent配置文件的一些变量,将模板文件覆盖到agent配置文件
重启zabbix-agent
定义agent模板创建一个模板文件,里面包含agent中可变的变量,如:主机名和server地址
[[email protected] ~]# vim /etc/ansible/zabbix_agentd.conf PidFile=http://www.mamicode.com/var/run/zabbix/zabbix_agentd.pid LogFile=http://www.mamicode.com/var/log/zabbix/zabbix_agentd.log LogFileSize=0 Server={{server}} ServerActive={{server}} Hostname={{hostname}} Include=http://www.mamicode.com/etc/zabbix/zabbix_agentd.d/*.conf UnsafeUserParameters=1 编写playbook文件 vim /etc/ansible/linux-agent.yml - hosts: zabbix-agent remote_user: root vars: server: 10.127.0.133 hostname: "{{ ansible_hostname }}" tasks: - name: install rpm command: rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.1-1.el7.x86_64.rpm - name: install agent command: yum install zabbix-agent -y - name: cp templates zabbix_agentd.conf to zabbix agentd template: src=http://www.mamicode.com/etc/ansible/zabbix_agentd.conf dest=http://www.mamicode.com/etc/zabbix/zabbix_agentd.conf - name: restart zabbix-agent command: systemctl restart zabbix-agent 执行playbook文件进行批量部署ansible-playbook -i /etc/ansible/hosts /etc/ansible/linux-agent.yml
可以看到playbook已经执行成功了,接下来可以看一下agent的配置文件
可以看到,agent配置文件中的变量也修改完成
创建自动发现规则对部署的主机进行自动发现并添加监控项 创建自动发现规则 添加自动发现动作 配置发现后的操作可以看到自动发现规则生效了,并链接了Linux-OS模板
Windows下的批量部署可以通过配置管理工具或者域控制器进行,这里我使用的ansible来对Windows主机进行批量部署
环境 ansible:10.127.0.133 Windows server2012:172.168.0.6 依赖环境 ansible依赖 pywinrm>=0.3.0pywinrm可以使用pip来进行安装,执行以下命令
pip install pywinrm>=0.3.0 Windows依赖 PowerShell 3.0 NET Framework 4.0+我这里使用的是2012,上面的环境是不需要做配置的,如果是使用的server2008或更低版本需要进行升级之后才能使用,获取升级的详细信息可以访问ansible官方文档查看
由于ansible控制Windows不是使用的ssh协议,而是用的Windows的winrm服务,而winrm有一个限制可用内存量的错误,需要安装脚本进行修复
在powershell上执行下面的命令
可以在powershell上执行下面的命令查看winrm当前的监听端口
winrm enumerate winrm/config/Listenerwinrm服务默认是5985端口,zabbix-agent使用的是10050端口,因此需要在防火墙上开启5985和10050端口或直接关闭防火墙
下载Windows-agent的包首先需要下载Windows-agent的压缩包并解压到ansible主机下
下载地址:https://www.zabbix.com/download_agents