一、软件版本

操作系统:CentOS-6.5-x86_64

salt版本:2015.5.2(直接yum源码安装)

zabbix版本:3.0.3

 

二、部署环境规划

 

名称

IP

主机名

配置

Slat-master

192.168.63.205

Zabbix_server

2核、2G

Salt-client

192.168.63.184

Zabbix_client

2核、2G

 

三、zabbix-server(slat-master)架构图如下:

                                              face/6GiGns8fZWkR7RdMMyWddYiz7FPYm5Gf.png


架构思路:zabbix server先安装有一个agnet端,然后测试模板和key没有问题之后,再从/usr/local/zabbix/etc/zabbix_agentd.conf.d 目录下推送所有的key到客户端,并重启zabbix服务即可。

 

第一种实现方式结合state实现自定义推送:

 

四、Zabbix-agent配置好自定义key存放的路径:

 

Vim /usr/local/zabbix/etc/zabbix_agentd.conf

Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf   ###定义自定义key存放路径。

UnsafeUserParameters=1                      ###开启自定义监控

 

五、master 上配置state具体路径。

 

[root@zabbix_server ~]# vim /etc/salt/master

file_roots:

  base:

    - /srv/salt/                      ###sls配置文件存放路径

- /usr/local/zabbix/etc/zabbix_agentd.conf.d/          ####key推送的文件路径

 #####################

六、切换到目录下,执行sls的配置操作:

 

1、环境具体配置:

[root@zabbix_server zabbix]# cd /srv/salt

[root@zabbix_server salt]# ls

  top.sls  zabbix

 

2、看一下入口文件:

base:

  '*':

- zabbix

3、切换到zabbix目录下看入口文件:

[root@zabbix_server salt]# cd zabbix/

[root@zabbix_server zabbix]# ls

 file.sls  init.sls  server.sls

 

4、初始文件init.sls:

[root@zabbix_server zabbix]# cat init.sls

include:

  - zabbix.file

  - zabbix.server

 

 

5、由于salt是基于python编写的,所以我们也可以写成一下形式:

 

config:

  file.managed:

    {% for item in ['mysql.conf']%}

    - name: /usr/local/zabbix/etc/zabbix_agentd.conf.d/`item`

    - source: salt://`item`

    {% endfor %}

6、推送完成之后,重启zabbix—agent:

[root@zabbix_server zabbix]# cat server.sls

include:

  - zabbix.file

 

server:  

  service.running:   

    - name: zabbix_agentd

    - enable: True

- reload: True

 

7、查看目录下要推送的文件:

[root@zabbix_server files]# pwd

/usr/local/zabbix/etc/zabbix_agentd.conf.d

[root@zabbix_server zabbix_agentd.conf.d]# ls

mysql.conf  tcp.conf

七、执行推送操作:

[root@zabbix_server zabbix]# salt 'zabbix_client' state.highstate -v

   

**zabbix_client ####表示主机名

 

查看到第一次已经推送了,mysql.conf这个文件

 

face/ZQ3JpJNTj56sZdHdkJsZzKBYwf6s8GxR.png

 

客户端查看:

[root@zabbix_client zabbix_agentd.conf.d]# ls

mysql.conf  tcp.conf

 

   **最后在web界面添加相关模板即可

 

 

第二种方式:使用file模块直接推送,配置我们保留不变:

 

[root@zabbix_server files]# salt 'zabbix_client' cp.get_file salt://tcp.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/tcp.conf

zabbix_client:

/usr/local/zabbix/etc/zabbix_agentd.conf.d/mysql.conf

 

salt 'zabbix_client' cp.get_dir salt://zabbix /tmp/  

直接用命令推送即可,推荐使用下面命令的方法来推送文件或者目录。


运维平台开源项目地址:https://github.com/roncoo/roncoo-cmdb