Zabbix监控介绍与部署

目  录

一、zabbix介绍和架构

1.1 zabbix介绍

1.2 为什么需要监控

1.3 需要监控什么

二、zabbix使用场景与系统概述

2.1 zabbix的功能

2.2 zabbix架构

2.3 Zabbix术语

三、编译安装zabbix

3.1 安装依赖环境

3.2 建立管理用户

3.3 准备源码包,解压包

3.4 编译安装

3.5 添加客户端

3.6 安装数据库

3.7 导入zabbix数据库文件

3.8 安装web apache

3.9 修改zabbix配置

3.10 升级php版本

3.11 下载配置

3.12 准备service文件

3.13 修改中文

3.14 修改字体,以及图表的中文乱码问题


一、zabbix介绍和架构

1.1 zabbix介绍

zabbix是一个企业级解决方案,支持实时监控数千台服务器,虚拟机和网络设备,采集百万级监控指标,适用于任何IT基础架构,服务应用程序和资源的解决方案。

1.2 为什么需要监控

在linux运维行业中,通常有句话是这么讲的:“无监控,不运维”。监控俗称“第三只眼”。没了监控,什么基础运维,业务运维都是“瞎子”。所以说监控是运维这个职业的根本。尤其是现在有人说运维是背锅侠,那么,有了监控,有了充足的数据,一切以数据说话,运维还需要背锅吗,所以作为一个运维工程师,如何构建一套监控系统是你的第一件工作。

监控功能:

在需要的时刻,提前预警即将出问题,避免故障发生。

实时监控系统和业务,当出问题之后,通过发出警告,提醒相关人员,快速可以找到问题的根源,从而及时处理问题

可以实现网站,应用或者服务器的故障自愈,保证高可用性。

以图形或易观察的方式呈现当前以及过往的状态,便于分析和预测系统发展趋势。

1.3 需要监控什么

zabbix作为一款监控系统,监控一切需要监控的资源。包括:服务器,网络设备,业务应用,云服务等。

 硬件监控:通过远程控制卡来完成物理设备的监控工作,通常必须要监控包括温度、硬盘故障等路由器,交换机,打印机等。

系统监控:CPU,内存,硬盘使用率,硬盘IO,系统负载,进程数。

服务监控:nginx,apache,php-fpm,mysql,memcache,redis,tomcat,JVM,TCP连接数

性能监控:网站性能,服务器性能,数据库性能,存储性能

日志监控:系统会产生系统日志,应用程序会有应用的访问日志、错误日志、服务器有运行日志等。

安全监控:用户登录数,passwd文件变化,本地所有文件改动,nginx+lua编写一个WAF通过kibana可以图形化的展示不同的攻击类型的统计。

网络监控:IP,端口,URL,DB,ping包,IDC带宽网络流量,网络流出速率,网络入流量,网络出流量,网络使用率,SMTP,POP3

二、zabbix使用场景与系统概述

2.1 zabbix的功能

Zabbix 是一个高度成熟完善的网络监控解决方案,包含了多种功能。

数据收集:

历史数据, 即记录每个监控项采集到的每个监控值
趋势数据, 主要保留某个监控项一个小时内历史数据的最大值、最小值和平均值以及该监控项一个小时内所采集到的数据个数
可用性和性能检查;
支持 SNMP(包括主动轮询和被动捕获)、IPMI、JMX、VMware 监控;
自定义检查;
按照自定义的时间间隔采集需要的数据;
通过 Server/Proxy 和 Agents 来执行数据采集。

灵活的阈值定义:

您可以参考后端数据库定义非常灵活的告警阈值,即触发器

高度可配置化的告警:

可以根据递增计划、接收者、媒介类型自定义发送告警通知;
使用宏变量可以使告警通知变得更加高效有用;
自动操作包含远程执行命令。

实时图形:

使用内置图形功能可以将监控项实时绘制成图形。

