目录
一、目录规划
所有机器公用 -- 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