阿汤博客-承接中小企业服务器维护和网站维护,有意者可以联系博主!

SaltStack自动化批量部署Zabbix

运维维护 1343℃ 0评论

SaltStack环境设置

在本案例我们使用两个环境base和prod,base环境用来存放初始化的功能。prod环境用于放置生产的配置管理功能:

[[email protected] ~]# vim /etc/salt/master

file_roots:

  base:

    – /srv/salt/base

  prod:

    – /srv/salt/prod

#Pillar settings

pillar_roots:

  base:

    – /srv/pillar/base

  prod:

    – /srv/pillar/prod

请参照上面的配置进行Master配置文件的修改。为保证实验顺利完成,建议创建和本案例一致的配置和路径。

创建目录结构并重启salt-master,如下所示:

[[email protected] ~]# mkdir -pv /srv/salt/{base,prod}

[[email protected] ~]# mkdir -pv /srv/pillar/{base,prod}

[[email protected] ~]# /etc/init.d/salt-master restart

Zabbix Agent安装

如果你的监控系统使用的是Zabbix(推荐),那么所有的Minion都应该安装上Zabbix Agent,主要涉及SaltStack的pkg、file、service状态模块以及Pillar的使用。

通过使用Pillar来设置Zabbix Server的IP地址:

[[email protected] ~]# cat /srv/pillar/base/top.sls 

base:

  '*':

    – zabbix

[[email protected] ~]# cat /srv/pillar/base/zabbix.sls 

zabbix-agent:

  Zabbix_Server: 192.168.100.200

安装并启动Zabbix Agent:

[[email protected] ~]# cat /srv/salt/base/init/zabbix_agent.sls 

zabbix-agent:

  pkg.installed:

    – name: zabbix22-agent

  file.managed:

    – name: /etc/zabbix_agentd.conf

    – source: salt://init/files/zabbix_agentd.conf

    – template: jinja

    – defaults: 

    – Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }}

    – require:

      – pkg: zabbix-agent

  service.running:

    – 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

注:zabbix_agentd.conf.d Zabbix配置文件目录用来存放用户自定义的配置。

编写完毕Zabbix Agent的部署后,请将zabbix_agentd.conf文件放置/srv/salt/base/init/files/目录下,同时修改如下:

Include=/etc/zabbix_agentd.conf.d/ #修改或增加

Server={{Server}} #修改此行

这样后期就可以将自定义的监控配置放在/etc/zabbix_agentd.conf.d/目录下。可以先在某一台机器上手动安装Zabbix Agent,然后把相关的文件复制到Salt Master。

初始化环境引用

目前已经把所有初始化所需要的功能都写好了,每个小功能都是一个sls文件。统一放置在init目录下,这样归类后很容易解读。那么怎样来使用呢?在top file里面把这些功能都列出了,可不是一个好主意,我们需要再编写一个sls把这些初始化的功能都包含进来:

[[email protected] ~]# cat /srv/salt/base/init/env_init.sls 

include:

  – init.zabbix_agent

现在我们就可以在top.sls里面给Minion指定状态并执行了:

[[email protected] ~]# cat /srv/salt/base/top.sls 

base:

  '*':

    – init.env_init

注意,在生产环境中,每次执行状态,强烈建议先进行测试,确定SaltStack会执行哪些操作然后再应用状态到服务器上:

[[email protected] ~]# salt '*' state.highstate test=True

在所有Minion上执行状态:

[[email protected] ~]# salt '*' state.highstate

转载请注明:阿汤博客 » SaltStack自动化批量部署Zabbix

喜欢 (0)or分享 (0)