Zabbix监控系统详解2:基于Proxy分布式实现Web应用监控及Zabbix 高可用集群的搭建
文章目录
- 1. zabbix-proxy的分布式监控的概述
- 1.1 分布式监控的主要作用
- 1.2 监控数据流向
- 1.3 构成组件
- 1.3.1 zabbix-server
- 1.3.2 Database
- 1.3.3 zabbix-proxy
- 1.3.4 zabbix-agent
- 1.3.5 web 界面
- 2. 部署zabbix代理服务器
- 2.1 前置准备
- 2.2 配置 zabbix 的下载源,安装 zabbix-proxy
- 2.3 部署数据库并导入zabbix相关文件
- 2.4 编辑zabbix-proxy的配置文件并启动服务
- 2.5 在所有主机上配置 hosts 解析
- 2.6 在 Web 页面配置 agent 代理
- 2.7 在客户端修改 agent2 配置文件
- 2.8 在 Web 页面添加客户端主机
- 2.9 分别在客户端和代理服务器上重启服务
- 2.10 在代理服务器查看日志
- 3. 部署 Zabbix 高可用集群
- 3.1 前置准备
- 3.2 服务端配置
- 3.2.1 配置主节点 zabbix-server
- 3.2.2 配置备节点 Zabbix Server
- 3.2.3 主备节点添加监控主机
- 3.2.4 查看高可用集群状态
- 3.3 配置客户端
- 3.3.1 修改agent01和agent02的配置文件
- 3.3.2 查看Web页面
- 4. 故障切换测试
- 4.1 模拟server01节点出现故障,观察Web前端页面
- 4.2 观察是否成功故障切换
1. zabbix-proxy的分布式监控的概述

1.1 分布式监控的主要作用
-
分担 server 的集中式压力;
-
解决多机房之间的网络延时问题。
1.2 监控数据流向

1.3 构成组件
1.3.1 zabbix-server
整个监控体系中最核心的组件,它负责接收客户端发送的报告信息,所有配置、 统计数据及操作数据都由它组织。
1.3.2 Database
所有配置信息和zabbix收集到的数据都存储在数据库中。
1.3.3 zabbix-proxy
用于分布式系统中,可以代理zabbix-server的功能,减轻server的压力。
1.3.4 zabbix-agent
客户端软件,装在被监控主机上,用于采集监控数据,并把采集到的的数据发送给proxy或者server。
1.3.5 web 界面
web界面可以让用户随时随地都能够轻松的访问到zabbix,是zabbix-server的一部分,通常跟server运行在同一台物理机上
2. 部署zabbix代理服务器

2.1 前置准备
zabbix-server 192.168.67.100
zabbix-agent01 192.168.67.101
zabbix-agent02 192.168.67.102
zabbix-proxy 192.168.67.103
systemctl stop firewalld
setenforce 0
2.2 配置 zabbix 的下载源,安装 zabbix-proxy
rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm
sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repoyum install -y zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy

2.3 部署数据库并导入zabbix相关文件
#配置 Mariadb yum源
cat > /etc/yum.repos.d/mariadb.repo << EOF
[mariadb]
name = MariaDB
baseurl = http://mirrors.aliyun.com/mariadb/yum/10.5/centos7-amd64/
gpgkey = http://mirrors.aliyun.com/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck = 1
enabled=1
EOF#安装mariaDB
yum install -y mariadb-server mariadb#启动
systemctl enable --now mariadb

#初始化数据库
mysql_secure_installation
分别输入 回车 -> n -> Y (设置root密码,如abc123) -> 后面一路 Ymysql -u root -pabc123

#创建数据库并指定字符集
create database zabbix_proxy character set utf8 collate utf8_bin;#创建 zabbix 数据库用户并授权
grant all on zabbix_proxy.* to 'zabbix'@'localhost' identified by 'zabbix';
grant all on zabbix_proxy.* to 'zabbix'@'%' identified by 'zabbix';flush privileges;
#刷新权限

