zabbix的原理与安装
一、Zabbix介绍
1、zabbix 是什么?
- zabbix是一个开源的IT基础监控软件,能实时监控网络服务,服务器和网络设备的状态,如网络使用,CPU负载、磁盘空间等,主要是包括数据的收集、报警和通知的可视化界面
- zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。
2、zabbix监控原理
- zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中
- 用户基于 Zabbix WEB 可以看到数据在前端展现图像
- 当 zabbix 监控某个具体的项目, 该项目会设置一个触发器阈值,当被监控的指标超过该触发器设定的阈值,会进行一些必要的动作,动作包括:发送信息(邮件、微信、短信)、发送命令(shell 命令、reboot、restart、install 等)。
- Zabbix server 可以通过SNMP,Zabbix agent,ping ,端口监视等方法提供对远程服务器够/网络状态的监视,数据收集等功能,它可以运行在linux平台上。
- Zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU等信息的收集,以及中间件的信息。
总结:
zbbix_server 服务端可以通过主动或被动的方式获取到zabbix_agent客户端的数据,zabbix_server拿到数据后进行分析,存放到自己的数据库中,zabbix再将数据给到web_server,然后用户通过client访问web_server的UI界面访问
3、Zabbix 监控部署常用的监控程序
- zabbix server(port 10051):zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server
- zabbix agent(port 10050):客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等;
- zabbix proxy:zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署;
- zabbix get:zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令;
- zabbix sender:zabbix 数据发送工具,用户发送数据给 server 或 proxy 端,通常用户耗时比较长的检查。
4、zabbix监控模式
4.1 主动监控(agent端向server发起连接 )
zabbix agent,主动向zabbix server端发起请求,发送监控项列表,并且主动将监控内需要的数据提交给zabbix server

4.2 被动监控(server端向agent端发起连接 )
zabbix server向zabbix agent,请求获取监控项的数据,zabbix agent返回数据,可以看出zabbix主动和被动模式,是以zabbix agent为基准的

4.3 总结
①被动模式:由zabbix server向agent发出指令,获取数据,zabbix agent端被动的去获取数据,并返回给zabbix server端,zabbix server端周期性的向agent索取数据,这种模式的最大的问题就是加大zabbix server 的工作量,在数百台服务器的环境下,zabbix server 端不能能及时获取到最新的数据,但这也是默认的工作方式。
②主动模式:由zabbix agent主动采集数据并返回给zabbix server,不再需要zabbix server进行干预,因此主动模式在一定程度上,可减轻zabbix server的压力。
二、Zabbix监控框架
1、server-client
最简单的架构,监控机器和被监控机器之间不经过任何处理,直接由server和agent之间进行数据交换。适用于网络比较简单,尽量在局域网内使用,设计比较少的监控。

2、server-proxy-clinet
其中proxy是server和client之间沟通的一个桥梁,proxy本身没有前端,而本身也并不存放数据,只是将agent发来的数据暂时存放,而后再提交给server。该框架经常是和master-node-client作比较,一般适用于跨机房、跨网络的中型网络架构。

3、master-node-client
master-node-client是zabbix最复杂的监控架构,适用于跨网络、跨级房设备较多的大型环境。每个node同时又是server端,node下面可以将proxy代理,也可以直接接client,node由自己的配置文件和数据库,其要做的是将配置信息和监控数据向master同步,master故障或损坏,对node其下的架构完整性不影响。

三、Zabbix安装
1、部署Zabbix服务端
Zabbix-server 硬件内存至少2G,推荐4G
- 关闭防火墙,更改主机名
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-server

- 获取 zabbix 的下载源
- 更换 zabbix.repo 为阿里源
-
安装zabbix服务端
//获取 zabbix 的下载源
rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm //更换 zabbix.repo 为阿里源
cd /etc/yum.repos.d
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' zabbix.repoyum clean all && yum makecacheyum install -y zabbix-server-mysql zabbix-agent


