当前位置: 首页 > news >正文

zabbix的原理与安装

一、Zabbix介绍

1、zabbix 是什么?

  • zabbix是一个开源的IT基础监控软件,能实时监控网络服务,服务器和网络设备的状态,如网络使用,CPU负载、磁盘空间等,主要是包括数据的收集、报警和通知的可视化界面
  • zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

2、zabbix监控原理

  1. zabbix agent安装在被监控的主机上,zabbix agent负责定期收集客户端本地各项数据,并发送至 zabbix server 端,zabbix server 收到数据后,将数据存储到数据库中
  2. 用户基于 Zabbix WEB 可以看到数据在前端展现图像
  3. 当 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 监控部署常用的监控程序

  1. zabbix server(port 10051):zabbix 服务端守护进程,其中 zabbix_agent、zabbix_get、zabbix_sender、zabbix_proxy 的数据最终都提交给 zabbix server
  2. zabbix agent(port 10050):客户端守护进程,负责收集客户端数据,例如:收集 CPU 负载、内存、硬盘使用情况等;
  3. zabbix proxy:zabbix 分布式代理守护进程,通常大于 500 台主机,需要进行分布式监控架构部署;
  4. zabbix get:zabbix 数据接收工具,单独使用的命令,通常在 server 或者 proxy 端执行获取远程客户端信息的命令;
  5. 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硕士&#xff0c;计算机科班&#xff0c;实验室做cpu设计和fpga算法加速&#xff0c;我做处理器安全方向&#xff0c;有项目。 投递 8.25 没有笔试&#xff0c;两轮面试&#xff0c;直接通知下周一面试&#xff0c;草草的准备了下。 一面 技术面 9.4 不到半小时 …...

【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

前馈神经网络(FFNN)和多层感知机(MLP)

多层感知器&#xff08;MLP, Multi-Layer Perceptron&#xff09;和前馈神经网络&#xff08;Feed-Forward Neural Network, FFNN&#xff09;是深度学习中两个经常被使用的术语&#xff0c;它们经常被互换使用。让我们详细地了解这两个术语&#xff1a; 多层感知器 (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 下一步&#xff0c;点击完成 开启安装 设置语言 去掉下载更新选项 继续 点击restart now 输入密码 出现下图说明安装成功&#xff0c;可以畅快的使用了...

Appium混合页面点击方法tap的使用

原生应用开发&#xff0c;是在Android、IOS等移动平台上利用官方提供的开发语言、开发类库、开发工具进行App开发&#xff1b;HTML5&#xff08;h5&#xff09;应用开发&#xff0c;是利用Web技术进行的App开发。目前&#xff0c;市面上很多app都是原生和h5混合开发&#xff0c…...

求解灰度直方图,如何绘制灰度直方图(数字图像处理大题复习 P1)

文章目录 1. 画 X 轴2. 画直方图3. Complete 视频原链接 数字图像处理期末考试大题 B站链接 1. 画 X 轴 2. 画直方图 有几个 0 就在图上画多高&#xff0c;同理有几个 1 &#xff0c;X1 的地方就画多高 3. Complete 这里的情况比较平均&#xff0c;一般来说不会这么平均&a…...

8种结构型设计模式对比

一、适配器模式 简介 适配器模式是一种结构型设计模式&#xff0c;它用于将不兼容的接口转换为可兼容的接口。适配器模式允许两个不兼容的类能够协同工作&#xff0c;通过将一个类的接口转换为另一个类所期望的接口形式。这样就能够在不修改现有代码的情况下&#xff0c;使两…...

【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丢失怎么办?(五种方法快速解决)

首先&#xff0c;让我们来了解一下msvcp120.dll这个文件。msvcp120.dll是一个动态链接库文件&#xff0c;它是Microsoft Visual C 2012 Redistributable Package的一部分。这个文件的作用是支持一些应用程序的运行&#xff0c;例如游戏、办公软件等。当我们在使用这些软件时&am…...

eslint写jsx报错

eslint写jsx报错 ChatGPT提示 在写JSX时&#xff0c;ESLint可能会报出一些语法错误&#xff0c;这些错误通常是由于ESLint默认配置中不支持JSX语法导致的。为了解决这些错误&#xff0c;我们需要在ESLint配置文件中启用对JSX语法的支持。 首先&#xff0c;需要安装eslint-pl…...

最新适合小白前端 Javascript 高级常见知识点详细教程(每周更新中)

1. window.onload 窗口或者页面的加载事件&#xff0c;当文档内容完全加载完成会触发的事件&#xff08;包括图形&#xff0c;JS脚本&#xff0c;CSS文件&#xff09;&#xff0c;就会调用处理的函数。 <button>点击</button> <script> btn document.q…...

积分值和面积、对称性

积分的基本含义要从积分符号说起&#xff0c;积分号含有加号的意思&#xff0c; ∫ a b f ( x ) d x \int ^b_af(x)dx ∫ab​f(x)dx可以理解为&#xff1a;区间[a,b]无限细分为无穷多个dx,无穷多个f(x)乘以dx的累积和。根据上面的描述&#xff0c;面积可以理解为 ∫ a b ∣ f (…...

springboot 整合es

Spring Boot可以轻松地与Elasticsearch进行整合&#xff0c;以实现高效的搜索和分析功能。 以下是如何在Spring Boot应用程序中使用Elasticsearch的步骤&#xff1a; 1.添加依赖项 在pom.xml文件中添加以下依赖项&#xff1a; <dependency><groupId>org.spring…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告&#xff08;肿瘤大小、血液指标&#xff09;&#xff0c;你需要做出一个**决定性判断**&#xff1a;恶性还是良性&#xff1f;这种“非黑即白”的抉择&#xff0c;正是**逻辑回归&#xff08;Logistic Regression&#xff09;** 的战场&a…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...