#导入数据库信息
rpm -ql zabbix-sql-scripts #查询 sql 文件的位置cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -uroot -pabc123 zabbix_proxy
2.4 编辑zabbix-proxy的配置文件并启动服务
#修改 zabbix-proxy 配置文件
vim /etc/zabbix/zabbix_proxy.conf#修改以下项
Server=192.168.67.100 #32行,指定 zabbix 服务端的 IP 地址
Hostname=zbx-proxy #42行,指定当前 zabbix 代理服务器的主机名
DBPassword=zabbix #194行,指定当前数据库 zabbix 用户的密码


#启动 zabbix-proxy
systemctl enable zabbix-proxy --now;systemctl status zabbix-proxy

2.5 在所有主机上配置 hosts 解析
cat > /etc/hosts << EOF
192.168.67.100 zbx-server
192.168.67.101 zbx-agent01
192.168.67.102 zbx-agent02
192.168.67.103 zbx-proxy
EOF

2.6 在 Web 页面配置 agent 代理
点击左边菜单栏【配置】中的【动作】,勾选自动注册规则,点击 禁用
点击左边菜单栏【配置】中的【主机】,勾选原有的客户端主机,点击 删除


点击左边菜单栏【管理】中的【agent代理程序】,点击【创建代理】
【agent代理程序名称】输入 zbx-proxy
【系统代理程序模式】选择 主动式
【代理地址】输入 192.168.67.103
点击 【添加】


2.7 在客户端修改 agent2 配置文件
#更改所有客户端
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.67.103 #80行,指定 zabbix 代理服务器的 IP 地址
ServerActive=192.168.67.103:10051 #120行,指定 zabbix 代理服务器的 IP 地址


2.8 在 Web 页面添加客户端主机
#zbx-agent01
点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux server
【Interfaces】选择 客户端,【IP地址】输入 192.168.2.102,【端口】输入 10050
【由agent代理程序监测】选择 zbx-proxy
点击 【添加】



2.9 分别在客户端和代理服务器上重启服务
systemctl restart zabbix-agent2systemctl restart zabbix-proxy
等待一段时间后,点击左边菜单栏【配置】中的【主机】刷新,查看客户端主机监控状态正常

2.10 在代理服务器查看日志
tail -f /var/log/zabbix/zabbix_proxy.log

3. 部署 Zabbix 高可用集群

3.1 前置准备
zabbix-server01 192.168.67.100
zabbix-server02 192.168.67.103
zabbix-agent01 192.168.2.101
zabbix-agent02 192.168.2.102
3.2 服务端配置
zabbix-server01和zabbix-server02都要部署zabbix服务端,详情见Zabbix监控系统详解1 :zabbix服务部署、自定义监控项、自动发现与自动注册
默认情况下,HA 是关闭的。
HA 部分的配置在配置文件的最下面:High availability cluster parameters 部分。
3.2.1 配置主节点 zabbix-server

#主节点 Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.67.100
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
......
HANodeName=zbx-server01 #设置为当前节点主机名
NodeAddress=192.168.67.100:10051 #设置为节点IPsystemctl restart zabbix-server




#主节点给数据库授权远程登录权限
mysql -uroot -pabc123
GRANT all ON zabbix.* TO 'zabbix'@'%' IDENTIFIED BY 'zabbix';
FLUSH PRIVILEGES;

3.2.2 配置备节点 Zabbix Server

#备节点 Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
......
DBHost=192.168.67.103 #87
DBName=zabbix #99
DBUser=zabbix #115
DBPassword=zabbix #123
......
HANodeName=zbx-server02
NodeAddress=192.168.67.103:10051


systemctl restart zabbix-server
3.2.3 主备节点添加监控主机
主备配置文件基本相同,以下以主服务器为例
点击左边菜单栏【配置】中的【主机】,点击【创建主机】

【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01-192.168.67.101
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux servers
【Interfaces】点击添加 客户端
【IP地址】输入 192.168.67.101


3.2.4 查看高可用集群状态
打开Web页面
选择报表-->系统信息
查看高可用集群项是否已经启用


