Zabbix批量部署Windows和Linux下的agent

简介: Zabbix批量部署Windows和Linux下的agent

对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文件进行批量部署


实现步骤:


  1. 安装zabbix-agent4.2的rpm包
  2. 使用yum安装zabbix-agent
  3. 修改agent配置文件的一些变量,将模板文件覆盖到agent配置文件
  4. 重启zabbix-agent


定义agent模板


创建一个模板文件,里面包含agent中可变的变量,如:主机名和server地址


[root@zabbix-server ~]# vim /etc/ansible/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{server}}
ServerActive={{server}}
Hostname={{hostname}}
Include=/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=/etc/ansible/zabbix_agentd.conf dest=/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


640.jpg


可以看到playbook已经执行成功了,接下来可以看一下agent的配置文件


640.png


可以看到,agent配置文件中的变量也修改完成


创建自动发现规则对部署的主机进行自动发现并添加监控项


创建自动发现规则


640.png


添加自动发现动作


640.png


配置发现后的操作


640.png


可以看到自动发现规则生效了,并链接了Linux-OS模板


640.png


对Windows进行批量部署Zabbix-agent


Windows下的批量部署可以通过配置管理工具或者域控制器进行,这里我使用的ansible来对Windows主机进行批量部署


环境


ansible:10.127.0.133
Windows server2012:172.168.0.6


依赖环境


ansible依赖


pywinrm>=0.3.0


pywinrm可以使用pip来进行安装,执行以下命令


pip install pywinrm>=0.3.0


Windows依赖


PowerShell 3.0
NET Framework 4.0+


我这里使用的是2012,上面的环境是不需要做配置的,如果是使用的server2008或更低版本需要进行升级之后才能使用,获取升级的详细信息可以访问ansible官方文档查看

https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html#host-requirements


安装winrm内存修补程序


由于ansible控制Windows不是使用的ssh协议,而是用的Windows的winrm服务,而winrm有一个限制可用内存量的错误,需要安装脚本进行修复


在powershell上执行下面的命令


$url = "https://raw.githubusercontent.com/jborean93/ansible-windows/master/scripts/Install-WMF3Hotfix.ps1"
$file = "$env:temp\Install-WMF3Hotfix.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file -Verbose


在防火墙上开启winrm服务端口和agent服务端口


可以在powershell上执行下面的命令查看winrm当前的监听端口


winrm enumerate winrm/config/Listener


winrm服务默认是5985端口,zabbix-agent使用的是10050端口,因此需要在防火墙上开启5985和10050端口或直接关闭防火墙


下载Windows-agent的包


首先需要下载Windows-agent的压缩包并解压到ansible主机下


下载地址:https://www.zabbix.com/download_agents


在ansible/hosts中添加主机信息


需要在hosts中指定与Windows连接的配置信息,默认情况下使用ntlm认证,如果想要获取关于winrm认证的详细信息,可以访问

https://docs.ansible.com/ansible/latest/user_guide/windows_winrm.html


[windows]
172.168.0.6 ansible_python_interpreter=/usr/bin/python ansible_user="administrator" ansible_password="asd.123" ansible_port=5985 ansible_connection="winrm" ansible_winrm_transport=ntlm ansible_winrm_server_cert_validation=ignore


编辑Windows-agent的playbook文件进行批量部署


实现步骤:


  1. 从ansible复制下载好的agent文件到Windows
  2. 修改agent配置文件的一些变量,将模板文件覆盖到agent配置文件
  3. 安装zabbix-agent
  4. 启动zabbix-agent


编写playbook文件


vim /etc/ansible/windows-agent.yml
- hosts: windows
  remote_user: administrator
  vars:
    server: 10.127.0.133
    hostname: "{{ ansible_host }}"
  tasks:
  - name: cp zabbix-agent
    win_copy:
      src: /etc/ansible/windows_agent/
      dest: C:\windows_agent\
  - name: cp templates zabbix_agentd.conf to zabbix agentd
    win_template:
      src: /etc/ansible/zabbix_agentd.conf
      dest: C:\windows_agent\conf\
  - name: install zabbix-agent
    win_command: zabbix_agentd.exe -i -c C:\windows_agent\conf\zabbix_agentd.conf
    args:
      chdir: C:\windows_agent\bin\
  - name: start zabbix-agent
    win_command: zabbix_agentd.exe -s -c C:\windows_agent\conf\zabbix_agentd.conf
    args:
      chdir: C:\windows_agent\bin\


执行playbook文件进行批量部署


ansible-playbook -i /etc/ansible/hosts /etc/ansible/linux-agent.yml


640.jpg


可以看到playbook执行成功了,查看Windows的服务,Zabbix-agent也已经启动


640.jpg


配置动作对部署的主机进行自动发现并添加监控项


添加自动发现动作


640.png


配置发现后的操作


640.png


可以看到自动发现规则生效了,并链接了Windows-OS模板


640.png


相关文章
|
2月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
2月前
|
Ubuntu 网络协议 Linux
快速部署WSL(Windows Subsystem for Linux)
WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
242 8
|
4月前
|
运维 监控 Linux
Linux系统之部署Linux管理面板1Panel
【10月更文挑战第20天】Linux系统之部署Linux管理面板1Panel
261 4
Linux系统之部署Linux管理面板1Panel
|
3月前
|
人工智能 测试技术 Windows
Windows 竞技场:面向下一代AI Agent的测试集
【10月更文挑战第25天】随着人工智能的发展,大型语言模型(LLMs)在多模态任务中展现出巨大潜力。为解决传统基准测试的局限性,研究人员提出了Windows Agent Arena,一个在真实Windows操作系统中评估AI代理性能的通用环境。该环境包含150多个多样化任务,支持快速并行化评估。研究团队还推出了多模态代理Navi,在Windows领域测试中成功率达到19.5%。尽管存在局限性,Windows Agent Arena仍为AI代理的评估和研究提供了新机遇。
81 3
|
3月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
181 3
|
3月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
117 2
|
4月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
970 3
|
4月前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
142 2
|
Windows
企业部署Windows 8 Store 风格应用
原文:企业部署Windows 8 Store 风格应用 引言 之前我们都知道可以将应用程序发布到Windows 商店中供用户下载使用。如果我们是企业开发人员,则我们的应用可能属于以下两种类别之一: 1.应用内容是只与公司内个人切实相关的应用。
958 0