- 安装SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。
yum install -y centos-release-scl
#安装SCLvim /etc/yum.repos.d/zabbix.repo
[zabbix-frontend]
......
enabled=1 #开启安装源
......yum install -y zabbix-web-mysql-scl zabbix-apache-conf-scl
#将前端环境安装达到SCL下

1.1 安装部署zabbix所需要的数据库
-
安装zabbix数据库和初始化以及授权
yum install -y mariadb-server mariadb
systemctl enable --now mariadb
#安装mariadb数据库并启动mysql_secure_installation
#初始化数据库(后=后面全部输入y),并设置密码,如:123mysql -u root -p123
#登录数据库create database zabbix character set utf8 collate utf8_bin;
#创建zabbix库,使用utf8字符集编码grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';
#授权权限,zabbix用户可以使用密码zabbix从任意主机登录,且拥有zabbix库的所有权限flush privileges;
#刷新授权表


-
导入数据库信息
rpm -ql zabbix-server-mysql
#查询mysql文件的位置zcat \
/usr/share/doc/zabbix-server-mysql-5.0.26/create.sql.gz | \
mysql -uroot -p123 zabbix
#zcat压缩状态下查看,然后将压缩的文件导入到zabbix库中mysql -u root -p123
use zabbix;
show tables;
#查看zabbix数据库中是否有文件导入


-
修改zabbix_server配置文件,修改数据库密码
vim /etc/zabbix/zabbix_server.conf
....
DBpassword=zabbix #124行,指定zabbix数据库的密码

- 修改zabbix的php配置文件
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
......
php_value[date.timezone] = Asia/Shanghai #24行,取消注释,修改时区

-
启动zabbix相关服务
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm#服务包含(zabbix_server、zabbix_agent、httpd、php)

1.3 浏览器前端页面
浏览器访问:http://20.0.0.55/zabbix
点击下一步,设置数据库的密码 zabbix
安装完成后,默认的登录账号和密码为:Admin/zabbix
设置文件界面:点击左边菜单栏的【User settings】,【Language】选择 Chinese(zh_CN),再点击 Update 更新。

下一步继续

输入数据库登录密码下一步

继续下一步

确认信息下一步

安装完成

登录zabbix前端界面

查看zabbix的最新数据

发现存在乱码

1.4 解决乱码问题
yum install -y wqy-microhei-fonts\cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

2、部署zabbix客户端
zabbix 5.0 版本采用golang语言开发的新版本客户端agent2。
zabbix服务端zabbix_server默认使用10051端口,客户端zabbix_agent2默认使用10050端口。
2.1 环境准备
关闭防火墙、增强功能、修改主机名
systemctl disable --now firewalld
setenforce 0
hostnamectl set-hostname zbx-agent01
su
配置时间同步
- 服务端和客户端都要配置时间同步
yum -y install ntpdate
ntpdate -u ntp.aliyun.com

zabbix-agent01客户端

mv /etc/localtime{,.bak}
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#设置时区
2.2 安装zabbix客户端zabbix-agent2
配置zabbix的下载源,安装zabbix-agent2
rpm -ivh \
https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#获取下载源cd /etc/yum.repos.d
#进入源目录sed -i \
's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/yum.repos.d/zabbix.repo
#修改为阿里云源yum clean all && yum makecache
#删除缓存和重新加载yum install -y zabbix-agent2
#安装zabbix-agent2


修改agent2配置文件
cp /etc/zabbix/zabbix/zabbix_agent2.conf{,.bak}vim /etc/zabbix/zabbix_agent2.conf时Server=20.0.0.55 #80行,指定zabbix服务端ip
ServerActive=20.0.0.55 #124行,指定zabbix服务端ip
Hostname=zbx-agent01 #133行,设置客户端主机名

2.3 启动zabbix-agent2,并验证联通性
启动zabbix-agent2
systemctl enable --now zabbix-agent2
netstat -natp |grep 10050

