运维学习————Zabbix监控框架(1)

news2024/11/15 19:51:38

目录

一、监控

1、概念

2、作用 

3、创建监控框架 

老牌监控框架

 新款王牌监控框架

二、zabbix简介 

1、概述

2、核心功能 

 三、主要组件及运行原理

1、主要组件

Zabbix Server

Zabbix Agent

Zabbix Proxy

Zabbix Web 界面

数据库

其他

2、监控架构原理图 

原理图

​编辑高可用 

四、安装和配置

1、准备工作

 2、安装zabbix下载源

3、安装Zabbix服务器、代理

4、安装Zabbix前端软件包

​编辑 5、安装 Zabbix Web 界面和 Apache 配置的软件包

6、安装zabbix依赖数据库

7、添加数据库用户,以及 zabbix 所需的数据库信息 

8、导入数据库文件,配置密码 

9、配置时区,启动服务 

五、测试及解决中文乱码

1、测试

2、 解决Web页面中文乱码问题

 3、查看自身监控

一、监控

1、概念

运维监控是指对计算机系统运行状态的实时监视和控制,以确保其安全性、稳定性和高效性。

2、作用 

1,对系统不间断实时监控

2,实时反馈系统当前状态

3,保证服务可靠性安全性

4,保证业务持续稳定运行

3、创建监控框架 

老牌监控框架

Cacti

Cacti是一款基于PHP、MySQL开发的网络流量监测图形分析工具。主要监控网络设备,如路由器,交换机。

Nagios

Nagios是一款开源的IT基础设施监控软件,主要功能是监控系统、网络和基础设施的运行状态,提供实时的警报和通知

Smokeping

Smokeping是一款开源的网络监控工具,它主要用于实时监控网络的延迟和丢包率,并通过图形化界面展示监测结果。

Ganglia

Ganglia是一款开源的分布式监控系统,专为各种规模的集群、数据中心和云环境设计。其主要功能包括收集并聚合来自集群中各个节点的数据,在统一的界面中展示这些数据,以实时了解系统的性能和健康状况。大数据监控框架,监控hadoop之类的。

2012年及之前使用,现在几乎已经被淘汰!

 新款王牌监控框架

Open-Falcon

监控Open-Falcon是一款由小米公司开发的开源监控系统,专为大规模分布式系统设计,提供高效、灵活且可扩展的监控解决方案。市场占有率不高。

Prometheus

Prometheus是一款开源的系统监控和警报工具套件,它通过收集指标数据并提供一个强大的查询语言(PromQL)来监控应用程序和系统。主要功能包括实时监控系统健康状态、收集并分析度量数据、支持多种数据存储后端、提供灵活的警报系统以及可视化展示监控数据等。Prometheus能够高效地处理大规模数据集,并广泛用于云计算、容器化环境(如Kubernetes)以及微服务架构中。

Zabbix

监控Zabbix是一款开源的分布式监控系统,主要用于实时监控和管理网络设备、服务器、应用程序等IT资源。

二、zabbix简介 

官网:https://www.zabbix.com/

1、概述

zabbix是基于web界面的开源监控平台,帮助我们实时检查设备的状态,比如服务器、网络设备等。

当设备出现问题时,它会及时通知我们,让我们可以采取措施来解决。

它支持自定义配置和自定义告警,并且可以实现邮件、短信等方式的告警。

2、核心功能 

数据采集‌:Zabbix Agent方式会定期收集设备的各种指标数据,如CPU使用率、内存占用、网络流量等。这些数据会被Zabbix Server主动获取。

触发检测告警‌:Zabbix会根据事先设定的阈值和触发条件对采集到的数据进行检测。如果某个指标超过了阈值或满足了触发条件,Zabbix会触发一个告警,并根据设置的通知方式通知相关人员。

数据存储‌:Zabbix将采集到的数据存储在数据库中。

数据展示‌:Zabbix提供了丰富的可视化功能,可以将采集到的数据转化成各种图表和报表,帮助用户直观地了解设备的运行状态和趋势。

 三、主要组件及运行原理

1、主要组件

Zabbix Server

功能描述
Zabbix Server 是 Zabbix 监控系统的核心组件,负责接收来自客户端(Agent)或其他监控源的监控数据

特点

数据处理中心:负责数据的接收、处理和存储。

告警触发:根据预设规则触发告警,并通过多种方式通知相关人员。

