zabbix自定义监控、钉钉、邮箱报警 (五十六)

news2024/12/26 1:15:06

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、实验准备

二、安装

三、添加监控对象

四、添加自定义监控项

五、监控mariadb

1、添加模版查看要求

2、安装mariadb、创建用户

3、创建用户文件

4、修改监控模版

5、在上述文件中配置路径

6、重启zabbix-agent验证

六、监控NGINX

1、安装NGINX,开启status模块

2、编写脚本、设置key并验证

3、添加自定义监控项

七、钉钉报警设置

1、创建团队、添加机器人

2、配置zabbix server

3、web端设置

八、邮件报警

1、在zabbix-server 上配置邮件服务器

2、编辑 zabbix_server.conf 引用邮件脚本

3、配置 zabbix web 监控项邮件报警

4、测试



一、实验准备

192.168.156.148 zabbix-server

192.168.156.151 zabbix-angent

zabbix-server端:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-agent
yum install centos-release-scl
vim /etc/yum.repos.d/zabbix.repo
####改这里
[zabbix-frontend]
...
enabled=1
...
 
yum install zabbix-web-mysql-scl zabbix-apache-conf-scl
 
yum -y install mariadb mariadb-server
systemctl start mariadb.service 
##进入MYSQL
mysql
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user "zabbix"@"localhost" identified by '123456';
mysql> grant all privileges on zabbix.* to "zabbix"@"localhost";
mysql> exit;
 
zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
 
yum install zabbix-get
 
 
vim /etc/zabbix/zabbix_server.conf
##修改密码
DBPassword=123456
##揭开注释
DBHost=localhost

 
 
vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
 
 
 
systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

zabbix-angent端:

rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
yum install zabbix-agent


vim /etc/zabbix/zabbix_agentd.conf
##117行 
Server=192.168.156.148
##163行 
ServerActive=192.168.156.148
##174行 
Hostname=192.168.156.151
 
systemctl start zabbix-agent
systemctl enable zabbix-agent
 
 

二、安装

访问192.168.156.148/zabbix

三、添加监控对象

同理添加192.168.156.151

四、添加自定义监控项

在192.168.15.6151上添加自定义的监控项:监控当前登录用户的个数

vim /etc/zabbix/zabbix_agentd.d/user-login.conf
########定义键
########格式:UserParameter=key,shell命令(脚本也可)
UserParameter=user_login,who|wc -l
 
 
vim /etc/zabbix/zabbix_agentd.conf
###解开注释,启用
UnsafeUserParameters=1
 
systemctl restart zabbix-agent

yum -y install zabbix-get

在zabbix-server 上验证,数据采集没有问题了就可以添加监控项了

在web端添加自定义监控项

验证,使用ssh登录192.168.156.151,让登录用户大于3

五、监控mariadb

1、添加模版查看要求

在192.168.156.151上先

查看说明

Requirements for template operation:
1.Install Zabbix agent and MySQL client.
2.Copy template_db_mysql.conf into folder with Zabbix agent configuration (/etc/zabbix/zabbix_agentd.d/ by default). Don't forget to restart zabbix-agent. 
3.Create MySQL user for monitoring. For example:
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
For more information read the MySQL documentation https://dev.mysql.com/doc/refman/8.0/en/grant.html , please. 
4.Create .my.cnf in home directory of Zabbix agent for Linux (/var/lib/zabbix by default) or my.cnf in c:\ for Windows. For example:
[client]
user='zbx_monitor'
password='<password>'
You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql
Template tooling version used: 0.39
#########################################################################################
模板操作的要求如下:
根据提供的信息,模板操作的要求包括:
安装Zabbix agent和MySQL客户端。
将template_db_mysql.conf复制到Zabbix agent配置文件夹中(默认为/etc/zabbix/zabbix_agentd.d/)。不要忘记重新启动zabbix-agent。
为监控创建MySQL用户。例如:
CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON . TO 'zbx_monitor'@'%';
更多信息请阅读MySQL文档 https://dev.mysql.com/doc/refman/8.0/en/grant.html。
在Linux的Zabbix agent主目录(默认为/var/lib/zabbix)中创建.my.cnf文件,或在Windows的c:\目录中创建my.cnf文件。例如:
[client]
user='zbx_monitor'
password=''
您可以在我们的论坛上讨论此模板或提供反馈意见 https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384189-discussion-thread-for-official-zabbix-template-db-mysql
使用的模板工具版本为0.39