在服务端验证连通性(服务端操作)
yum -y install zabbix-get.x86_64
#服务端安装zabbix主动获取数据的命令zabbix_get -s '20.0.0.56' -p 10050 -k 'agent.ping'
#-k指定键,如果返回1,则表示能ping通zabbix_get -s '20.0.0.56' -p 10050 -k 'system.hostname'
#获取客户端的主机名zabbix_get -s '20.0.0.56' -p 10050 -k 'system.uname'
#获取客户端的内核版本

2.4 在web页面添加agent主机
点击左边菜单栏【配置】中的【主机】,点击【创建主机】{---------------------------------
【主机名称】设置成 zbx-agent01【可见的名称】设置成 zbx-agent01-20.0.0.56【群组】选择 Linux server【Interfaces】的【IP地址】设置成 20.0.0.56再点击上方菜单栏【模板】
------------------------------------}【Link new tamplates】搜索 Linux ,选择 Template OS Linux by Zabbix agent点击 【添加】
点击左边菜单栏【配置】中的【主机】,点击【创建主机】




相关文章:
zabbix的原理与安装
一、Zabbix介绍 1、zabbix 是什么? zabbix是一个开源的IT基础监控软件,能实时监控网络服务,服务器和网络设备的状态,如网络使用,CPU负载、磁盘空间等,主要是包括数据的收集、报警和通知的可视化界面zabbi…...
ReactNative中升级IOS 17版本Crash解决
ReactNative中升级IOS 17版本Crash解决 ReactNative中升级IOS 17版本Crash解决一、问题描述二、原因分析三、解决方案决策3.1 设置宽高为非零值3.2 使用新的UIGraphicsImageRenderer替换就版本的UIGraphicsBeginImageContext 四、可能使用到该API的三方库4.1 react-native-fast…...
MongoDB详解
一、MongoDB概述 MongoDB 是一个基于 分布式文件存储 的开源 NoSQL 数据库系统,由 C 编写的。MongoDB 提供了 面向文档 的存储方式,操作起来比较简单和容易,支持“无模式”的数据建模,可以存储比较复杂的数据类型,是一…...
【SpringCloud微服务全家桶学习笔记-服务注册zookeeper/consul】
SpringCloud微服务全家桶学习笔记 Eureka服务注册 gitee码云仓库 9.其他服务注册框架 (1)zookeeper安装与使用 zookeeper需安装在虚拟机上,建议使用CentOS,安装地址如下: zookeeper镜像源 选择第一个进入后下载ta…...
【滑动窗口】LCR 016. 无重复字符的最长子串
LCR 016. 无重复字符的最长子串 解题思路 窗口内的字符串就是不重复子串每次遇到新的字符 看看窗口内是否存在该字符 如果存在直接剔除 然后调整窗口左边界不存在 添加窗口内部 右边界 class Solution {public int lengthOfLongestSubstring(String s) {if(s.length() < …...
C++中将类成员函数作为变量传递给函数
假设类ClassName有一个成员函数 void ClassName::funcname(int);通过typedef定义一个类成员函数指针类型,参数和返回值类型都要与成员函数对应 typedef void (ClassName::*FuncPtr)(int); // 定义类成员函数指针获取到的参数就是 FuncPtr pf...
2024届数字IC设计秋招面经-鼎信
背景 985硕士,计算机科班,实验室做cpu设计和fpga算法加速,我做处理器安全方向,有项目。 投递 8.25 没有笔试,两轮面试,直接通知下周一面试,草草的准备了下。 一面 技术面 9.4 不到半小时 …...
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法
💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …...
前馈神经网络(FFNN)和多层感知机(MLP)
多层感知器(MLP, Multi-Layer Perceptron)和前馈神经网络(Feed-Forward Neural Network, FFNN)是深度学习中两个经常被使用的术语,它们经常被互换使用。让我们详细地了解这两个术语: 多层感知器 (MLP): M…...
EasySwipeMenuLayout - 独立的侧滑删除
官网 GitHub - anzaizai/EasySwipeMenuLayout: A sliding menu library not just for recyclerview, but all views. 项目介绍 A sliding menu library not just for recyclerview, but all views. Recommended in conjunction with BaseRecyclerViewAdapterHelper Feature…...
优麒麟下载、安装、体验
下载 官网 优麒麟 点击增强版、或者基础版进行下载 虚拟机安装 选择镜像 修改名称和存储路径 设置为50G 下一步,点击完成 开启安装 设置语言 去掉下载更新选项 继续 点击restart now 输入密码 出现下图说明安装成功,可以畅快的使用了...
Appium混合页面点击方法tap的使用
原生应用开发,是在Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发;HTML5(h5)应用开发,是利用Web技术进行的App开发。目前,市面上很多app都是原生和h5混合开发,…...
求解灰度直方图,如何绘制灰度直方图(数字图像处理大题复习 P1)
文章目录 1. 画 X 轴2. 画直方图3. Complete 视频原链接 数字图像处理期末考试大题 B站链接 1. 画 X 轴 2. 画直方图 有几个 0 就在图上画多高,同理有几个 1 ,X1 的地方就画多高 3. Complete 这里的情况比较平均,一般来说不会这么平均&a…...
8种结构型设计模式对比
一、适配器模式 简介 适配器模式是一种结构型设计模式,它用于将不兼容的接口转换为可兼容的接口。适配器模式允许两个不兼容的类能够协同工作,通过将一个类的接口转换为另一个类所期望的接口形式。这样就能够在不修改现有代码的情况下,使两…...
【PX4】Ubuntu20.04+ROS Noetic 配置PX4-v1.12.2和Gazebo11联合仿真环境【教程】
【PX4】Ubuntu20.04ROS Noetic 配置PX4-v-v1.12.2和Gazebo11联合仿真环境【教程】 文章目录 【PX4】Ubuntu20.04ROS Noetic 配置PX4-v-v1.12.2和Gazebo11联合仿真环境【教程】0. 安装UbuntuROS1. 安装依赖2. 安装QGC地面站3. 配置PX4-v1.12.23.1 安装PX43.2 测试PX4是否成功安装…...
msvcp120.dll丢失怎么办?(五种方法快速解决)
首先,让我们来了解一下msvcp120.dll这个文件。msvcp120.dll是一个动态链接库文件,它是Microsoft Visual C 2012 Redistributable Package的一部分。这个文件的作用是支持一些应用程序的运行,例如游戏、办公软件等。当我们在使用这些软件时&am…...
eslint写jsx报错
eslint写jsx报错 ChatGPT提示 在写JSX时,ESLint可能会报出一些语法错误,这些错误通常是由于ESLint默认配置中不支持JSX语法导致的。为了解决这些错误,我们需要在ESLint配置文件中启用对JSX语法的支持。 首先,需要安装eslint-pl…...
最新适合小白前端 Javascript 高级常见知识点详细教程(每周更新中)
1. window.onload 窗口或者页面的加载事件,当文档内容完全加载完成会触发的事件(包括图形,JS脚本,CSS文件),就会调用处理的函数。 <button>点击</button> <script> btn document.q…...
积分值和面积、对称性
积分的基本含义要从积分符号说起,积分号含有加号的意思, ∫ a b f ( x ) d x \int ^b_af(x)dx ∫abf(x)dx可以理解为:区间[a,b]无限细分为无穷多个dx,无穷多个f(x)乘以dx的累积和。根据上面的描述,面积可以理解为 ∫ a b ∣ f (…...
springboot 整合es
Spring Boot可以轻松地与Elasticsearch进行整合,以实现高效的搜索和分析功能。 以下是如何在Spring Boot应用程序中使用Elasticsearch的步骤: 1.添加依赖项 在pom.xml文件中添加以下依赖项: <dependency><groupId>org.spring…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
命令行关闭Windows防火墙
命令行关闭Windows防火墙 引言一、防火墙:被低估的"智能安检员"二、优先尝试!90%问题无需关闭防火墙方案1:程序白名单(解决软件误拦截)方案2:开放特定端口(解决网游/开发端口不通)三、命令行极速关闭方案方法一:PowerShell(推荐Win10/11)方法二:CMD命令…...
Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...