Web监控功能:

Zabbix可以追踪模拟鼠标在 Web 网站上的点击操作,来检查 Web 网站的功能和响应时间。

丰富的可视化选项:

可以组合多个监控项到单个视图中,创建自定义图表;
网络拓扑图;
以仪表盘样式展示自定义聚合图形和幻灯片演示;报表;
监控资源的更高层次展示视图(业务视图)。

历史数据存储:

存储在数据库中的数据;
历史配置;内置数据管理机制

配置简单:

将被监控设备添加为主机;
主机一旦添加到数据库中,就会采集数据用于监控;
将模板用于监控设备。

使用模板:

模板中分组检查;
模板可以关联模板,继承已关联模板的属性。

网络发现:

自动发现网络设备;
Zabbix Agent 发现设备后自动注册;
自动发现文件系统、网络接口

快捷的Web界面:

基于 PHP 的 Web 前端;
可以从任何地方访问;
您可以定制自己的操作方式;
您可以通过审计日志来查看你的操作

Zabbix API:

Zabbix API 为 Zabbix 提供可编程接口,用于批量操作、第三方软件集成和其他用途

权限管理系统:

安全的用户身份验证;
指定的用户只能查看指定的权限范围内的视图

功能强大且易于扩展的Zabbix Agent:

部署于被监控对象上;
支持 Linux 和 Windows ;

二进制守护进程:

为了更好的性能和更少的内存占用,采用 C 语言编写;
便于移植。

适应更复杂的环境:

使用 Zabbix Proxy 代理,可以轻松实现分布式远程监控

2.2 zabbix架构

Zabbix 由如下主要的功能组件组成:

server

abbix server 是 Zabbix 软件的核心组件
Zabbix Agent 向其报告可用性、系统完整性信息和统计信息。
Zabbix server也是存储所有配置信息、统计信息和操作信息的核心存储库。
Zabbix server也是Zabbix监控系统的告警中心。在监控的系统中出现任何异常,将发出通知给管理员。

基本的 Zabbix Server 的功能分解成为三个不同的组件。他们是:Zabbix server、Web前端和数据库。

Zabbix 的所有配置信息都存储在 Server和Web前端进行交互的数据库中。例如,当你通过Web前端(或者API)新增一个监控项时,它会被添加到数据库的监控项表里。然后,Zabbix server 以每分钟一次的频率查询监控项表中的有效项,接着将它存储在 Zabbix server 中的缓存里。这就是为什么 Zabbix前端所做的任何更改需要花费两分钟左右才能显示在最新的数据段的原因。

数据库

所有配置信息以及 Zabbix 采集到的数据都被持久存储在数据库中
可以支持MySQL,PostgreSQL,Oracle 等多种数据库

WEB 界面

WEB 界面是 Zabbix server 的一部分,用于实现展示和配置的界面通常(但不一定)和 Zabbix server 运行在同一台物理机器上基于 Apache(Nginx)+PHP 实现,早期只支持LAMP架构,从Zabbix5.0开始支持LNMP

AGENT

Zabbix agents 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给Zabbix server。从Zabbix5.0开始支技Zabbix Agent2

PROXY

Zabbix Proxy 可以代替 Zabbix Server 采集性能和可用性数据
Zabbix Proxy 在 Zabbix 的部署是可选部分
Zabbix Proxy 的部署可以很好的分担单个Zabbix server的负载

Java 网关

Zabbix 要监控 tomcat 服务器和其它JAVA程序,需要使用 Java gateway 做为代理,才能从JAVA程序中获取数据

2.3 Zabbix术语

被监控: 即 Zabbix 监控的主机或设备

监控项item:即 Zabbix 监控的相关指标,比如:CPU利用率,内存使用率,TCP连接数等。监控指标,cpu利用率

应用集Application:为方便管理众多的监控项,可将多个同类型的监控项进行归类,纳入一个集合中,即应用集

