目錄
一、目錄規劃
所有機器公用 -- base
系統初始化 -- init
zabbix安裝 -- zabbix
logstash安裝 -- lostash
[root@linux-node1 base]# mkdir /srv/salt/init /srv/salt/zabbix /srv/salt/logstash
二、zabbix-agent部署
#2.1、下載epel源並配置
[root@linux-node1 files]# wget http://mirrors.aliyun.com/repo/epel-7.repo
[root@linux-node1 init]# cat yum-repo.sls
/etc/yum.repos.d/epel-7.repo:
file.managed:
- source: salt://init/files/epel-7.repo
- user: root
- group: root
- mode: 644
#2.2、測試環境,避免包名等原因,確保腳本正確性
[root@linux-node2 zabbix]# yum list | grep zabbix
[root@linux-node2 zabbix]# yum install -y zabbix22-agent.x86_64
[root@linux-node2 zabbix]# scp zabbix_agentd.conf [email protected]:/srv/salt/base/zabbix/files
#2.3、agent配置文件jinja變量供sls調用
[root@linux-node1 files]# vi /srv/salt/base/zabbix/files/zabbix_agentd.conf
Server={{ ZABBIX-SERVER }}
Hostname= {{ AGENT-HOSTNAME }}
Include=/etc/zabbix_agentd.conf.d/
#2.4、目標狀態sls文件編寫
[root@linux-node1 zabbix]# vi /srv/salt/base/zabbix/zabbix-agent.sls
# 包含epel-7.repo源配置
include:
- init.yum-repo
# yum包安裝
zabbix-agent:
pkg.installed:
- name: zabbix22-agent.x86_64
- require:
- file: /etc/yum.repos.d/epel-7.repo # 檢測依賴yum源,如果有誤則不執行
# agent配置文件
file.managed:
- name: /etc/zabbix_agentd.conf
- source: salt://zabbix/files/zabbix_agentd.conf
- user: root
- group: root
- mode: 655
- template: jinja
- ZABBIX_SERVER: 192.168.56.11
- AGENT_HOSTNAME: {{ grains['fqdn'] }} # 通過grains獲取agent主機名
- require:
- pkg: zabbix-agent
# 服務狀態檢測
service.running:
- name: zabbix-agent
- enable: True
- watch: # 監聽,如果包或者配置文件有變化,重啓服務
- pkg: zabbix-agent
- file: zabbix-agent
# 監聽自定義的監控配置文件目錄
zabbix_agentd.conf.d:
file.directory:
- name: /etc/zabbix_agentd.conf.d
- watch_in:
- service: zabbix-agent # 如果目錄有變更,重啓服務
- require:
- pkg: zabbix-agent
- file: zabbix-agent
# 2.5、執行sls部署
[root@linux-node1 zabbix]# salt "linux-node2*" state.sls zabbix.zabbix-agent test=True