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地址

[[email protected] ~]# 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

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

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

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

创建自动发现规则

添加自动发现动作

配置发现后的操作

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

对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配置文件,模板文件与Linux的相同
  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

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

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

添加自动发现动作

配置发现后的操作

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



欢迎各位关注我的个人微信公众号“没有故事的陈师傅”

原文地址:https://blog.51cto.com/12970189/2438057

时间: 2024-10-11 18:21:15

zabbix批量部署Windows和Linux的agent的相关文章

WDS批量部署Windows系统

1.WDS的介绍 1.1什么是WDS WDS,即WindowsDeployment Services的缩写,中文含义为Windows部署服务,类似于Linux系统的PXE,可以用来批量部署Windows操作系统 1.2 WDS的组件 1) 服务器组件.用于网络启动客户端的PXE服务器和TFTP服务器,以加载并安装操作系统.此外还包括一个共享文件夹和映像存储库,其包含网络启动所需要的启动映像.安装映像及文件.Windows Server 2008的WDS不但提供了PXE的支持,对用于传输启动映像的

批量部署Windows NanoServer 2016 With Hyper-V

微软Nano Server 2016的部署方式是采用WIM文件和Package打包后生成的VHDX文件,从Windows Server 2016 ISO镜像中的Nano Server文件夹下可以看到包含了17个相关的包,本章节将分享如果批量的生成VHDX镜像和创建Hyper-V虚拟机,将Compute.Storage和Clustering一同安装,并将Nano Server自动加入现有域环境中. 1. 先决条件 1.1 在Nano Server文件夹下可以看到如下默认的包 1.2 在本实验中已提

三、MDT 2013 Update 1批量部署-WINDOWS 7专业版安装(上)

三.MDT 2013 Update 1批量部署-WINDOWS 7专业版安装 3.1 导入WINDOWS 7专业版操作系统 这个对应WINDOWS 7专业版MSDN版安装光盘 其实Windows 7安装光盘里可以对应多个版本,为了简化显示,删除不需要的其他版本 3.2 建立WINDOWS 7安装任务 选择标准的客户端安装 查看标准客户端安装任务属性 查看新计算机的磁盘分区情况,标准安装任务默认会格式化硬盘,并按指定的属性分区.格式 这里的分区采用总容量的99% 恢复分区为剩余容量的100%,就是

三、MDT 2013 Update 1批量部署-WINDOWS 7专业版安装(下)

3.3 WINDOWS 7专业版安装 需要部署的机器设置启动优先级别 前面说了MDT 2013 UPDATE 1的启动镜像可以采用多种启动方式:PXE\WDS.光盘.U盘.虚拟机ISO镜像文件 这里采用ISO镜像 MDT 2013 UPDATE 1镜像文件在需要部署的机器上启动 用户名,密码错误,不在同一网段等可能会导致共享无法找到 选择对应的安装任务 系统开始安装选定的任务部署 操作系统安装中 顺利完成安装任务,比手工安装方式快很多

五、MDT 2013 Update 1批量部署-WINDOWS 7样本机镜像部署

5.1 样本机镜像导入 选择样本机镜像 修改硬盘分区方案,删除原先1%的恢复分区(实在想不出有啥用),安装系统分区为总容量的60%,第2分区为40% 5.2 开始样本机部署 样本机的WINDOWS 7专业版操作系统安装中 依据样本机镜像完成安装 依据硬盘分区方案自动进行硬盘分区

附3、MDT 2013 Update 1批量部署-Windows 7镜像获取时防止剩余Windows 重置计数减少的方法

最近升级MDT部署系统下的WINDOWS 7操作系统镜像,升级补丁,更新应用程序,再获取镜像后重新部署,但是在升级过程中碰到到问题,就是有些镜像正常获取后再部署时,能正常安装,但是在第一次启动后WIN 7系统显示一个登录界面,在这个界面上无管理员登录帐号(正常MDT部署后的WINDOWS 7显示有administrator账号),输入管理员帐户,密码,结果显示账号已经被锁定. 利用网上的方法启用管理员账号后,原有的MDT部署任务中断,也就是无法完整的运行一个MDT任务. 这个问题其实在去年就碰到

使用网络Ghost批量部署Windows Server 2008 R2

1.准备一台Windows Server 2008 R2操作系统做为模板(部署好需要的软件):2.运行sysprep清除服务器的SSID,选择关机3.通过U盘加载WINPE进行系统备份,Windows Server 2008 R2主引导记录为单独分区,需要进行整盘备份4.找一台计算机安装网络Ghost软件(MouseDos PXE)5.打开MouseDos PXE软件,选择TFtpd32 PXE无盘启动服务器6.配置TFtpd32 PXE7.运行Ghost网络克隆服务器8.其它计算机在BIOS里

六、MDT 2013 Update 1批量部署-WINDOWS 10专业版安装

七、MDT 2013 Update 1批量部署-WINDOWS 7专业版升级WINDOWS 10