触发器Trigger:是一个表达式,或者说一个条件,如磁盘利用率超过80%等,当触发条件后,会导致一个触发事件,这个事件会执行一个或多个动作

告警:当触发器和动作二者结合起来时,就构成了的告警机制,比如cpu的使用率达到80%以上,触发了报警动作,系统将自动发送一封邮件到指定的邮箱。然后运维可以及时的去处理此错误   host---> items---> triggers --> action

Web 监测:对WEB服务进行检测,比如:访问指定网站是否可正常访问

模板 Template: 可以方便地应用于多个主机的一组实体的集合。而这些实体包括:

items(监控项)
applications(应用集)
triggers(触发器)
graphs(图形)
screens (聚合图形,自Zabbix 2.0起)

使用模板是减少工作量并简化Zabbix配置的好方法。

模板分为内置模板和自定义模板

三、编译安装zabbix

zabbix作为监控系统,能够在浏览器上登录zabbix,并有数据库做存储。

3.1 安装依赖环境

[root@Node1 ~]#:yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel libevent-devel java-1.8.0-openjdk-devel  -y

3.2 建立管理用户

以zabbix用户的身份登录。

[root@Node1 ~]#:useradd zabbix

3.3 准备源码包,解压包

把准本好的源码包拖进来到/data/下,这个目录是我们自己创建的。

 解压:

3.4 编译安装

进入到zabbix中,编译安装:

[root@Node1 zabbix-4.0.30]#:./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-java
[root@Node1 zabbix-4.0.30]#:make
[root@Node1 zabbix-4.0.30]#:make install

3.5 添加客户端

[root@Node1 zabbix-4.0.30]#:./configure --prefix=/apps/zabbix --enable-agent

3.6 安装数据库

[root@Node1 zabbix-4.0.30]#:yum install mariadb-server.x86_64  -y
[root@Node1 zabbix-4.0.30]#:systemctl start mariadb
[root@Node1 zabbix-4.0.30]#:mysql_secure_installation
Set root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

 mysql_secure_installation      #安全加固脚本

由于第一次没有密码,直接回车

设置密码:set root password

然后设置密码,再输入一次密码。

移除匿名用户

移除测试数据库

不让root远程登录。

登录数据库。我设置的数据库密码是123123

[root@Node1 zabbix-4.0.30]#:mysql -uroot -p123123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.68-MariaDB MariaDB ServerCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> 
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> create user zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost;
Query OK, 0 rows affected (0.00 sec)MariaDB [(none)]> set global log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)

 ctrl + C退出。

3.7 导入zabbix数据库文件

把/data/zabbix-4.0.30/database/mysql/下的数据库文件,导入安装的数据库mariadb

 data数据库必须最后一个导入。

3.8 安装web apache

安装好之后,把/data/zabbix-4.0.30/frontends/php/下的所有文件拷贝到apahceweb页面的目录下/var/www/html/取个文件夹名字zabbix,放入该文件夹下。

[root@Node1 mysql]#:yum install -y httpd
[root@Node1 mysql]#:systemctl start httpd
[root@Node1 mysql]#:cd /data/zabbix-4.0.30/frontends/php/
[root@Node1 php]#:cp -a . /var/www/html/zabbix/

3.9 修改zabbix配置

只需要修改密码配置项。在118行。

日志文件位置,数据库名,数据库用户名,数据库密码。超时时间

[root@Node1 php]#:vim /apps/zabbix_server/etc/zabbix_server.conf
DBPassword=zabbix
[root@Node1 php]#:grep -vE "^#|^$" /apps/zabbix_server/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
Timeout=4
LogSlowQueries=3000

 

 启动:

[root@Node1 php]#:/apps/zabbix_server/sbin/zabbix_server
[root@Node1 php]#:/apps/zabbix_server/sbin/zabbix_agentd

 可以看到,zabbix_server端口号为10050,zabbix_agent端口号为10051

