本文参考(小强的博客)http://www.wpython.com/556.html以及http://www.it165.net/os/html/201406/8507.html进行部署,根据本身情况做了一些修改。


本人没什么linux基础,所以加了很多注释,注释都是以个人理解的,有错误希望大家可以指导。适合给没什么linux基础的人群参考


操作系统:Centos6.5

salt-master:192.168.203.30

salt-minion:192.168.203.31


1、salt-master目录结构:

[root@zabbix ~]# tree /srv/salt/
/srv/salt/
├── iptables     # 准备做防火墙规则配置文件,暂时没用
│   └── iptables
├── top.sls     # 入口文件
└── zabbix_client
    ├── conf.sls      # 配置文件
    ├── file
    │   ├── zabbix-2.4.4.tar.gz     # zabbix压缩包
    │   ├── zabbix_agentd    # zabbix客户端文件
    │   └── zabbix_agentd.conf    # zabbix客户端配置文件
    ├── init.sls    # 初始指定配置文件
    └── install.sls    # 安装配置文件

3 directories, 8 files

2、top.sls(入口文件,必须有)

[root@zabbix ~]# cat /srv/salt/top.sls 
base:
  '*':
    - zabbix_client.init    # 指定入口,zabbix_client文件夹下的init.sls文件

3、init.sls

[root@zabbix ~]# cat /srv/salt/zabbix_client/init.sls 
include:
  - zabbix_client.install    # 指向文件,zabbix_client文件夹下的install.sls文件
  - zabbix_client.conf     # 指向文件,zabbix_client文件夹下的conf.sls文件

4、install.sls

[root@zabbix ~]# cat /srv/salt/zabbix_client/install.sls 
zabbix_client_source:
  file.managed:    # 文件管理
    - name: /tmp/zabbix-2.4.4.tar.gz    # 文件
    - unless: test -e /tmp/zabbix-2.4.4.tar.gz    # 如果文件不存在
    - user: root
    - goup: root
    - makedirs: True
    - source: salt://zabbix_client/file/zabbix-2.4.4.tar.gz # 复制此文件到上面路径
zabbix_client_extract:
  cmd.run:
    - cwd: /tmp    # 进入此目录
    - names:
      - tar xvf zabbix-2.4.4.tar.gz    # 加压压缩文件
    - unless: test -d /tmp/zabbix-2.4.4    # 如果此文件不存在
    - require:    
      - file: zabbix_client_source    # 需要执行完zabbix_client_source
zabbix_user:
  user.present:
    - name: zabbix
    - createhome: False
    - gid_from_name: True
    - shell: /sbin/nologin
zabbix_client_compile:
  cmd.run:
    - cwd: /tmp/zabbix-2.4.4    # 进入此目录
    - names:
      - ./configure --enable-agent    # 检查agent是否可以编译
    - unless: test -d /tmp/zabbix-2.4.4
    - require:
      - cmd: zabbix_client_extract    # 需要执行完zabbix_client_extract
zabbix_client_make:
  cmd.run:
    - cwd: /tmp/zabbix-2.4.4    # 进入此目录
    - names:
      - make install    # 执行命令make install,进行zabbix编译
    - unless: test -d /tmp/zabbix-2.4.4    # 如果此文件不存在
    - require:
      - cmd: zabbix_client_compile    # 需要执行完zabbix_client_compile

5、conf.sls

[root@zabbix ~]# cat /srv/salt/zabbix_client/conf.sls 
include:
  - zabbix_client.install
zabbix_client_conf:
  file.managed:    
    - name: /usr/local/etc/zabbix_agentd.conf    
    - source: salt://zabbix_client/file/zabbix_agentd.conf
    - template: jinja
    - defaults:
      Hostname: {{ grains ['ip_interfaces']['eth1'][0] }}
zabbix_client_service:
  file.managed:
    - name: /etc/init.d/zabbix_agentd
    - user: root
    - mode: 755
    - source: salt://zabbix_client/file/zabbix_agentd
  cmd.run:
    - names:
      - /bin/chmod +x /etc/init.d/zabbix_agentd
      - /sbin/chkconfig --add zabbix_agentd
      - /sbin/chkconfig zabbix_agentd on
    - unless: /sbin/chkconfig --list zabbix_agentd
  service.running:
    - name: zabbix_agentd
    - enable: True
    - restart: True
    - watch:
      - file: /usr/local/etc/zabbix_agentd.conf

6、zabbix_agentd.conf

[root@zabbix ~]# cat /srv/salt/zabbix_client/file/zabbix_agentd.conf
Hostname={{ grains['ip_interfaces']['eth0'][0] }}

7、服务器主动推命令:

[root@zabbix ~]# salt \* state.highstate

8、查看zabbix日志:

服务端:

[root@zabbix ~]# cat /tmp/zabbix_server.log

客户端:

[root@zabbix ~]# cat /tmp/zabbix_agentd.log