自动化运维之saltstack一键部署zabbix监控平台的server端和agent端


链接: https://pan.baidu.com/s/1jRjapzrU7jm7wW5S5o3OaA 提取码: 9ruv

在这里插入图片描述

1.实验目的和内容

准备三台虚拟机 server1 server2 server3
server1作为salt-master
server2、3作为salt-minion
使用saltstack一键部署zabbix监控平台
server2作为zabbix-server
server3作为zabbix-agent

2.总体框架

在这里插入图片描述

3.顶级文件top.sls

对于server2运行mariadb和zabbix-server模块
对于server3运行zabbix-agent模块

base:
  'server2':
    - mariadb
    - zabbix-server
  'server3':
    - zabbix-agent

在这里插入图片描述

4.部署zabbix-server

mariadb/init.sls

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

  service.running:
    - name: mariadb

  cmd.run:
    - name: mysql -e "DELETE FROM mysql.user WHERE User='';" && mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');" && mysql -e "DROP DATABASE IF EXISTS test;" && mysql -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'" && mysql -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 -pwestos zabbix
    - watch:
      - mysql_database: db-configure

zabbix-server/init.sls

zabbix-server:
  pkg.installed:
    - pkgs:
      - zabbix-server-mysql
      - zabbix-agent
      - httpd
      - zabbix-web-mysql
  file.managed:
    - name: /etc/zabbix/zabbix_server.conf
    - source: salt://zabbix-server/zabbix_server.conf
  service.running:
    - name: zabbix-agent
    - enable: true
timezone:
  file.managed:
    - name: /etc/httpd/conf.d/zabbix.conf
    - source: salt://zabbix-server/zabbix.conf
  cmd.run:
    - name: systemctl restart httpd
zabbix-server-server:
  service.running:
    - name: zabbix-server
    - enable: true
zabbix-server-httpd:
  service.running:
    - name: httpd
    - enable: true

5.部署zabbix-agent

zabbix-agent/init.sls

zabbix-agent:
  pkg.installed:
    - pkgs:
      - zabbix-agent

  file.managed:
    - name: /etc/zabbix/zabbix_agentd.conf
    - source: salt://zabbix-agent/zabbix_agentd.conf
    - template: jinja
    - context:
        ZABBIX_SERVER: 172.25.21.2
        ZABBIX_SERVER_ACTIVE: 172.25.21.2
        AGENT_HOSTNAME: {{ grains['fqdn'] }}
  service.running:
    - name: zabbix-agent
    - watch:
      - file: zabbix-agent

6.结果

运行命令
在这里插入图片描述
查看172.25.21.2/zabbix
在这里插入图片描述


版权声明:本文为Puuwuuchao原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。