配置管理:管理所有监控配置,包括主机、模板、监控项、触发器等,确保整个监控系统的正常运作

Zabbix Agent

功能描述

Zabbix Agent 是部署在被监控设备上的轻量级软件组件,负责采集被监控设备的各种指标数据(如CPU使用率、内存占用、磁盘空间等)并发送给 Zabbix Server。Zabbix Agent 支持主动模式和被动模式两种数据采集方式,以适应不同的监控需求和网络环境。

特点

数据采集:能够采集丰富的系统指标和应用程序数据。

多种采集模式:支持主动和被动两种数据采集模式。

安全通讯:支持TLS/SSL加密通信,确保数据传输的安全性。

版本说明:

Zabbix Agent 目前有两个版本:Zabbix Agent(C语言开发,支持多种主流平台)和 Zabbix Agent 2(Go语言开发,性能更优,支持更高的并发和易于扩展,目前主要支持Linux和Windows平台)。

Zabbix Proxy

功能描述

Zabbix Proxy 是可选组件,用于在分布式监控环境中代替 Zabbix Server 接收监控数据并进行预处理。Proxy 减少了数据传输的距离和 Server 的处理压力,提高了监控系统的效率和可扩展性。预处理后的数据会批量发送给 Zabbix Server 进行进一步处理。

特点

数据收集与预处理:从下属的 Agents 或其他监控源收集数据并进行预处理。

数据缓存与转发:在本地缓存数据,并周期性或按需将数据转发给 Zabbix Server。

负载均衡与配置同步:多个 Proxy 可以实现负载均衡,并自动从 Zabbix Server 接收配置更新。

Zabbix Web 界面

功能描述

Zabbix Web 界面是 Zabbix 监控系统的图形用户界面(GUI(Graphical User Interface))。

特点

图形化界面:提供直观易用的操作界面。

配置管理:用户可以通过 Web 界面修改监控配置。

监控数据展示:展示实时和历史监控数据,支持多种图表和报表形式。

数据库

功能描述

数据库用于存储被监控设备的配置信息和监控数据。Zabbix 支持多种数据库类型,如 MySQL、Oracle、PostgreSQL、SQLite 等,用户可以根据实际需求选择合适的数据库系统。

特点

数据存储:持久化存储监控数据和配置信息。

高可用性:支持多种数据库系统,确保数据的安全性和可靠性。

性能优化:通过优化数据库配置和查询语句,提高监控系统的整体性能。

其他

Zabbix Agent确实支持主动和被动两种数据采集模式。

这两种模式在数据收集的方式和效率上有所不同,适用于不同的监控场景和需求。

 

被动模式(Passive Mode)

Zabbix Server 消耗自身资源主动的要数据 agent被动的给,站在agent角度,叫被动模式。

工作原理

在被动模式下,Zabbix Agent会监听一个特定的端口(默认是10050),等待Zabbix Server的指令来收集数据。Zabbix Server会周期性地向Agent发送请求,Agent在收到请求后,会收集相应的监控数据并返回给Server。

特点

默认模式:Zabbix默认采用被动模式进行数据收集。

依赖Server:数据收集依赖于Server的指令,Server需要主动向Agent发起请求。

适用于小规模监控:在监控的主机数量不多时,被动模式可以很好地工作。

可能存在的问题:当被监控的主机数量达到一定规模时,Server需要处理大量的请求,可能会导致性能瓶颈。
 

主动模式(Active Mode)

Zabbix Server 不会消耗自身资源主动的要数据 agent主动的把采集的数据给server,站在agent角度,叫主动模式。

工作原理

在主动模式下,Zabbix Agent会主动收集监控数据,并通过TCP协议将数据发送到Zabbix Server的特定端口(默认是10051)。这种方式下,Agent不再等待Server的请求,而是主动将数据推送给Server。

特点

减轻Server压力:由于Agent主动发送数据,可以减轻Zabbix Server的负担,特别是在监控大量主机时。

实时性:数据可以更快地到达Server,提高了监控的实时性。

适用于大规模监控:在监控大量主机时,主动模式可以更有效地利用网络资源,减少延迟。

配置相对复杂:与被动模式相比,主动模式需要更多的配置工作,包括设置Agent的ServerActive参数等

2、监控架构原理图 

原理图

① zabbix agent 部署在监控目标主机上,负责收集系统和服务的各种指标数据,如 CPU 使用率、内存使用情况、网络流量等,并将这些数据发送到 zabbix server