2、安装mariadb、创建用户

###安装、启动
yum -y install mariadb-server
systemctl start mariadb
#######创建用户
CREATE USER 'zabbix'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zabbix'@'%';

3、创建用户文件

vim /etc/zabbix/.my.cnf
 
 
[client]
user='zabbix'
password='123456'
 # #####################

4、修改监控模版

 cd /etc/zabbix/zabbix_agentd.d
 cp /usr/share/doc/zabbix-agent-5.0.37/userparameter_mysql.conf .

5、在上述文件中配置路径

6、重启zabbix-agent验证

systemctl restart zabbix-agent

找到宏,修改我们mariadb的地址为192.168.156.151

六、监控NGINX

1、安装NGINX,开启status模块

yum -y install epel-release
yum -y install nginx
systemctl start nginx
nginx -V #查看模块

vim /etc/nginx/nginx.conf
###server或者location下插入
location / {
}
location /status {                   #定义运行状态页面名称,页面为status
        stub_status on;              #开启模块
        access_log off;              #不开启访问日志记录
        allow 192.168.156.0/24;      #允许此网段的主机访问此网页
        deny all;                    #其余网段主机不允许访问
 }
 
 
 
##重启
systemctl restart nginx

验证此模块

curl 192.168.156.151/status

Active connections: 1 
- 这表示当前服务器上有1个活跃连接。
 
Server accepts handled requests: 2 2 2
- 这个部分显示了服务器已经接受和处理的请求数目。具体来说,服务器已经接受了2个请求,并成功处理了这2个请求。
 
Reading: 0 Writing: 1 Waiting: 0
- 这个部分显示了服务器当前的连接状态。其中,Reading表示正在读取的连接数目为0,Writing表示正在写入的连接数目为1,Waiting表示等待的连接数目为0。

2、编写脚本、设置key并验证

vim /etc/zabbix/script/ngx_status.sh
#!/bin/bash
#定义Nginx status页面
ngx_status="192.168.156.151/status"
 
#判断status页面是否存活
ngx_status_code() {
        http_code=`curl -o /dev/null -s -w %{http_code} ${ngx_status}`
        if [ ${http_code} == "200" ];then
                return 1
        else
                echo "Nginx status is not running."
        fi
}
 
#获取当前活动的客户端连接数
active() {
        ngx_status_code || curl -s ${ngx_status} | grep "Active" | awk '{print $NF}'
}
 
#获取接收客户端连接的总数量
accepts() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $1}'
}
 
#获取已处理的连接总数量
handled() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $2}'
}
 
#获取客户端请求总数量
requests() {
        ngx_status_code || curl -s ${ngx_status} | awk NR==3 | awk '{print $3}'
}
 
#获取正在读取请求标头的当前连接数量
reading() {
        ngx_status_code || curl -s ${ngx_status} | grep "Reading" | awk '{print $2}'
}
 
#获取正在将响应写回到客户端的当前连接数量
writing() {
        ngx_status_code || curl -s ${ngx_status} | grep "Writing" | awk '{print $2}'
}
 
#获取当前正在等待响应的客户端连接数量
waiting() {
        ngx_status_code || curl -s ${ngx_status} | grep "Waiting" | awk '{print $2}'
}
 
#使用位置变量控制脚本输出
case $1 in
        active)
                active;;
        accepts)
                accepts;;
        handled)
                handled;;
        requests)
                requests;;
        reading)
                reading;;
        writing)
                writing;;
        waiting)
                waiting;;
        *)
                echo "Unknown options"
esac
配置Zabbix Agent
 