打开浏览器:访问:192.168.114.10/zabbix进入监控页面:

 发现有一些失败的错误。

 

 升级版本。

3.10 升级php版本

[root@Node1 php]#:yum  install php-gettext php-xml php-net-socket php-gd php-mysql  -y
#修改php软件的配置,行号
[root@Node1 php]#:vim /etc/php.ini
384:max_execution_time = 300
394:max_input_time = 600
672:post_max_size = 16M
878:date.timezone = Asia/Shanghai
#重启apache服务
[root@Node1 php]#:systemctl restart httpd

 重新刷新页面:

这时就OK了,点击Next

 其他都默认,就输入密码

 名字随便取 

 下一步Next

3.11 下载配置

这里下载一个配置文件,叫zabbix.conf.php,下载到桌面,拖到/var/www/html/zabbix/conf/下。

从桌面拖进来

然后再去刷新一下:

点击finish

 登录zabbix

看到yes:表示成功进入zabbix监控页面

3.12 准备service文件

要先停止zabbix-server

[root@Node1 conf]#:pkill zabbix_server
[root@Node1 conf]#:vim /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/apps/zabbix_server/etc/zabbix_server.conf"
EnvironmentFile=-/etc/default/zabbix-server
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_server.pid
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
TimeoutSec=infinity
#User=zabbix
#Group=zabbix
[Install]
WantedBy=multi-user.target

修改权限:重新加载配置文件,启动,查看状态。running

[root@Node1 conf]#:chown zabbix:zabbix  /apps/zabbix_server/ -R
[root@Node1 conf]#:systemctl daemon-reload
[root@Node1 conf]#:systemctl start zabbix-server.service
[root@Node1 conf]#:systemctl status zabbix-server.service
● zabbix-server.service - Zabbix ServerLoaded: loaded (/usr/lib/systemd/system/zabbix-server.service; disabled; vendor preset: disabled)Active: active (running) since 五 2024-07-19 23:24:04 CST; 7s agoProcess: 23683 ExecStart=/apps/zabbix_server/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS)Main PID: 23685 (zabbix_server)
......

zabbix-agent同样先停止;

[root@Node1 conf]#:pkill zabbix_agent
[root@Node1 conf]#:vim /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=apps/zabbix_server/etc/zabbix_agentd.conf"
EnvironmentFile=-/etc/default/zabbix-agent
Type=forking
Restart=on-failure
PIDFile=/tmp/zabbix_agentd.pid
KillMode=control-group
ExecStart=/apps/zabbix_server/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target
[root@Node1 conf]#:systemctl restart zabbix-agent && systemctl enable zabbix-agent

3.13 修改中文

右上角点击用户图标:

选择zh_CN中文。 点击更新。

 改成了中文:

 可以去监控,比如监控内存:在监测中,找到图形,主机选择zabbix server,图形选择Memory usage。可以看到下面的图形化展示,一个坐标轴,横坐标代表了时间,纵坐标为使用情况。清晰可见。还可以监控其他的监控项。可以自己选择。

但是这里发现一个乱码的情况。下面解决乱码的问题。

3.14 修改字体,以及图表的中文乱码问题

出现乱码问题,需要去到配置文件修改字符编码,字体。配置文件可以在真机中拷贝过去,在主机的C盘下:C:\Windows\Fonts

可以随便选择一个你喜欢的字体,文件。我选的楷体 常规

切换到路径/var/www/html/zabbix/assets/fonts/下。把这个文件拖进来。必须以小写ttf结尾。

修改字体文件:

#修改字体配置文件,前面数字是行号。
[root@Node1 fonts]#:vim /var/www/html/zabbix/include/defines.inc.php 
72:define('ZBX_GRAPH_FONT_NAME',           'simkai');
113:define('ZBX_FONT_NAME', 'simkai');