② zabbix server 接收来自 zabbix agent 的数据,并进行数据分析、存储和处理;对接收到的数据进行分析,并在必要时触发告警通知相关用户或用户组

③ zabbix server 将处理后的数据存储在数据库中,以便长期存档和后续分析

④ zabbix web 是用户界面,通过该界面用户可以查看已存储的监控数据、配置监控项、创建报表以及管理告警等

高可用 

四、安装和配置

1、准备工作

#关闭防火墙并设置开机不启动

#查看防火墙状态 
systemctl  status  firewalld
#关闭防火墙
systemctl  stop firewalld
#设置防火墙开机禁用
systemctl disable  firewalld

关闭SELinux

 

vim /etc/sysconfig/selinux

​​​​​​
vim /etc/selinux/config

一定要关闭,要不后面启动zabbix会报权限不足错误!

 2、安装zabbix下载源

#安装yum源
rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
#更换zabbix.repo为阿里源(和官网不同,提高效率)
cat /etc/yum.repos.d/zabbix.repo
sed -i 's#http://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#'  /etc/yum.repos.d/zabbix.repo
cat /etc/yum.repos.d/zabbix.repo
#清空缓存
yum clean all && yum makecache

3、安装Zabbix服务器、代理

yum install zabbix-server-mysql zabbix-agent -y

zabbix-server-mysql:这是Zabbix服务器的MySQL版本的软件包,安装了Zabbix服务器组件,以便Zabbix监控系统能够运行并通过MySQL保存数据。

zabbix-agent: 这是Zabbix代理软件包,安装了Zabbix代理组件,用于在被监控设备上主动提供监控数据给Zabbix服务器

4、安装Zabbix前端软件包

安装SCL(前提)

yum install centos-release-scl -y

安装 SCL(Software Collections),便于后续安装高版本的 php,默认 yum 安装的 php 版本为 5.4,版本过低,zabbix 5.0 版本对 php 版本最低要 7.2.0 版本。SCL 可以使得在同一台机器上使用多个版本的软件,而又不会影响整个系统的依赖环境。软件包会安装在 /opt/rh 目录下。

编辑/etc/yum.repos.d/zabbix.repo文件并启用zabbix前端存储库:

vim /etc/yum.repos.d/zabbix.repo

 5、安装 Zabbix Web 界面和 Apache 配置的软件包

yum install zabbix-web-mysql-scl zabbix-apache-conf-scl -y

zabbix-web-mysql-scl:这个软件包提供了 Zabbix 的 Web 界面部分,并且使用了 MySQL 数据库作为后端存储

zabbix-apache-conf-scl:这个软件包提供了与 Apache 服务器相关的 Zabbix 配置文件,用于与 Apache 服务器协同工作

安装报错解决 

 和前面的错误一样,还是因为 SCL源在2024年6月30日停止维护了。需要更换yum源

备份原来文件:

copy /etc/yum.repos.d/CentOS-SCLo-scl.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo.bak

copy /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo.bak

vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-SCLo

 再次安装成功,成功!!!

6、安装zabbix依赖数据库

安装 MariaDB 数据库服务器及其相关组件:

yum install -y mariadb-server mariadb

MariaDB是一个开源的关系型数据库管理系统(RDBMS),它是MySQL的一个分支,由MySQL的原始开发者之一Michael Widenius领导的团队创建。MariaDB旨在保持向后兼容性,并提供一个替代MySQL的选择,尤其是在Oracle收购Sun Microsystems(MySQL的母公司)之后,为了应对可能的闭源化和商业策略变化,开源社区开始寻求独立的解决方案。

启用并立即启动MariaDB数据库服务器:

systemctl enable --now mariadb

初始化数据库,并设置密码:

mysql_secure_installation

原始密码是空,直接回车 (我这是设置密码为:123456)

7、添加数据库用户,以及 zabbix 所需的数据库信息 

mysql -uroot -p123456     回车

#新建数据库zabbix 新建用户zabbix密码zabbix 把zabbix数据库中的表的所有权限都给zabbix用户

create database zabbix character set utf8 collate utf8_bin;

show databases;

select user,host from mysql.user;

create user zabbix@localhost identified by 'zabbix';

select user,host from mysql.user;

grant all privileges on zabbix.* to zabbix@localhost;

flush privileges;

