Linux-基于saltstack部署zabbix

1. 准备工作:

首先,配置zabbix与saltstack的软件仓库,上至需要安装zabbix的主机上,并安装salt-minion,连接至salt-master端。然后,在另一台空闲主机上安装zabbix服务端,客户端以及web端,获取配置文件备用。

2 . Salt-master: Salt Base文件配置

/srv/salt目录文件结构:

.
├── mariadb 	#数据库配置目录
│   ├── create.sql.gz 			#数据库配置文件
│   └── init.sls				#数据库初始化及安装模块
├── top.sls 	# salt推送文件
├── zabbix-agent 				#zabbix客户端配置目录
│   ├── init.sls				#zabbix客户端安装运行模块
│   └── zabbix_agentd.conf		#zabbix客户端配置文件
├── zabbix-server #zabbix服务端配置目录
│   ├── init.sls			 #zabbix服务端安装运行模块
│   └── zabbix_server.conf	 #zabbix服务端配置文件
└── zabbix-web	#zabbix-web组件安装配置
    ├── init.sls				#zabbix-web组件安装运行模块
    └── zabbix.conf		#zabbix-web在httpd下的配置文件
  • mariadb 模块

      #init.sls
    
db-install:
  pkg.installed:
    - pkgs:
      - mariadb-server
      - mariadb
      - MySQL-python


  service.running:
    - name: mariadb
 
  cmd.run:
    - name: mysql -pwestos -e "DELETE FROM mysql.user WHERE User='';" && mysql -pwestos -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" && mysql -pwestos -e "DROP DATABASE IF EXISTS test;" && mysql -pwestos -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" && mysql -pwestos -e "FLUSH PRIVILEGES;"
    - onlyif: mysql -e "show databases;"

  #mysql_user.present:
    #- name: root
    #- password: westos
db-configure:
  file.managed:
    - name: /mnt/create.sql.gz
    - source: salt://mariadb/create.sql.gz

  mysql_database.present:
    - name: zabbix
    - character_set: utf8
    - collate: utf8_bin
    - connection_user: root
    - connection_pass: westos

  mysql_user.present:
    - name: zabbix
    - host: localhost
    - password: westos
    - connection_user: root
    - connection_pass: westos

  mysql_grants.present:
    - grant: all privileges
    - database: zabbix.*
    - user: zabbix
    - connection_user: root
    - connection_pass: westos

  cmd.wait:
    - name: zcat /mnt/create.sql.gz | mysql -uzabbix -pwestos zabbix
    - watch:
      - mysql_database: db-configure

所需导入文件在安装好server主机的/usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz

  • zabbix-agent模块

      # zabbix-agent/init.sls
    
agent-install:
  pkg.installed:
    - name: zabbix-agent

  file.managed:
    - name: /etc/zabbix/zabbix_agentd.conf
    - source: salt://zabbix-agent/zabbix_agentd.conf
    - template: jinja
    - context:
      zabbixserver: {{ pillar['Zabbix-server'] }}
      hostname: {{ grains['fqdn'] }}

  service.running:
    - name: zabbix-agent
    - watch:
      - file: agent-install
# zabbix-agent/zabbix_agentd.conf

ServerActive={{ zabbixserver }} #引用变量
Hostname={{ hostname }}
Server={{ zabbixserver }}
  • zabbix-server模块

      #zabbix-server/init.sls
    
server-install:
  pkg.installed:
    - pkgs:
      - zabbix-server-mysql
      - zabbix-agent

  file.managed:
    - name: /etc/zabbix/zabbix_server.conf
    - source: salt://zabbix-server/zabbix_server.conf
    - template: jinja
    - context:
      DBPasswd: {{ pillar['DBPasswd'] }}

  service.running:
    - name: zabbix-server
    - watch:
      - file: server-install

zabbix-agent:
  service.running
# zabbix-server/zabbix_server.conf

DBPassword={{ DBPasswd }} #引用变量定义server端的DBPassword
  • zabbix-web模块

     # zabbix-web/init.sls
    
web-install:
  pkg.installed:
    - pkgs:
      - zabbix-web-mysql
      - zabbix-web
      - httpd
      - php
      - php-mysql

  file.managed:
    - name: /etc/httpd/conf.d/zabbix.conf
    - source: salt://zabbix-web/zabbix.conf

  service.running:
    - name: httpd
    - watch:
      - file: web-install
# zabbix-web/zabbix.conf 

 php_value date.timezone Asia/Shanghai # 修改时区
  • 高级推送模块
    top.sls
base:
  'server66':
    - mariadb
    - zabbix-server
    - zabbix-agent
    - zabbix-web

3 . Salt-master: Salt Pillar文件配置在这里插入图片描述

pillar/top.sls中引用所用的zabbix数据:

在这里插入图片描述pillar/zabbix.sls中定义所用的zabbix数据:

{% if grains['fqdn'] == 'server66' %}
DBPasswd: westos
Zabbix-server: 172.25.52.66
{% endif %}

3 . Salt-master推送与zabbix配置初始化

salt server66 state.highstate #高级推送至server66

在这里插入图片描述在这里插入图片描述访问server66的zabbix页面
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值