自动化运维工具应用之 SaltStack 一键部署zabbix环境

本文介绍如何使用SaltStack构建Zabbix监控环境,包括指定本地YUM仓库、创建数据库、部署Zabbix-Server、Zabbix-Agent和Zabbix-Web界面的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验基础

实验目的:

利用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目录中,并进行依赖性创建。

在这里插入图片描述

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

指定本地yum仓库

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

[root@ser2 salt]# cd repos/
[root@ser2 repos]# ls
zabbix.sls
[root@ser2 repos]# cat zabbix.sls 
zabbix:
  pkgrepo.managed:
    - baseurl: http://172.25.2.250/zabbix/
    - gpgcheck: 0

在这里插入图片描述在这里插入图片描述2.在这里插入图片描述在这里插入图片描述

创建数据库(用于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.在这里插入图片描述在这里插入图片描述2.尝试将mariadb数据库安装在ser4
在这里插入图片描述在这里插入图片描述3.在ser4中发现推过去的目录
在这里插入图片描述

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

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

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

  'ser3':
    - zabbix-agent.install

1.在这里插入图片描述在这里插入图片描述

为ser4部署zabbix-server

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

[root@ser2 zabbix-server]# ls
files  install.sls
[root@ser2 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.在这里插入图片描述
在这里插入图片描述在这里插入图片描述2.
在这里插入图片描述
vim zabbix_agentd.conf 修改zabbix-server配置文件(jinja模板形式)

DBPassword={{ dbpasswd }}

在这里插入图片描述

为ser3和ser4部署zabbix-agent

[root@ser2 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.在这里插入图片描述

在这里插入图片描述2.修改配置文件

 98 Server={{ zabbixserver }}
139 ServerActive={{ zabbixserver }}
150 Hostname={{ hostname }}

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

为ser4部署zabbix-web界面

[root@ser2 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

在这里插入图片描述在这里插入图片描述在这里插入图片描述2.vim install.sls
在这里插入图片描述在这里插入图片描述在这里插入图片描述编写配置文件,更改时区就可以
在这里插入图片描述

编写pillar目录

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

1.在这里插入图片描述在这里插入图片描述2.vim zabbix.sls

在这里插入图片描述
至此,配置文件编写完成,现在进行部署测试。

部署测试及排错

在这里插入图片描述发现报错
在这里插入图片描述原因是实验开始前,已经向ser4装了mariadb,手动删除之后再次测试。
在这里插入图片描述在这里插入图片描述
再次测试,成功部署。

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

在这里插入图片描述在这里插入图片描述
在ser2上查看配置文件,发现是自己的数据库密码设置错误,将密码更改为westos,之后,删除ser4上的数据库及其配置文件,重新推送一次。
在这里插入图片描述再次测试,发现恢复正常。
在这里插入图片描述

添加zabbix-agent

将ser3添加至zabbix系统中。
1.添加主机ser3
在这里插入图片描述2.添加模板
在这里插入图片描述3.监控成功
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
OSZAR »