quit;

8、导入数据库文件,配置密码 

查看sql文件位置:

rpm -ql zabbix-server-mysql


 

mysql -uroot -p123456

show databases;

use zabbix;

show tables;

没有任何表



 

导入:

将 Zabbix 监控系统所需的数据库结构导入到名为 zabbix 的数据库中

zcat /usr/share/doc/zabbix-server-mysql-5.0.43/create.sql.gz| mysql -uzabbix -pzabbix zabbix

然后重复上面的操作,登录数据库,查看即可

配置密码
vim /etc/zabbix/zabbix_server.conf 

注意:配置的密码一定是创建的用户和密码对应

9、配置时区,启动服务 

vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf


 

启动服务:

systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm

设置开机自动启动:

systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

rh-php72-php-fpm:这是PHP-FPM(FastCGI Process Manager)的服务名称。在这个特定的情景中,rh-php72-php-fpm表示Red Hat 软件集合(Software Collections Library)中包含的 PHP 版本 7.2 的 PHP-FPM 服务

五、测试及解决中文乱码

1、测试

浏览器输入:http://192.168.37.191/zabbix   回车


确认信息:


登录(用户名是Admin(大写A),密码是zabbix ):

切换中文:


 

如果出现错误,请查看日志:

cat /var/log/zabbix/zabbix_server.log

tail -F /var/log/zabbix/zabbix_server.log

2、 解决Web页面中文乱码问题

yum install -y wqy-microhei-fonts

wqy-microhei-fonts 是一种中文字体包。这种字体在Linux系统中广泛使用,特别是对于那些需要显示中文内容的场景。

cp -f /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

-f =force 强制覆盖原来文件 选择是

重启zabbix-server。就可以了

service zabbix-server restart

 

 3、查看自身监控

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2120453.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通义千问Qwen2-7b-instruct部署

前言 https://www.modelscope.cn/models/qwen/Qwen2-7B-Instruct 其实完全可以按照这个介绍来装,不过容易遇到一些问题,新学习,也是记录一下 环境 python 3.10 在自己电脑上用conda创建一个新环境找租用的服务器租一台,3090一…

超微小间距COB大尺寸LED智能会议一体机玩转高清视频会议显示市场

在当今这个数字化飞速发展的时代,高清视频会议已成为企业沟通协作不可或缺的一部分。随着技术的不断革新,超微小间距COB大尺寸LED智能会议一体机以其卓越的性能和多元化的功能,正逐步引领并重塑高清视频会议显示市场的格局。这款集大成者的诞…

Android SystemUI组件(05)状态栏-系统状态图标显示管理

该系列文章总纲链接:专题分纲目录 Android SystemUI组件 本章关键点总结 & 说明: 说明:本章节持续迭代之前章节的思维导图,主要关注下方 SystemBars分析中状态栏中的部分-系统状态图标显示&管理 即可。 1 系统状态图标显…

基于Python的机器学习系列(32):PyTorch - 循环神经网络(RNN)

在本篇文章中,我们将探索循环神经网络(RNN),这是一种特别适用于时间序列数据或文本数据的神经网络模型。在RNN中,当前的输出不仅取决于当前的输入,还受到前一步输出的影响,从而能够捕捉序列数据…

Java 入门指南:JVM(Java虚拟机)—— Java 类文件结构