vim /etc/zabbix/zabbix_agentd.conf
 
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
DenyKey=system.run[*]
EnableRemoteCommands=1
Server=192.168.156.148
ServerActive=192.186.156.148
Hostname=nginx
Timeout=10
Include=/etc/zabbix/zabbix_agentd.d/*.conf
UnsafeUserParameters=1
创建自定义监控项
 vim /etc/zabbix/zabbix_agentd.d/userparameter_nginx.conf
 
UserParameter=nginx.active,bash /etc/zabbix/script/ngx_status.sh active
UserParameter=nginx.accepts,bash /etc/zabbix/script/ngx_status.sh accepts
UserParameter=nginx.handled,bash /etc/zabbix/script/ngx_status.sh handled
UserParameter=nginx.requests,bash /etc/zabbix/script/ngx_status.sh requests
UserParameter=nginx.reading,bash /etc/zabbix/script/ngx_status.sh reading
UserParameter=nginx.writing,bash /etc/zabbix/script/ngx_status.sh writing
UserParameter=nginx.waiting,bash /etc/zabbix/script/ngx_status.sh waiting

重启zabbix-agent

systemctl restart zabbix-agent

数值获取测试

[root@localhost ~]# zabbix_get -s 192.168.156.151 -k nginx.active
1
[root@localhost ~]# zabbix_get -s 192.168.156.151 -k nginx.reading
0

3、添加自定义监控项

创建图形化

七、钉钉报警设置

1、创建团队、添加机器人

https://oapi.dingtalk.com/robot/send?access_token=681e6ba40d4afb526645fdb900555ce8ebaa3ac267bdeb48f01dc14f0dfadb55

2、配置zabbix server

取消注释AlertScriptsPath
# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A
AlertScriptsPath=/usr/lib/zabbix/alertscripts

创建脚本
入该定义的脚本存放路径下创建用来推送告警消息的脚本,使用自己的webhook
# cd /usr/lib/zabbix/alertscripts
# vim dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=3a7191b12c8e8f5580b9bedc9e48938421845e7629c8ff0fe2833f1ede9e8b30" (修改为自己的webhook)
user=sys.argv[1]
text=sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            user
        ],
        "isAtAll": False
    }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/var/log/zabbix/dingding.log"):
    f=open("/var/log/zabbix/dingding.log","a+")
else:
    f=open("/var/log/zabbix/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
    f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
    f.close()
else:
    f.write("\n"+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + "\n" + str(text))
    f.close()

##赋予执行权限
chmod +x dingding.py
##创建日志文件:
touch /var/log/zabbix/dingding.log
chown zabbix.zabbix /var/log/zabbix/dingding.log
 
#####安装python与请求模块
yum -y install python-requests python 
 
#####报警测试,要写三个参数并且带关键字"告警"
./dingding.py xiejin test  "告警测试,请注意"

3、web端设置

创建媒介

添加动作

创建动作名称,并添加一个条件,触发报警条件为大于等于警告

添加操作和恢复操作

操作

Problem: {EVENT.NAME}
 
 
 
-=【告警】=-
告警组:{TRIGGER.HOSTGROUP.NAME}
告警主机:{HOSTNAME1} 
告警主机别名:{HOST.NAME}
主机IP:{HOST.IP}
主机描述:{HOST.DESCRIPTION}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
警报类别:{TRIGGER.NAME}
当前状态:{ITEM.LASTVALUE}
告警平台:http://192.168.156.151/zabbix

恢复操作

Resolved:{EVENT.NAME}
 
 
-=【告警取消啦】=-
恢复主机:{HOSTNAME1}
 
恢复时间:{EVENT.DATE} {EVENT.TIME}
 
主机IP:{HOST.IP}
 
告警项目:{TRIGGER.KEY1}
 
问题详情:{ITEM.NAME}:{ITEM.VALUE}
 
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
 
事件ID:{EVENT.ID}

可以看到新加的动作

配置报警媒介

测试报警效果
将一台监控主机关闭  停掉192.168.156.151的NGINX 

启动nginx

八、邮件报警

1、在zabbix-server 上配置邮件服务器

##安装邮件服务器,转义
yum install -y mailx dos2unix
##查看版本
[root@localhost alertscripts]# mail -V
12.5 7/5/10
 
 
 
#####修改配置文件
vim /etc/mail.rc
//在此文件末尾添加,指定接收邮件邮箱地址,指定邮箱服务器地址,指定接收邮件邮箱地址的授权码,并非 163 邮箱的密码,而是授权码,登陆 163 网易邮箱地址后,--设置--开启smtp 和 pop3--点击客户端生成授权码--使用此授权码进行指定到此配置文件
 
set from=mslinux@163.com smtp=smtp.163.com
set smtp-auth-user=mslinux@163.com smtp-auth-password=上面生成的授权码
set smtp-auth=login
 
 
####发送测试邮件
echo "test mail from zabbix.server.com"| mail -s "test mail" 17306969189@163.com

2、编辑 zabbix_server.conf 引用邮件脚本

vim /etc/zabbix/zabbix_server.conf
查看得到路径 AlertScriptsPath=/usr/lib/zabbix/alertscripts
 
 
###写脚本
cd /usr/lib/zabbix/alertscripts
vim mail.sh
 
 
##编写报警邮件脚本,调整 mail 命令语法位置,使用 dos2unix 命令转换字符,避免收到邮件不显示正常邮件内容而出现 ATTO0001.bin 的错误;
#!/bin/bash
#export.UTF-8
bt=$2
sjr=$1
FILE=/tmp/mailtmp.txt
echo "$3" >$FILE
/usr/bin/dos2unix -k $FILE
/bin/mail -s "$bt" "$sjr" <$FILE
#########################################
bt=$2 sjr=S1  定义发件标题和收件人信息
FILE=/tmp/mailtmp.txt  定义文件路径
使用 dos2unix 命令转换字符,避免收到邮件不显示正常邮件内
/usr/bin/dos2unix -k SFILE  容而出现 ATTO0001.bin 的错误
/bin/mail -s "Sbt""Ssjr" <SFILE   执行邮件发送命令
 
##############################
 chmod 777 mail.sh
chown zabbix:zabbix mail.sh
touch /tmp/mailtmp.txt
chmod 777 /tmp/mailtmp.txt
chown zabbix:zabbix /tmp/mailtmp.txt
####测试脚本
./mail.sh mslinux@163.com "test mail2" "test mail from server.zabbix.com test2"

3、配置 zabbix web 监控项邮件报警

监控--创建报警媒介类型--更新用户使用的报警媒介类型-创建动作(根据发器触发)--验证;

创建动作

邮件主题:
 
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}故障!
 
邮件消息:
 
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE}{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}

4、测试

停掉NGINX服务

启动NGINX服务


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

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

相关文章

新版Chromedriver在哪下载(Chromedriver 116.0.5845.188的寻找之旅)

不知道什么时候Chrome自动升级到116.0.5845.188了&#xff0c;害得我原来的Chromedriver 114无法使用了&#xff0c;无奈之下只好重新去下载。 可寻遍网络&#xff0c;都没找到Chromedriver116的版本。网上大多网友给的下载网址是chromedriver.storage.googleapis.com/index.ht…

数据结构与算法之时间复杂度和空间复杂度(C语言版)

1. 时间复杂度 1.1 概念 简而言之&#xff0c;算法中的基本操作的执行次数&#xff0c;叫做算法的时间复杂度。也就是说&#xff0c;我这个程序执行了多少次&#xff0c;时间复杂度就是多少。 比如下面这段代码的执行次数&#xff1a; void Func1(int N) {int count 0;for…

Ubuntu 20.04 安装MySQL 8.0.34

MySQL安装 sudo wget https://cdn.mysql.com/archives/mysql-8.0/mysql-server_8.0.31-1ubuntu20.04_amd64.deb-bundle.tar下载MySQL文件。 sudo mkdir /mysql8创建目录。 sudo tar -xf mysql-server_8.0.31-1ubuntu20.04_amd64.deb-bundle.tar -C /mysql8进行解压。 需…

结构体基础知识——(OneNote笔记本)

结构体基础知识——&#xff08;OneNote笔记本&#xff09; 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h>//struct Stu //{ // //学生的相关属性 // char name[20]; // int age; // char sex[5]; // char tele[12]; //} s3, s4; //s3&#x…

RISC-V 基础指令汇总

加载指令 存储指令 PC寻址指令 auipc rd, imm这条指令把 imm &#xff08;立即数&#xff09;左移12位并带符号扩展到64位后&#xff0c;得到一个新的立即数&#xff0c;这个新的立即数是一个有符号的立即数&#xff0c;再加上当前 PC 值&#xff0c;然后存储到 rd 寄存器中。…

【面试经典150 | 滑动窗口】无重复字符的最长子串

文章目录 写在前面Tag题目来源题目解读解题思路方法一&#xff1a;滑动窗口 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法&#xff0c;两到三天更新一篇文章&#xff0c;欢迎催更…… 专栏内容以分析题目为主&#xff0c;并附带一些对于本题涉及到的数据结构等…

用git给github私有仓库上传文件

创建私有仓库可以参考这篇文章的前面7步&#xff1a; 关于Github私有仓库的创建 然后我想在私有仓库上传文件该怎么办呢&#xff1f; 在你的文件夹右键git bash 初始化git git init添加本地文件 git add .上传本地 git commit -m "first commit"设置branch&am…

NetSuite BOM成本查询

这是个23.2的新功能&#xff0c;如题所示是对BOM成本的一个查询工具&#xff0c;是对之前版本那个无用的“Costed Bill of Materials Inquiry”的一次救赎。 其重要的功能是&#xff1a; •基于BOM所使用的版本、工艺路线和成本模板&#xff0c;通过Break Down的方式计算一个装…

Spring学习笔记5 GoF之工厂模式

Spring学习笔记4 Bean的作用域_biubiubiu0706的博客-CSDN博客 出了GoF23种设计模式.还有javaee的设计模式(DAO模式,MVC模式) 设计模式:是一种可以被重复利用的解决方案 GoF23种设计模式可分为三大类: 创建型(5个):解决对象创建问题. 单例模式&#xff0c;工厂方法模式&#x…

18795-2012 茶叶标准样品制备技术条件

声明 本文是学习GB-T 18795-2012 茶叶标准样品制备技术条件. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了各类茶叶(除再加工茶)标准样品的制备、包装、标签、标识、证书和有效期。 本标准适用于各类茶叶(除再加工茶)感官品质…

2023 “华为杯” 中国研究生数学建模竞赛(E题)深度剖析|数学建模完整代码+建模过程全解全析

​ 问题一 血肿扩张风险相关因素探索建模 思路&#xff1a; 根据题目要求,首先需要判断每个患者是否发生了血肿扩张事件。根据定义,如果后续检查的血肿体积比首次检查增加≥6 mL或≥33%,则判断为发生了血肿扩张。 具体判断步骤: (1) 从表1中提取每个患者的入院首次影像检查…

机器学习之监督学习,无监督学习,强化学习相关概念

文章目录 1. 监督学习&#xff08;Supervised Learning&#xff09;2. 无监督学习&#xff08;Unsupervised Learning&#xff09;3. 强化学习&#xff08;Reinforcement Learning&#xff09;总结 机器学习可以按照模型使用情况分为三大类&#xff1a;监督学习、无监督学习和强…

如何在电脑上配置多个JDK环境

一、说明 在项目开发过程中&#xff0c;可能会使用到多个JDK。那么如何让一台电脑上的配置JDK版本&#xff0c;并实现版本之间的切换&#xff0c;这就是今天要达到的目的。 二、配置过程 1、环境变量的配置 这里以JDK8和JDK17为例&#xff0c;来演示多个JDK版本之间的切换。安…

Spring面试题21:说一说Spring的@Required注解和@Qualifier注解

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说Spring的@Required注解 @Required ,用于标记在注入的属性上。它表示被注解的属性在配置 Bean 的时候是必需的,如果没有正确配置,则会抛出…

【owt】构建m79的owt-client-native:使用vs2017

家里电脑换成了台式机,拷贝代码发现了三年前的owt客户端mfc工程。 不用下载第三方库,试着构建下: owt-client-native 我这里有3年前的代码,思索了下还是用vs2017构建吧: 重新构建一下 选用x86 的 vs2017 vs的命令行控制台 cls可以清理屏幕 之前构建过vs2022的webrtc原版 …

Java基础常考知识点(基础、集合、异常、JVM)

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有需要我的支持&#xff0c;请私信或评论留言&#xff01; Java基础常考知识点…

算法-堆、队列、分治法-合并 K 个升序链表

算法-堆、队列、分治法-合并 K 个升序链表 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/merge-k-sorted-lists 1.2 题目描述 2 题解 2.1 队列 2.1.1 解题思路 将各个有序子链表放入队列&#xff0c;两两合并&#xff0c;最后队列中剩的最后的子链表就是合并后…

【湖科大教书匠】计算机网络随堂笔记第3章(计算机网络数据链路层)

目录 3.1、数据链路层概述 概述 网络中的主机、路由器等都必须实现数据链路层 局域网中的主机、交换机等都必须实现数据链路层 从层次上来看数据的流动 仅从数据链路层观察帧的流动 数据链路层使用的信道 三个重要问题 封装成帧 差错控制 ​编辑可靠传输 3.2、封装成帧 介绍…

Redis客户端

文章目录 一、scan命令二、数据库管理命令三、RESP协议四、string类型五、list类型六、set类型七、hash类型八、zset类型 一、scan命令 keys是一次性把整个redis中所有的key都获取道&#xff0c;这个操作比较危险&#xff0c;可能会一下子得到大量的key&#xff0c;阻塞redis服…

009_第一代软件开发(一)

第一代软件开发(一) 文章目录 第一代软件开发(一)项目介绍借鉴前辈UI传统QWidget OR QML建立远程仓库&#xff0c;并拉取至本地 关键字&#xff1a; Qt、 Qml、 git、 版本控制、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#x…