1、軟件版本python
操做系統:CentOS-6.5-x86_64mysql
salt版本:2015.5.2(直接yum源碼安裝)git
zabbix版本:3.0.3github
2、部署環境規劃web
名稱sql |
IPvim |
主機名架構 |
配置運維 |
Slat-mastertcp |
192.168.63.205 |
Zabbix_server |
2核、2G |
Salt-client |
192.168.63.184 |
Zabbix_client |
2核、2G |
3、zabbix-server(slat-master)架構圖以下:
架構思路:zabbix server先安裝有一個agnet端,而後測試模板和key沒有問題以後,再從/usr/local/zabbix/etc/zabbix_agentd.conf.d 目錄下推送全部的key到客戶端,並重啓zabbix服務便可。
第一種實現方式結合state實現自定義推送:
4、Zabbix-agent配置好自定義key存放的路徑:
Vim /usr/local/zabbix/etc/zabbix_agentd.conf
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf ###定義自定義key存放路徑。
UnsafeUserParameters=1 ###開啓自定義監控
5、master 上配置state具體路徑。
[root@zabbix_server ~]# vim /etc/salt/master
file_roots:
base:
- /srv/salt/ ###sls配置文件存放路徑
- /usr/local/zabbix/etc/zabbix_agentd.conf.d/ ####key推送的文件路徑
#####################
6、切換到目錄下,執行sls的配置操做:
一、環境具體配置:
[root@zabbix_server zabbix]# cd /srv/salt
[root@zabbix_server salt]# ls
top.sls zabbix
二、看一下入口文件:
base:
'*':
- zabbix
三、切換到zabbix目錄下看入口文件:
[root@zabbix_server salt]# cd zabbix/
[root@zabbix_server zabbix]# ls
file.sls init.sls server.sls
四、初始文件init.sls:
[root@zabbix_server zabbix]# cat init.sls
include:
- zabbix.file
- zabbix.server
五、因爲salt是基於python編寫的,因此咱們也能夠寫成一下形式:
config:
file.managed:
{% for item in ['mysql.conf']%}
- name: /usr/local/zabbix/etc/zabbix_agentd.conf.d/`item`
- source: salt://`item`
{% endfor %}
六、推送完成以後,重啓zabbix—agent:
[root@zabbix_server zabbix]# cat server.sls
include:
- zabbix.file
server:
service.running:
- name: zabbix_agentd
- enable: True
- reload: True
七、查看目錄下要推送的文件:
[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
7、執行推送操做:
[root@zabbix_server zabbix]# salt 'zabbix_client' state.highstate -v
**zabbix_client ####表示主機名
查看到第一次已經推送了,mysql.conf這個文件
客戶端查看:
[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