文章目录 字节码JVM 与字节码字节码的生成过程 Class 文件结构魔数(Magic Number)Class 文件版本号(Minor&Major Version)常量池(Constant Pool)访问标志(Access Flags)前类(This Class&…

Pygame中Sprite类实现多帧动画3-3

4 使用自定义类MySprite 使用自定义类MySprite实现多帧动画的步骤是首先创建MySprite类的实例,之后使用相关函数对该实例进行操作。 4.1 创建MySprite类的实例 创建MySprite类的实例的代码如图12所示。 图12 创建MySprite类的实例的代码 其中,变量dr…

2024年CCPC网络赛A题题解 —— 军训Ⅰ(gym105336A)

个人认为很唐的一道题,考虑到不少人可能懒得写,我这里给大家发个代码叭,还有一点点题解(因为真的不是很难)。这是题面: 然后我来讲讲怎么做,不觉得会有多少人题目意思都理解不了叭?这…

Javaweb项目-调用接口-如何在服务器端跳转网页后显示并弹出对话框代码

Webapp 项目中在java包下新建一个服务端类 使用JOptionPane框架组件 调用showMessageDialog的方法实现 四个参数null,"这是一个信息对话框","信息",JOptionPane.INFORMATION_MESSAGE 还有确认对话框的代码showConfirmDialog package servlet;import java…

k9s 是什么?有什么功能?

目录 k9s 是什么? 有什么功能? 手动安装 K9s(Windwos) 将 k9s.exe 添加到系统 PATH 启动 K9s k9s 是什么? K9s 是一个命令行工具,用于通过一个图形化的终端界面(类似于图形化用户界面但在命…

【Linux】常用的命令

文章目录 lsls -l / touchcdpwdcatechovim打开文件编辑内容保存退出 mkdirrmmvcpmangreppsnetstat总结 : ls ls > list 列出当前目录下都有哪些内容(文件/目录) 直接输入 ls,是查看当前目录的情况;输入 ls/ 就是看…

检查你的防病毒软件是否可以阻止这 5 个测试恶意软件文件

从网络安全专家到你,每个人都知道你应该使用防病毒软件来保护你的电脑免受黑客、病毒和其他类型的网络威胁。 但即使你这些年来一直在努力使用防病毒程序,你怎么知道它真的有效呢? 安全专家已经想到了这一点,并创建了几种类型的…

TMS320F28335芯片及使用介绍

1、简介 CPU性能的好坏不仅取决于主频大小,还需要看其整体架构集成性能、运算能力与指令体系。TMS320C2000系列DSP集微控制器和高性能 DSP 的特点于一身,具有强大的控制和信号处理能力,能够实现复杂的控制算法。TMS320C2000 系列DSP 片上整合了Flash存储器、快速的AD转换器…

基于微信小程序+Java+SSM+Vue+MySQL的付费自习室预订管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于微信小程序JavaSSMVueMySQL的付费自习室预订管理系统【…

【CMake编译报错小复盘】CMAKE_CUDA_ARCHITECTURES,CMake version,GCC version问题

今天在写大模型量化推理框架时遇到了一些编译上的错误,简单复盘一下问题和解决方案: 问题1:CMAKE_CUDA_ARCHITECTURES 报错信息: CMake Error: CMAKE_CUDA_ARCHITECTURES must be non-empty if set cmake和cuda相关的报错通常都…

linux进程间通信——进程间通信概念、最基本通信——管道文件

前言: 本节内容将要讲解进程间通信。 之前我们说过进程之间是相互独立的, 但是,相互独立并不代表不能进行数据的输送。就好比我和你是相互独立的, 但是我们可以成为朋友, 可以互赠礼物。 而我们一般而言的,…

【C语言】归并排序递归和非递归——动图演示

目录 一、归并排序思想1.1 基本思想1.2 大体思路 二、实现归并排序(递归)三、实现归并排序(非递归)3.1 实现思路:3.2 越界处理3.3 时间复杂度和空间复杂度 总结 一、归并排序思想 1.1 基本思想 归并排序(M…

RTMP和WebRTC使用场景有哪些差别?

省流版先说结论 直播领域,RTMP和WebRTC各有优势。如果直播场景对延迟有一定要求,但更注重稳定性和兼容性,那么RTMP可能是一个更好的选择。如果直播场景需要极低的延迟,并且用户主要在浏览器环境下进行观看和互动,那么…

Leangoo敏捷工具在缺陷跟踪(BUG)管理中的高效应用

在开发过程中,缺陷(BUG)管理一直是项目管理中的一个关键环节。及时发现并修复BUG,不仅能够提高产品质量,还能有效提升团队的工作效率和用户满意度。 在敏捷开发中,快速迭代和频繁交付的特点使得缺陷管理的…

Servlet的特性(一)

Servlet的主要用途: 接受、处理来自浏览器端(BS架构中的B端)的请求和用户输入 响应来自数据库或者服务端(BS架构中的S端)产生的数据到浏览器端,动态构建网页。 手动实现Servlet小程序 实现步骤 自定义一个类型,实现Servlet接口或者继承Ht…

Spring Boot 集成 Redisson 实现消息队列

包含组件内容 RedisQueue:消息队列监听标识RedisQueueInit:Redis队列监听器RedisQueueListener:Redis消息队列监听实现RedisQueueService:Redis消息队列服务工具 代码实现 RedisQueue import java.lang.annotation.ElementTyp…