3.3 配置客户端
3.3.1 修改agent01和agent02的配置文件
需要在agent配置文件中将所有的Server节点地址配置到Server和ServerActive中
vim /etc/zabbix/zabbix_agent2.conf
......
Server=192.168.67.100,192.168.67.101,192.168.67.102,192.168.67.103
ServerActive=192.168.67.100;192.168.67.101;192.168.67.102;192.168.67.103
#注意,ServerActive 的连接符是‘;’ ,而不是‘,’




systemctl restart zabbix-agent2.service
3.3.2 查看Web页面


4. 故障切换测试
当zabbix监控主服务器挂掉时,观察能否自动故障切换
4.1 模拟server01节点出现故障,观察Web前端页面
#切换到zabbix-server01
systemctl stop zabbix-server

4.2 观察是否成功故障切换


相关文章:
Zabbix监控系统详解2:基于Proxy分布式实现Web应用监控及Zabbix 高可用集群的搭建
文章目录 1. zabbix-proxy的分布式监控的概述1.1 分布式监控的主要作用1.2 监控数据流向1.3 构成组件1.3.1 zabbix-server1.3.2 Database1.3.3 zabbix-proxy1.3.4 zabbix-agent1.3.5 web 界面 2. 部署zabbix代理服务器2.1 前置准备2.2 配置 zabbix 的下载源,安装 za…...
docker 安装oracle
拉取镜像 拉取oracle_11g镜像 拉取oracle镜像(oracle 11.0.2 64bit 企业版 实例名: helowin) Oracle主要在Docker基础上安装,安装环境注意空间和内存,Oracle是一个非常庞大的一个软件, 建议使用网易镜像或阿里镜像网站这里以oracle 11.0.2…...
C++ vector 自定义排序规则(vector<vector<int>>、vector<pair<int,int>>)
vector< int > vector<int> vec{1,2,3,4};//默认从小到大排序 1234 sort(vec.begin(),vec.end()); //从大到小排序 4321 sort(vec.begin(),vec.end(),greater<int>());二维向量vector<vector< int >> vector<vector<int>> vec{{0…...
机器学习 Q-Learning
对马尔可夫奖励的理解 看的这个教程 公式:V(s) R(s) γ * V(s’) V(s) 代表当前状态 s 的价值。 R(s) 代表从状态 s 到下一个状态 s’ 执行某个动作后所获得的即时奖励。 γ 是折扣因子,它表示未来奖励的重要性,通常取值在 0 到 1 之间。…...
产品设计心得体会 优漫动游
产品设计需要综合考虑用户需求、市场需求和技术可行性,从而设计出能够满足用户需求并具有市场竞争力的产品。以下是我在产品设计方面的心得体会: 产品设计心得体会 1.深入了解用户需求:在产品设计之前,需要进行充分的用户调研…...
前端--CSS
文章目录 CSS的介绍 引入方式 代码风格 选择器 复合选择器 (选学) 常用元素属性 背景属性 圆角矩形 Chrome 调试工具 -- 查看 CSS 属性 元素的显示模式 盒模型 弹性布局 一、CSS的介绍 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精…...
实操指南|如何用 OpenTiny Vue 组件库从 Vue 2 升级到 Vue 3
前言 根据 Vue 官网文档的说明,Vue2 的终止支持时间是 2023 年 12 月 31 日,这意味着从明年开始: Vue2 将不再更新和升级新版本,不再增加新特性,不再修复缺陷 虽然 Vue3 正式版本已经发布快3年了,但据我了…...
系统架构设计:15 论软件架构的生命周期
目录 一 软件架构的生命周期 1 需求分析阶段 2 设计阶段 3 实现阶段 4 构件组装阶段...
金山wps golang面试题总结
简单自我介绍如果多个协程并发写map 会导致什么问题如何解决(sync.map,互斥锁,信号量)chan 什么时候会发生阻塞如果 chan 缓冲区满了是阻塞还是丢弃还是panicchan 什么时候会 panic描述一下 goroutine 的调度机制goroutine 什么时…...
计算机视觉实战--直方图均衡化和自适应直方图均衡化
计算机视觉 文章目录 计算机视觉前言一、直方图均衡化1.得到灰度图2. 直方图统计3. 绘制直方图4. 直方图均衡化 二、自适应直方图均衡化1.自适应直方图均衡化(AHE)2.限制对比度自适应直方图均衡化(CRHE)3.读取图片4.自适应直方图均…...
501. 二叉搜索树中的众数
501. 二叉搜索树中的众数 # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right right class Solution:def findMode(self, root: Option…...
【Linux】常用命令
目录 文件解压缩服务器文件互传scprsync 进程资源网络curl发送简单get请求发送 POST 请求发送 JSON 数据保存响应到文件 文件 ls,打印当前目录下所有文件和目录; ls -l,打印每个文件的基本信息 pwd,查看当前目录的路径 查看文件 catless:可以左右滚动阅读more :翻…...
机器人制作开源方案 | 齿轮传动轴偏心轮摇杆简易四足
1. 功能描述 齿轮传动轴偏心轮摇杆简易四足机器人是一种基于齿轮传动和偏心轮摇杆原理的简易四足机器人。它的设计原理通常如下: ① 齿轮传动:通过不同大小的齿轮传动,实现机器人四条腿的运动。通常采用轮式齿轮传动或者行星齿轮传动…...
Windows中将tomcat以服务的形式安装,然后在服务进行启动管理
Windows中将tomcat以服务的形式安装,然后在服务进行启动管理 第一步: 在已经安装好的tomcat的bin目录下: 输入cmd,进入命令窗口 安装服务: 输入如下命令,最后是你的服务名,避免中文和特殊字符 service.…...
解决ERROR: No query specified的错误以及\G 和 \g 的区别
文章目录 1. 复现错误2. 分析错误3. 解决问题4. \G和\g的区别 1. 复现错误 今天使用powershell连接数据库后,执行如下SQL语句: mysql> select * from student where id 39 \G;虽然成功查询除了数据,但报出如下错误的信息: my…...
mysql中SUBSTRING_INDEX函数用法详解
MySQL中的SUBSTRING_INDEX函数用于从字符串中提取子字符串,其用法如下: SUBSTRING_INDEX(str, delim, count)参数说明: str:要提取子字符串的原始字符串。delim:分隔符,用于确定子字符串的位置。count&am…...
AndroidStudio报错:android.support.v4.app.Fragment
解决办法一 android.support.v4.app.Fragment替换为android.app.Fragment 解决办法二 有时太多,先类型过去再说。 找到gradle.properties,修改: android.useAndroidXfalse android.enableJetifierfalse...
今年这情况,还能不能选计算机了?
在知乎上看到一个有意思的问题,是劝退计算机的。 主要观点: 计算机从业人员众多加班,甚至需要99635岁危机秃头 综上所属,计算机不仅卷,而且还是一个高危职业呀,可别来干了。 关于卷 近两年确实能明显感觉…...
Elastic Cloud v.s. Zilliz Cloud:性能大比拼
Elastic Cloud v.s. Zilliz Cloud:性能大比拼 Zilliz 经常会收到来自开发者和架构师的提问:“Zilliz Cloud 和 Elastic Cloud 比起来,谁进行向量处理能力比较强?” 诸如此类的问题很多,究其根本,大都是开发者/架构师在为语义相似性检索系统进行数据库选型时缺少决策依据有…...
设计模式03———包装器模式 c#
首先我们打开一个项目 在这个初始界面我们需要做一些准备工作 创建基础通用包 创建一个Plane 重置后 缩放100倍 加一个颜色 (个人喜好)调节渐变色 可更改同种颜色的色调 (个人喜好) 调节天空盒 准备工作做完后 接下我们做【…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
面向无人机海岸带生态系统监测的语义分割基准数据集
描述:海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而,目前该领域仍面临一个挑战,即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
