新上线的服务器需要部署zabbix客户端,并且加入到zabbix监控中,由于新服务器数量较大,所以采用全自动安装部署,文中使用了saltstack的批量部署和zabbix的自动注册结合完成全部需求


环境介绍:

Centos6.5

saltstack 2015.5.10

zabbix 2.2.15


一.Zabbix自动注册

1.启用探索功能

Saltstack批量安装部署Zabbix代理(附zabbix自动注册详解)_第1张图片

点击local network

Saltstack批量安装部署Zabbix代理(附zabbix自动注册详解)_第2张图片

选择一个探索的ip范围,检查方式选择zabbix代理方式,保存设置,启用这个规则

165ed324820cb15b1574a3ef8ff137bb.png-wh_

这时候,在监测中的探索中已经能发现一些设备,包括已经添加的和没添加的设备

2.配置主机名解析(zabbix服务器端)

vim /etc/hosts

192.168.6.111  test1

192.168.6.112  test2

192.168.6.113  test3

目的是在自动注册时可以自动识别主机名

3.启用自动添加主机和模板

Saltstack批量安装部署Zabbix代理(附zabbix自动注册详解)_第3张图片

点击Discovery linux server

Saltstack批量安装部署Zabbix代理(附zabbix自动注册详解)_第4张图片

Saltstack批量安装部署Zabbix代理(附zabbix自动注册详解)_第5张图片

动作选择默认的就可以,条件选择状态好的,以及用zabbix代理的,操作选择添加到的群组,以及要应用的模板,保存设置,启用这个规则

至此,zabbix自动注册功能已经启用,他会在有客户端在启动了zabbix代理并且连接正确的情况下,自动将主机添加到主机列表中

二.Saltstack批量部署zabbix代理

目录结构:

Saltstack批量安装部署Zabbix代理(附zabbix自动注册详解)_第6张图片

1.入口文件

vim /srv/salt/top.sls

base:
  '*':
    - zabbix.init

2.初始化文件

vim /srv/salt/zabbix/init.sls

include:
  - zabbix.install

3.安装文件配置

vim /srv/salt/zabbix/install.sls

zabbix_source:        #复制代理安装包
  file.managed:
    - name: /root/zabbix-2.2.15-1.el6.x86_64.rpm
    - unless: test -e /root/zabbix-2.2.15-1.el6.x86_64.rpm
    - source: salt://zabbix/file/zabbix-2.2.15-1.el6.x86_64.rpm
zabbix-agent_source:
  file.managed:
    - name: /root/zabbix-agent-2.2.15-1.el6.x86_64.rpm
    - unless: test -e /root/zabbix-agent-2.2.15-1.el6.x86_64.rpm
    - source: salt://zabbix/file/zabbix-agent-2.2.15-1.el6.x86_64.rpm

install_zabbix:      #进入目录进行安装
  cmd.run:
    - cwd: /root
    - names:
      - rpm -ivh zabbix-2.2.15-1.el6.x86_64.rpm
      - rpm -ivh zabbix-agent-2.2.15-1.el6.x86_64.rpm
    #- require:
     # - file: zabbix-agent_source

zabbix_conf:        #采用jinja模板
  file.managed:
    - name: /etc/zabbix/zabbix_agentd.conf
    - source: salt://zabbix/file/zabbix_agentd.conf.jinja
    - template: jinja
  service.running:        #启动代理,设置开机自动启动
    - name: zabbix-agent
    - enable: True

jinja模板的应用

cat /srv/salt/zabbix/file/zabbix_agentd.conf.jinja |grep Hostname

2c2c8b6f56edbbf71617efc3e11554cd.png-wh_

意思是使用 salt test* grains.item host 中取到的host名称

4.salt test* state.highstate

观察是否有报错,全部成功就表示部署已经完成

三.观察和等待自动注册到zabbix服务器上

tailf /var/log/zabbix/zabbix_server.log

85d1525bdb608a6ddc9f3a6d9219f91b.png-wh_

日志中出现如上提示,表示注册已经成功!