不需要重启,去浏览器网页查看。自动变成了楷体 常规字体了:

---end---

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

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

相关文章

封装网络请求 鸿蒙APP HarmonyOS ArkTS

一、效果展示 通过在页面直接调用 userLogin(params) 方法,获取登录令牌 二、申请网络权限 访问网络时候首先需要申请网络权限,需要修改 src/main 目录下的 module.json5 文件,加入 requestPermissions 属性,详见官方文档 【声明权…

鸿蒙 next 5.0 版本页面跳转传参 接受参数 ,,接受的时候 要先定义接受参数的类型, 代码可以直接CV使用 [教程]

1, 先看效果 2, 先准备好两个页面 index 页面 传递参数 import router from ohos.routerEntry Component struct Index {Statelist: string[] [星期一, 星期二,星期三, 星期四,星期五]StateactiveIndex: number 0build() {Row() {Column({ space: 10 }) {ForEach(this.list,…

【Git远程操作】向远程仓库推送 | 拉取远程仓库

目录 1.向远程仓库推送 ​1.1本地仓库的配置 1.2remote-gitcode本地仓库 1.3推送至远程仓库 2.拉取远程仓库 现阶段以下操作仅在master主分支上。 1.向远程仓库推送 工作区☞add☞暂存区☞commit☞本地仓库☞推送push☞远程仓库注意:本地仓库的某个分支 ☞推…

《Techporters架构搭建》-Day01 第一个RESTful API接口

微服务架构搭建 搭建微服务架构分析一下项目的build.gradle添加Demo接口 搭建微服务架构 首先搭建系统管理模块,模块结构如下 tps-cloud └── tps-system -- 系统管理模块└── tps-system-api -- 系统管理模块公共api模块└── tps-system-biz -- 系统管理模…

单片机设计_自行车码表(AT89C51, LCD1602, DS1302,霍尔传感器)

想要更多项目私wo!!! 一、电路设计 系统采用51单片机LCD1602液晶DS1302时钟模块霍尔传感器电机按键模块蜂鸣器报警模块设计而成。 产品自带单片机上电复位电路、手动复位电路(复位按键)、晶振电路(给单片机提供时钟周期)。 …

Zabbix介绍和架构

目录 一.Zabbix简介 1.为什么需要监控 2.需要监控什么 3.常见的监控工具 4.Zabbix使用场景及系统概述 5.Zabbix 架构 6.Zabbix工作流程 7.Zabbix 术语 二. 部署安装zabbix 三.zabbix 配置文件 一.Zabbix简介 1.为什么需要监控 运维行业有句话:“无监控、不运维”&am…

AGV平面坐标系变换公式及实例

1、AGV坐标系简介 如上图,小车前后对角是有激光雷达的,其坐标系称为激光坐标系,采用极坐标系体现。中间为车体坐标系,激光坐标系相对于车体坐标系关系不变;左下角是地图坐标系,小车扫图后,建立的…

探索智慧职校教职工管理的教师信息功能

在智慧职校的教职工管理体系中,教师信息管理犹如教师职业生涯的数字罗盘,引领着教师个人成长与学校教学质量的双轨并进。这一模块的核心精髓在于对教师基本信息的精细捕捉与维护,确保每位教师的个人资料,诸如姓名、性别、出生日期…

RK3588核心板怎么选?为项目挑选合适核心板的五大建议

在信息爆炸的互联网海洋中,面对琳琅满目的RK3588核心板产品,您是否也曾感到眼花缭乱,难以抉择?究竟哪一款能够完美契合您的智能设备开发项目,让您在最短时间内找到最合适的伙伴,减少研发试错,加…

Day58:并查集 108.冗余连接 109.冗余连接II

108. 冗余连接 时间限制:1.000S 空间限制:256MB 题目描述 树可以看成是一个图(拥有 n 个节点和 n - 1 条边的连通无环无向图)。 现给定一个拥有 n 个节点(节点标号是从 1 到 n)和 n 条边的连通无向图&…

wandb本地部署

pip install --upgrade wandbwandb server start(如果失败了) docker pull wandb/local:latest启动 docker run --rm -d -v wandb:/vol -p 8080:8080 --name wandb-local wandb/local:latest打开http://localhost:8080/signup (有可能失败&…

LeetCode热题100刷题16:74. 搜索二维矩阵、33. 搜索旋转排序数组、153. 寻找旋转排序数组中的最小值、98. 验证二叉搜索树

74. 搜索二维矩阵 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int row matrix.size();int col matrix[0].size();for(int i0;i<row;i) {//先排除一下不存在的情况if(i>0&&matrix[i][0]>target…

Qt Style Sheets-入门

Qt 样式表是一种强大的机制&#xff0c;允许您自定义小部件的外观&#xff0c;这是在通过子类化QStyle已经可行的基础上的补充。Qt 样式表的概念、术语和语法在很大程度上受到 HTML级联样式表 (CSS)的启发&#xff0c;但适用于小部件的世界。 概述 样式表是文本规范&#xff0…

教室管理系统的开发与实现(Java+MySQL)

引言 教室管理系统是学校和培训机构日常运营中不可或缺的工具。本文将介绍如何使用Java、Swing GUI、MySQL和JDBC开发一个简单而有效的教室管理系统&#xff0c;并涵盖系统的登录认证、教室管理、查询、启用、暂停和排课管理功能。 技术栈介绍 Java&#xff1a;作为主要编程…

实战项目:仿muduo库实现并发服务器

目录 项目初始与项目演示HTTP服务器基础认识Reactor模式基础认识单Reactor单线程模式认识单Reactor多线程模式认识多Reactor多线程模式认识 目标定位总体大模块划分server模块的管理思想Buffer子模块Socket子模块Channel子模块Connection子模块Acceptor子模块TimerQueue子模块P…

FinClip 率先入驻 AWS Marketplace,加速全球市场布局

近日&#xff0c;凡泰极客旗下的小程序数字管理平台 FinClip 已成功上线亚马逊云科技&#xff08;AWS&#xff09;Marketplace。未来&#xff0c;FinClip 将主要服务于海外市场的开放银行、超级钱包、财富管理、社交电商、智慧城市解决方案等领域。 在全球市场的多样性需求推动…

免费视频批量横转竖

简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具&#xff0c;提供高效便捷的视频批量横转竖&#xff0c;主要功能&#xff1a; 导入与删除文件&#xff1a;轻松导入多个视频文件&#xff0c;删除不必要的文件。暂停与继续处理&#xff1a;随时暂停和继续处理。…

快速了解死锁及如何解决死锁问题

目录 什么是死锁&#xff1f; 死锁代码示例 产生死锁的条件&#xff1a; 死锁的危害&#xff1a; 如何解决死锁问题&#xff1f; 1、预防死锁&#xff08;破坏上述4个产生死锁的条件&#xff09;&#xff1a; 2、银行家算法 3、死锁的检测、解除 4、采用超时机制 什么…

JMeter介绍、安装配置以及快速入门

文章目录 1. JMeter简介2. JMeter安装配置3. JMeter快速入门 1. JMeter简介 Apache JMeter是一款开源的压力测试工具&#xff0c;主要用于测试静态和动态资源&#xff08;如静态文件、服务器、数据库、FTP服务器等&#xff09;的性能。它最初是为测试Web应用而设计的&#xff…

[C++]优先级队列

1 .了解优先级队列 优先级队列是一种容器适配器&#xff0c;根据一些严格的弱排序标准&#xff0c;专门设计使其第一个元素始终是它所包含的元素中最大的元素。 此上下文类似于堆&#xff0c;其中可以随时插入元素&#xff0c;并且只能检索最大堆元素&#xff08;优先级队列中顶…