溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

zabbix批量部署Windows和Linux的agent

發(fā)布時間:2020-08-05 10:28:34 來源:網(wǎng)絡 閱讀:422 作者:cxf210210 欄目:系統(tǒng)運維

對Linux進行批量部署Zabbix-agent

我們這里使用的是ansible來對zabbix-agent進行批量部署,當然在Linux上也可以使用腳本來完成部署

環(huán)境

ansible:10.127.0.133
agent1:172.168.0.4
agent2:172.168.0.5

進行密鑰授權認證實現(xiàn)免密登陸

為方便ansible對agent主機的管理,需要將ansible與agent進行公鑰認證來實現(xiàn)免密登陸

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

實現(xiàn)步驟:
  1. 安裝zabbix-agent4.2的rpm包
  2. 使用yum安裝zabbix-agent
  3. 修改agent配置文件的一些變量,將模板文件覆蓋到agent配置文件
  4. 重啟zabbix-agent
定義agent模板

創(chuàng)建一個模板文件,里面包含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
執(zhí)行playbook文件進行批量部署

ansible-playbook -i /etc/ansible/hosts /etc/ansible/linux-agent.yml
zabbix批量部署Windows和Linux的agent

可以看到playbook已經(jīng)執(zhí)行成功了,接下來可以看一下agent的配置文件
zabbix批量部署Windows和Linux的agent

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

創(chuàng)建自動發(fā)現(xiàn)規(guī)則對部署的主機進行自動發(fā)現(xiàn)并添加監(jiān)控項

創(chuàng)建自動發(fā)現(xiàn)規(guī)則

zabbix批量部署Windows和Linux的agent

添加自動發(fā)現(xiàn)動作

zabbix批量部署Windows和Linux的agent

配置發(fā)現(xiàn)后的操作

zabbix批量部署Windows和Linux的agent

可以看到自動發(fā)現(xiàn)規(guī)則生效了,并鏈接了Linux-OS模板
zabbix批量部署Windows和Linux的agent

對Windows進行批量部署Zabbix-agent

Windows下的批量部署可以通過配置管理工具或者域控制器進行,這里我使用的ansible來對Windows主機進行批量部署

環(huán)境

ansible:10.127.0.133
Windows server2012:172.168.0.6

依賴環(huán)境

ansible依賴
pywinrm>=0.3.0

pywinrm可以使用pip來進行安裝,執(zhí)行以下命令

pip install pywinrm>=0.3.0
Windows依賴
PowerShell 3.0
NET Framework 4.0+

我這里使用的是2012,上面的環(huán)境是不需要做配置的,如果是使用的server2008或更低版本需要進行升級之后才能使用,獲取升級的詳細信息可以訪問ansible官方文檔查看
https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html#host-requirements

安裝winrm內(nèi)存修補程序

由于ansible控制Windows不是使用的ssh協(xié)議,而是用的Windows的winrm服務,而winrm有一個限制可用內(nèi)存量的錯誤,需要安裝腳本進行修復
在powershell上執(zhí)行下面的命令

$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上執(zhí)行下面的命令查看winrm當前的監(jiān)聽端口

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

實現(xiàn)步驟:
  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\
執(zhí)行playbook文件進行批量部署

ansible-playbook -i /etc/ansible/hosts /etc/ansible/linux-agent.yml
zabbix批量部署Windows和Linux的agent

可以看到playbook執(zhí)行成功了,查看Windows的服務,Zabbix-agent也已經(jīng)啟動
zabbix批量部署Windows和Linux的agent

配置動作對部署的主機進行自動發(fā)現(xiàn)并添加監(jiān)控項

添加自動發(fā)現(xiàn)動作

zabbix批量部署Windows和Linux的agent

配置發(fā)現(xiàn)后的操作

zabbix批量部署Windows和Linux的agent

可以看到自動發(fā)現(xiàn)規(guī)則生效了,并鏈接了Windows-OS模板
zabbix批量部署Windows和Linux的agent


歡迎各×××陳師傅”
zabbix批量部署Windows和Linux的agent

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI