天天看点

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

文章目录

  • 实验基础
  • 指定本地yum仓库
  • 创建数据库(用于zabbix-server)
  • 编写/srv/salt/top.sls文件
  • 为ser4部署zabbix-server
  • 为ser3和ser4部署zabbix-agent
  • 为ser4部署zabbix-web界面
  • 编写pillar目录
  • 部署测试及排错
  • 添加zabbix-agent

实验基础

实验目的:

利用saltstack构建server-agent架构的zabbix环境,主要指定server端,并添加一个agent端, 其他的agent端可根据需要多添加几个。

在本篇文章里,搭建的zabbix环境中,ser4是zabbix-server,ser3是zabbix-agent。

实验环境:

172.25.2.3  ser2  saltstack-master端(提前做好)
172.25.2.4  ser3  saltstack-minion端 (提前做好)
172.25.2.5  ser4 saltstack-minion端 (提前做好)

172.25.2.2 真机 构建zabbix软件包的本地仓库
关闭几台虚拟机的firewalld selinux
写好各自的/etc/hosts解析文件
           

实验前的准备:

1.在真机中,将所需的zabbix的软件包放在

/var/www/html/zabbix

目录中,并进行依赖性创建。

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.在实验中需要用到4个配置文件,因此我是先手动部署了一遍zabbix,获得了配置文件,大家可以自行下载,但是文件是必需的。

指定本地yum仓库

在部署中,也可以选择网络安装,但是这里为了加快效率,选择本地yum,所需的包之前已经放在真机。

[[email protected] salt]# cd repos/
[[email protected] repos]# ls
zabbix.sls
[[email protected] repos]# cat zabbix.sls 
zabbix:
  pkgrepo.managed:
    - baseurl: http://172.25.2.250/zabbix/
    - gpgcheck: 0
           
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

创建数据库(用于zabbix-server)

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/files/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
           

在这里,我们需要提前得到create.sql.gz 并且放指定目录。

1.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.尝试将mariadb数据库安装在ser4

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

3.在ser4中发现推过去的目录

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

编写/srv/salt/top.sls文件

此文件作用是将后面的软件等进行一次推。(高级推)

base:
  'ser4':
    - mariadb.install
    - zabbix-server.install
    - zabbix-web.install

  'ser3':
    - zabbix-agent.install
           

1.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

为ser4部署zabbix-server

创建目录zabbix-server,里面写zabbix-server的sls文件和所需的配置文件

[[email protected] zabbix-server]# ls
files  install.sls
[[email protected] zabbix-server]# cat install.sls 
include:
  - repos.zabbix

server-install:
  pkg.installed:
    - pkgs:
      - zabbix-server-mysql
      - zabbix-agent

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

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

zabbix-agent:
  service.running
           

1.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

vim zabbix_agentd.conf 修改zabbix-server配置文件(jinja模板形式)

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

为ser3和ser4部署zabbix-agent

[[email protected] zabbix-agent]# cat install.sls 
include:
  - repos.zabbix

agent-install:
  pkg.installed:
    - name: zabbix-agent

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

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

1.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.修改配置文件

98 Server={{ zabbixserver }}
139 ServerActive={{ zabbixserver }}
150 Hostname={{ hostname }}
           
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

为ser4部署zabbix-web界面

[[email protected] zabbix-web]# cat install.sls 
include:
  - repos.zabbix

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/files/zabbix.conf

  service.running:
    - name: httpd
    - watch:
      - file: web-install
           
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.vim install.sls

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

编写配置文件,更改时区就可以

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

编写pillar目录

[[email protected] pillar]# ls
top.sls  zabbix.sls
[[email protected] pillar]# cat top.sls 
base:
  '*':
    - zabbix
[[email protected] pillar]# cat zabbix.sls 
{% if grains['fqdn'] == 'ser4' %}
DBPASSWD: westos
{% else %}
ZABBIX-SERVER: 172.25.2.5   //zabbix-server的主机ip
{% endif %}
           

1.

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.vim zabbix.sls

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

至此,配置文件编写完成,现在进行部署测试。

部署测试及排错

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

发现报错

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

原因是实验开始前,已经向ser4装了mariadb,手动删除之后再次测试。

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

再次测试,成功部署。

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

默认的密码是zabbix

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

进入监控页面发现zabbix-server处于非运行状态,在ser4上查看端口也没有发现10051,但是查看zabbix-server的状态是running的,查看日志发现问题,原来是数据没有连接成功。

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

在ser2上查看配置文件,发现是自己的数据库密码设置错误,将密码更改为westos,之后,删除ser4上的数据库及其配置文件,重新推送一次。

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

再次测试,发现恢复正常。

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

添加zabbix-agent

将ser3添加至zabbix系统中。

1.添加主机ser3

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

2.添加模板

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

3.监控成功

自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent
自动化运维工具应用之 SaltStack 一键部署zabbix环境实验基础指定本地yum仓库创建数据库(用于zabbix-server)编写/srv/salt/top.sls文件为ser4部署zabbix-server为ser3和ser4部署zabbix-agent为ser4部署zabbix-web界面编写pillar目录部署测试及排错添加zabbix-agent

继续阅读