SaltStack安装zabbix-agent [十]

2018年3月15日18:29:49 发表评论 364 views

本篇是实战篇,主要是通过saltstack进行部署,生产如果使用,请在测试环境测试后在执行,记得叫test=Ture,如果您对saltstack不太熟悉,建议您查看下:Saltstack相关文章

一、环境介绍

服务器系统 IP 主机名
CentOS7.2 x86_64 salt-master 192.168.56.11 |node01
CentOS7.2 x86_64 salt-minion 192.168.56.12 |node02

二、Zabbix-agent部署过程

环境是基于前几篇博客基础上Master和minion已经配置完成

2.1,创建zabbix项目文件夹,用于存放状态文件

[root@node01 salt]# mkdir /srv/salt/base/zabbix -p
[root@node01 salt]# mkdir /srv/salt/base/init/files -p

2.2 配置salt的epel源文件

[root@node01 salt]# cd /srv/salt/base/init/files/
[root@node01 files]#  wget http://mirrors.aliyun.com/repo/epel-7.repo

2.3 拷贝zabbix配置文件作为salt的zabbix源文件

[root@node01 files]# ll /etc/zabbix/zabbix_agent.conf 
lrwxrwxrwx 1 root root 22 11月  7 17:40 /etc/zabbix/zabbix_agent.conf -> /etc/zabbix_agent.conf
[root@node01 files]# yum install zabbix22-agent.x86_64
[root@node01 files]#  mkdir /srv/salt/base/zabbix/files
[root@node01 files]# cp /etc/zabbix_agentd.conf /srv/salt/base/zabbix/files

三、添加jiaja模板变量到salt的zabbix源文件

[root@linux-node1 files]# grep ^[a-Z] zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{ ZABBIX_SERVER }} 
Hostname={{ AGENT_HOSTNAME }}
Include=/etc/zabbix_agentd.conf.d/

四、配置epel状态文件管理

[root@linux-node1 init]# pwd
/srv/salt/base/init
[root@linux-node1 init]# vim yum-repo.sls
[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

五,写zabbix-agent的状态文件

[root@linux-node1 zabbix]# pwd
/srv/salt/base/zabbix
[root@linux-node1 zabbix]# cat zabbix-agent.sls 
include:   #支持include功能
  - init.yum-repo

zabbix-agent:
  pkg.installed:
    - name: zabbix22-agent
    - require: 
      - file: /etc/yum.repos.d/epel-7.repo
  file.managed:
    - name: /etc/zabbix_agentd.conf
    - source: salt://zabbix/files/zabbix_agentd.conf
    - user: root
    - group: root
    - mode: 644
    - template: jinja
    - defaults:
      ZABBIX_SERVER: 192.168.56.12
      AGENT_HOSTNAME: {{ grains['fqdn'] }}
    - require:
      - pkg: zabbix-agent
  service.running:
    - name: zabbix-agent
    - enable: True
    - watch:
      - file: zabbix-agent
      - pkg: 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

六、测试

[root@linux-node1 files]# salt 'node02' state.sls zabbix.zabbix-agent test=True

七,执行

[root@linux-node1 files]# salt 'node02' state.sls zabbix.zabbix-agent

八、登陆到node2上面,zabbix 已正常启动

[root@linux-node2 ~]# ps aux |grep zabbix
zabbix     4595  0.0  0.0  77792  1364 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd
zabbix     4596  0.0  0.0  77792  1320 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix     4597  0.0  0.0  77792  1012 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix     4598  0.0  0.0  77792  1012 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix     4599  0.0  0.0  77792  1012 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix     4600  0.0  0.0  77792  1340 ?        S    20:34   0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root       4645  0.0  0.0 112652   976 pts/1    S+   20:35   0:00 grep --color=auto zabbix

九、本章重点总结

1.Jinja模板变量名不支持中横线 -

2.状态文件可以根据项目或服务进行分类管理

3.状态文件支持include功能,支持正则匹配minion id

4.在编写状态文件之前需要先查清楚相关的软件包名称及配置文件名称

5.要习惯先用test=True进行测试,避免不必要的故障

6.基础的东西(jdk,web应用等) 通用的安装全放在一个目录,然后使用include功能

7.做好状态模块之间的依赖关系,避免不必要的状态执行

·

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: