Zabbix 简介+部署+对接Grafana(详细部署!!)

news2025/4/16 15:22:11

目录

一.Zabbix简介

1.Zabbix是什么

2.Zabbix工作原理(重点)​

3.Zabbix 的架构(重点)​

1.服务端

2.客户端:

4.Zabbix和Prometheus区别

二.Zabbix 部署 

1.前期准备

2.安装zabbix软件源和组件

3.安装数据库并配置

1. 安装数据库

2.创建初始数据库

3.向数据库导入zabbix数据

4.修改zabbix配置文件

 5.修改zabbix网页配置文件

6.启动zabbix server和agent进程  

7.访问网页

1.修改hosts 文件

2.域名访问 

3.解决图形中文显示乱码问题

8.zabbix监控其他主机部署

1.安装zabbix-agent2 

 2.修改配置文件zabbix_agent2.conf

3.服务端验证zabbix-agent2 连通性

4.添加主机

三.Zabbix对接Grafana

1.安装grafana 并启动服务

2. 访问网页服务

3.设置环境语言

4.安装zabbix 插件 

5.开启插件​

6.创建数据源

7.选择系统监控面板 

8.自定义导入监控面板

 1.查看监控面板具体的参数

2.导入监控面板文件  

3.修改数据源

4.查看面板效果 


一.Zabbix简介

1.Zabbix是什么

zabbix 是一个基于 Web 界面提供分布式系统监视以及网络监视功能企业级的开源解决方案
zabbix 能监视各种网络参数保证服务器系统安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题

2.Zabbix工作原理(重点)

zabbix通过zabbix agentjava gatewaySNMP等方式定期采集监控目标的监控数据,并发送给zabbix server,zabbix server接收到监控数据后会存储在zabbix数据库中,运维管理管可以通过 zabbx web 接入zabbix数据库,在浏览器网页查看相关的监控数据图像

3.Zabbix 的架构(重点)

Zabbix 由 2 部分构成zabbix server可选组件 zabbix agent。通过 C/S 模式采集数据,通过 B/S 模式 Web 端展示和配置

1.服务端

zabbix server(端口10050)

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

1. zabbix服务端进程,用于接收客户端发来的监控数据,还负责配置和管理zabbix应用程序,也是监控系统的告警中心,可以通过监控项告警触发配置实现告警通知
2. zabbix 数据库:用于持久化存储zabbix的配置信息和监控数据支持关系型数据库mysql、oracle、pgsql等和时序数据库tsdb
3. zabbix web:用于zabbix服务端配置管理界面和监控数据界面的展示,支持LAMP、LNMP架构

2.客户端:

zabbix agent(端口10051)

部署在被监控的服务器上,用于采集监控数据,并发送给zabbix server数据采集有主动模式和被动模式类型,从 Zabbix5.0 开始支技 Zabbix Agent2 。
主动模式:zabbix agent会主动向zabbix server请求监控项并返回监控项所需要采集的监控数据给zabbix server
 被动模式:zabbix agent被动接收zabbix server发来的监控项指令zabbix agent再返回监控项所需要采集的监控数据给zabbix server

zabbix proxyzabbix代理端进程,部署在zabbix server与zabbix agent之间,用于代替zabbix server接收监控数据,汇总后在转发给zabbix server,从而分担zabbix server的集中负载压力
zabbix java gateway:用于从在JAVA应用暴露的JMX接口采集监控数据

4.Zabbix和Prometheus区别

 Zabbix : 适用于传统的业务架构监控物理服务器、网络设备、数据库等),它对硬件和网络设 备的支持更全面
  Prometheus 适用于K8s、Docker 或微服务架构,在云原生环境中表现优异

二.Zabbix 部署 

1.前期准备

#准备4台 ubuntu服务器:
192.168.233.31   #zbx-server
192.168.233.32   #zbx-agent01
192.168.233.33   #zbx-agent02
192.168.233.34   #zbx-proxy
#四台关闭防火墙
[root@ubuntu ~]#systemctl stop ufw
[root@ubuntu ~]#systemctl disable ufw
#各自定义主机名
#192.168.233.31
[root@ubuntu ~]#hostnamectl  set-hostname zbx-server
[root@ubuntu ~]#bash
#192.168.233.32
[root@ubuntu ~]#hostnamectl  set-hostname zbx-agent01
[root@ubuntu ~]#bash
#192.168.233.33
[root@ubuntu ~]#hostnamectl  set-hostname zbx-agent02
[root@ubuntu ~]#bash
#192.168.233.34
[root@ubuntu ~]#hostnamectl  set-hostname zbx-proxy
[root@ubuntu ~]#bash
#四台编辑本地域名
cat > /etc/hosts << EOF
192.168.233.31 zbx-server
192.168.233.32 zbx-agent01
192.168.233.33 zbx-agent02
192.168.233.34 zbx-proxy
EOF
##单台验证域名:ping zbx-agent01
#四台配置时间同步
[root@zbx-server ~]#timedatectl set-ntp true
[root@zbx-server ~]#timedatectl set-timezone Asia/Shanghai
[root@zbx-server ~]#hwclock --systohc
[root@zbx-server ~]#hwclock --show
2025-04-11 17:06:03.995010+08:00
[root@zbx-server ~]#timedatectl
#四台配置系统语言为中文
[root@zbx-server ~]#apt install -y language-pack-zh-hans
[root@zbx-server ~]#localectl set-locale LANG=zh_CN.utf8
[root@zbx-server ~]#localectl
[root@zbx-server ~]#reboot

2.安装zabbix软件源和组件

#在ubuntu22.04环境中部署zabbix6.0版本
#下载deb包
[root@zbx-server ~]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
#安装软件包
[root@zbx-server ~]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
#修改zabbix仓库源地址
[root@zbx-server ~]#sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix.list
[root@zbx-server ~]#sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix-agent2-plugins.list
#更新仓库源
[root@zbx-server ~]#apt update
#安装 zabbix server、Web前端、agent2
[root@zbx-server ~]#apt install -y zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-sql-scripts zabbix-agent2
#zabbix-server-mysql  Zabbix 服务器的核心程序,使用 MySQL/MariaDB 作为后端数据库存储监控数据。
#zabbix-frontend-php  Zabbix 的 Web 前端界面,使用 PHP 编写,提供用户操作的图形化界面。
#zabbix-nginx-conf    Zabbix 前端提供 Nginx 服务器的预配置模板。
#zabbix-sql-scripts   包含初始化 Zabbix 数据库的 SQL 脚本。
#zabbix-agent2        第二代 Zabbix 监控代理程序,部署在被监控的主机上,收集本地指标

3.安装数据库并配置

1. 安装数据库

#二进制安装和apt安装都可以(建议使用二进制安装)
[root@zbx-server ~]#apt install  mysql-server  -y
[root@zbx-server ~]#systemctl start mysqld.service 
[root@zbx-server ~]#systemctl status mysqld.service 
##创建初始数据库
mysql -u root -pabc123

2.创建初始数据库

#作用:创建名为 zabbix 的数据库,并指定字符集和排序规则。
 CREATE DATABASE zabbix character set utf8mb4 collate utf8mb4_bin;
#作用:创建一个名为 zabbix 的数据库用户,仅允许从本地(localhost)连接。
 CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'zabbix';
#作用:创建同名用户 zabbix,允许从任何远程主机(%)连接。
 CREATE USER 'zabbix'@'%' IDENTIFIED BY 'zabbix';
#作用:授予 'zabbix'@'localhost' 用户对 zabbix 数据库的 所有权限。
 GRANT all ON zabbix.* TO 'zabbix'@'localhost';
#授予 'zabbix'@'%' 用户对 zabbix 数据库的 所有权限。确保远程连接的 Zabbix 组件能正常操作数据库。
 GRANT all ON zabbix.* TO 'zabbix'@'%';
#立即刷新 MySQL 的权限表,使新授权的权限生效。
 FLUSH PRIVILEGES;
# 启用二进制日志不记录操作
 SET GLOBAL log_bin_trust_function_creators = 1;
root@localhost [(none)]> quit

3.向数据库导入zabbix数据

[root@zbx-server ~]#cd /usr/share/zabbix-sql-scripts/
[root@zbx-server zabbix-sql-scripts]#ls
mysql  postgresql  sqlite3
[root@zbx-server zabbix-sql-scripts]#cd mysql/
[root@zbx-server mysql]#ls
double.sql  history_pk_prepare.sql  proxy.sql  server.sql.gz
#导入数据
[root@zbx-server mysql]#zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | 
mysql --default-character-set=utf8mb4 -uzabbix -pzabbix zabbix
#进入数据库
[root@zbx-server mysql]#mysql -u root -pabc123
root@localhost [(none)]> show databases;
root@localhost [(none)]> use zabbix;
root@localhost [zabbix]> show tables;
root@localhost [zabbix]> SET GLOBAL log_bin_trust_function_creators = 0;
Query OK, 0 rows affected, 1 warning (0.01 sec)
#在启用二进制日志时,记录操作
root@localhost [zabbix]> quit
Bye

4.修改zabbix配置文件

//修改 zabbix server 配置文件,为 zabbix server 配置数据库
vim /etc/zabbix/zabbix_server.conf 
DBHost=127.0.0.1       #93行,修改为127.0.0.1,zabbix用TCP/IP的方式来连接MySQL;
为localhost时,zabbix则用socket去连接MySQL
105 DBName=zabbix      #存放监控数据库名称
121 DBUser=zabbix      #访问数据库的用户名称
DBPassword=zabbix      #129行,指定数据库的用户登录密码

 5.修改zabbix网页配置文件

[root@zbx-server zabbix]#vim /etc/zabbix/nginx.conf 
listen          8080;
server_name     zbx.xy105.com;
#listen 为zabbix 前端网页监听的端口号
#server_name  为zabbix 网页域名

6.启动zabbix server和agent进程  

//启动zabbix server和agent进程
[root@zbx-server zabbix]#systemctl restart zabbix-server zabbix-agent2 nginx php8.1-fpm
[root@zbx-server zabbix]#systemctl enable zabbix-server zabbix-agent2 nginx php8.1-fpm

ss -lntp | grep 10051			#zabbix-server 默认监听 10051 端口
ss -lntp | grep 10050			#客户端 zabbix-agent 默认监听 10050 端口
注意:Zabbix Web 前端 网页端口:8080

7.访问网页

1.修改hosts 文件

修改  C:\Windows\System32\drivers\etc 中hosts文件

2.域名访问 

浏览器访问:http://zbx.xy105.com:8080 
【Default language】选择 Chinese(zh_CN),点击下一步
【数据库主机】输入 127.0.0.1 ;【密码】输入 zabbix,点击下一步
【Zabbix主机名称】输入 zbx-demo;【默认时区】选择 Asia/Shanghai,点击下一步
安装完成后,默认的登录账号和密码为:Admin/zabbix

3.解决图形中文显示乱码问题

#安装中文字符软件包
[root@zbx-server zabbix]#apt install -y fonts-wqy-microhei
[root@zbx-server zabbix]#\cp -f /usr/share/fonts/truetype/wqy/wqy-microhei.ttc /usr/share/zabbix/assets/fonts/graphfont.ttf
# 将「文泉驿微米黑」字体文件强制覆盖替换 Zabbix 的默认图表字体,以解决 Zabbix
 监控图表中可能出现的 中文乱码 或 字体缺失 问题。

8.zabbix监控其他主机部署

1.安装zabbix-agent2 

192.168.233.32   #zbx-agent01
192.168.233.33   #zbx-agent02
[root@zbx-agent01 opt]#wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@zbx-agent01 opt]#dpkg -i zabbix-release_latest_6.0+ubuntu22.04_all.deb
[root@zbx-agent01 opt]#sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix.list
[root@zbx-agent01 opt]#sed -i 's#https://repo.zabbix.com#https://mirrors.aliyun.com/zabbix#' /etc/apt/sources.list.d/zabbix-agent2-plugins.list
[root@zbx-agent01 opt]#apt update 
apt install -y zabbix-agent2

 2.修改配置文件zabbix_agent2.conf

vim /etc/zabbix/zabbix_agent2.conf
Server=192.168.233.31            #80行,指定允许连接到agent的Zabbix Server IP地址
ServerActive=192.168.233.31      #133行,指定agent将主动连接的Zabbix Server IP地址。
代理将定期向这个服务器发送监控数据
Hostname=zbx-agent01             #144行,指定agent的主机名
                                 #33主机应该设为zbx-agent02
[root@zbx-agent01 opt]#systemctl restart  zabbix-agent2.service 
[root@zbx-agent01 opt]#systemctl enable  zabbix-agent2.service                          
[root@zbx-agent01 opt]#ss -lntp | grep zabbix

3.服务端验证zabbix-agent2 连通性

#手动获取监控数据的工具
[root@zbx-server zabbix]#apt install -y zabbix-get
[root@zbx-server zabbix]#zabbix_get -s 192.168.233.32 -p 10050 -k 'agent.ping'
#-s  指定客户端地址:agent所在地址
#-p  指定客户端端口号:5050
#-k  #指定要获取的键名
[root@zbx-server zabbix]#zabbix_get -s 192.168.233.32 -p 10050 -k 'agent.hostname'
zbx-agent01
[root@zbx-server zabbix]#zabbix_get -s 192.168.233.33 -p 10050 -k 'agent.hostname'
zbx-agent02
[root@zbx-server zabbix]#zabbix_get -s 192.168.233.33 -p 10050 -k 'agent.ping'
1
[root@zbx-server zabbix]#zabbix_get -s 192.168.233.32 -p 10050 -k 'agent.ping'
1
agent.ping												#服务端与客户端是否连通,返回1表示可达,返回非表示不可达
system.hostname											#系统主机名
agent.hostname											#客户端主机名
net.if.in[if,<mode>]									#网络接口进入的流量统计,if表示网卡名称,带<>的参数表示可以省略
net.if.out[if,<mode>]									#网络接口流出的流量统计
proc.num[<name>,<user>,<state>,<cmdline>,<zone>]		#进程数
net.tcp.port[<ip>,port]									#检查是否能建立tcp连接到指定端口,返回0表示不能连接,返回1表示可以连接

4.添加主机

点击左边菜单栏【配置】中的【主机】,点击【创建主机】
【主机名称】输入 zbx-agent01
【可见的名称】输入 zbx-agent01-192.168.233.32
【模板】搜索 Linux ,选择 Linux by Zabbix agent
【群组】选择 Linux servers
【Interfaces】点击添加 客户端,【IP地址】输入 192.168.233.32
注意:zbx-agent02:192.168.233.33 添加配置一样省略

注意:zbx-agent02  主机添加操作一致,省略。

三.Zabbix对接Grafana

1.安装grafana 并启动服务

#安装依赖包
[root@zbx-server ~]#apt install -y adduser libfontconfig1 musl
wget https://dl.grafana.com/enterprise/release/grafana-enterprise_9.4.17_amd64.deb
[root@zbx-server opt]#dpkg -i grafana-enterprise_9.4.17_amd64.deb 
[root@zbx-server ~]#systemctl start grafana-server
[root@zbx-server ~]#systemctl enable grafana-server
[root@zbx-server ~]#ss -natp | grep grafana

2. 访问网页服务

浏览器访问:http://192.168.233.31:3000 ,默认账号和密码为 admin/admin

3.设置环境语言

4.安装zabbix 插件 

grafana-cli plugins install alexanderzobnin-zabbix-app 4.4.9
grafana cli plugins ls
systemctl restart grafana-server

5.开启插件

6.创建数据源

Configuration -> Data Sources -> Add data source -> 选择 Zabbix
HTTP -> URL 输入 http://192.168.233.31:8080/api_jsonrpc.php
Zabbix Connection -> Username 输入 Admin ,Password 输入 zabbix
点击 Save & Test

7.选择系统监控面板 

8.自定义导入监控面板

浏览器访问:https://grafana.com/grafana/dashboards/?search=zabbix 
注意:  选择适合的面板,点击 Copy ID 或者 Download JSON

在 grafana 页面中, Dashboards -> + Import ,输入面板 ID 号或者上传 JSON 文件,
注意: 点击 Load,即可导入监控面板

 1.查看监控面板具体的参数

2.导入监控面板文件  

3.修改数据源

4.查看面板效果 

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

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

相关文章

Ubuntu2404装机指南

因为原来的2204升级到2404后直接嘎了&#xff0c;于是要重新装一下Ubuntu2404 Ubuntu系统下载 | Ubuntuhttps://cn.ubuntu.com/download我使用的是balenaEtcher将iso文件烧录进U盘后&#xff0c;使用u盘安装&#xff0c;默认选的英文版本&#xff0c; 安装后&#xff0c;安装…

Spring Cloud初探之使用load balance包做负载均衡(三)

一、背景说明 基于前一篇文章《Spring Cloud初探之nacos服务注册管理(二)》&#xff0c;我们已经将服务注册到nacos。接下来继续分析如何用Spring cloud的load balance做负载均衡。 load balance是客户端负载均衡组件。本质是调用方拿到所有注册的服务实例列表&#xff0c;然…

vector常用的接口和底层

一.vector的构造函数 我们都是只讲常用的。 这四个都是比较常用的。 第一个简单来看就是无参构造&#xff0c;是通过一个无参的对象来对我们的对象进行初始化的&#xff0c;第一个我们常用来当无参构造来使用。 第二个我们常用的就是通过多个相同的数字来初始化一个vector。 像…

【2025年3月中科院1区SCI】Rating entropy等级熵及5种多尺度,特征提取、故障诊断新方法!

引言 2025年3月&#xff0c;研究者在国际机械领域顶级期刊《Mechanical Systems and Signal Processing》&#xff08;JCR 1区&#xff0c;中科院1区 Top&#xff0c;IF&#xff1a;7.9&#xff09;上以“Rating entropy and its multivariate version”为题发表科学研究成果。…

【AI学习】李宏毅老师讲AI Agent摘要

在b站听了李宏毅2025最新的AI Agent教程&#xff0c;简单易懂&#xff0c;而且紧跟发展&#xff0c;有大量最新的研究进展。 教程中引用了大量论文&#xff0c;为了方便将来阅读相关论文&#xff0c;进一步深入理解&#xff0c;做了截屏纪录。 同时也做一下分享。 根据经验调整…

Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置

作者&#xff1a;濯光、翼严 Kubernetes 配置管理的局限 目前&#xff0c;在 Kubernetes 集群中&#xff0c;配置管理主要通过 ConfigMap 和 Secret 来实现。这两种资源允许用户将配置信息通过环境变量或者文件等方式&#xff0c;注入到 Pod 中。尽管 Kubernetes 提供了这些强…

【BUG】Redis RDB快照持久化及写操作禁止问题排查与解决

1 问题描述 在使用Redis 的过程中&#xff0c;遇到如下报错&#xff0c;错误信息是 “MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk...”&#xff0c;记录下问题排查过程。 2 问题排查与解决 该错误提示表明&#…

java分页实例

引言 在现代Web应用和移动应用中&#xff0c;面对大量数据的展示&#xff0c;分页技术成为了提升用户体验和优化数据加载效率的关键手段。尤其是在MySQL数据库环境中&#xff0c;合理运用分页查询不仅能显著减少服务器负载&#xff0c;还能提升数据访问速度&#xff0c;为用户提…

【Linux篇】ELF文件及其加载与动态链接机制

ELF文件及其加载与动态链接机制 一. EFL文件1.1 ELF文件结构二. ELF文件形成与加载2.1 ELF形成可执行2.2 ELF控制性文件的加载2.2.1总结 三. ELF加载与进程地址空间3.1 动态链接与动态库加载3.1.1 进程如何看到动态库 3.2 全局偏移量表GOT(global offset table&#xff09;3.2.…

经典算法 判断一个图中是否有环

判断一个图中是否有环 问题描述 给一个以0 0结尾的整数对列表&#xff0c;除0 0外的每两个整数表示一条连接了这两个节点的边。假设节点编号不超过100000大于0。你只要判断由这些节点和边构成的图中是否存在环。存在输出YES&#xff0c;不存在输出NO。 输入样例1 6 8 5 3 …

AI与深度伪造技术:如何识别和防范AI生成的假视频和假音频?

引言&#xff1a;深度伪造的崛起 近年来&#xff0c;人工智能技术迅猛发展&#xff0c;其中深度伪造&#xff08;Deepfake&#xff09; 技术尤为引人注目。这项技术利用深度学习和神经网络&#xff0c;可以轻松生成高度逼真的假视频和假音频&#xff0c;使人物的面部表情、语音…

ESP32驱动读取ADXL345三轴加速度传感器实时数据

ESP32读取ADXL345三轴加速度传感器实时数据 ADXL345三轴加速度传感器简介ADXL345模块原理图与引脚说明ESP32读取ADXL345程序实验结果 ADXL345三轴加速度传感器简介 ADXL345是一款由Analog Devices公司推出的三轴数字加速度计&#xff0c;分辨率高(13位)&#xff0c;测量范围达…

【Linux】系统入门

【Linux】系统初识 起源开源 闭源版本内核内核编号 Linux的安装双系统(不推荐)WindowsLinuxvmware虚拟机vitualbox操作系统的镜像centos 7/ubuntu云服务器租用 Linux的操作lsmkdir 文件名pwdadduser userdel -rrm文件名cat /proc/cpuinfolinux支持编程vim code.c./a.out 运行程…

github配置ssh,全程CV

1)随便找一个文件夹右键进入git bash 2)验证是否已有公私钥文件 cd ~/.ssh ls如果不存在则生成然后获取 生成时一直回车 ssh-keygen -t rsa -C "xxxxxx.com" cd ~/.ssh cat id_rsa.pub如果存在则直接获取 cd ~/.ssh cat id_rsa.pub3&#xff09;复制 4&#xf…

Dify简介:从架构到部署与应用解析

Dify 是一个开源的生成式 AI 应用开发平台&#xff0c;融合了后端即服务&#xff08;Backend as a Service, BaaS&#xff09;和 LLMOps 的理念&#xff0c;旨在帮助开发者快速搭建生产级的生成式 AI 应用。本文将详细解析 Dify 的技术架构、部署流程以及实际应用场景&#xff…

碳化硅(SiC)功率模块方案对工商业储能变流器PCS市场格局的重构

碳化硅&#xff08;SiC&#xff09;模块方案&#xff08;如BMF240R12E2G3&#xff09;对工商业储能变流器PCS市场格局产生颠覆性的重构&#xff1a; 2025年&#xff0c;SiC模块方案&#xff08;如BMF240R12E2G3&#xff09;凭借效率、成本和政策支持的三重优势&#xff0c;将重…

Redis入门(Java中操作Redis)

目录 一 基础概念 1. Redis 核心特点 2. Redis 与 MySQL 的对比 3. Redis的开启与使用 二 Redis的常用数据类型 1 基础概念 2 数据结构的特点 三 Redis基础操作命令 1 字符串操作命令 2 哈希操作命令 3 列表操作命令 4 集合操作命令 5 有序集合操作命令 6 通用命令…

算法思想之位运算(一)

欢迎拜访&#xff1a;雾里看山-CSDN博客 本篇主题&#xff1a;算法思想之位运算(一) 发布时间&#xff1a;2025.4.12 隶属专栏&#xff1a;算法 目录 算法介绍六大基础位运算符常用模板总结 例题位1的个数题目链接题目描述算法思路代码实现 比特位计数题目链接题目描述算法思路…

【基于Servlet技术处理表单】

文章目录 一、实验背景与目的二、实验设计与实现思路1. 功能架构2. 核心代码实现3. 测试用例 总结 一、实验背景与目的 本次实验旨在深入理解Servlet工作原理&#xff0c;掌握JSP与Servlet的协同开发&#xff0c;实现前端表单与后端数据处理的交互。具体目标包括&#xff1a;设…

[OS] mmap | fd是什么 | inode机制 | vfs封装

Linux 下一切皆文件 * 统统抽象为文件&#xff0c;系统封装一层结构体之后&#xff0c;通过指针来访问 * 文章后面的 几个思考题都挺好的 * 后面涉及到的inode 机制&#xff0c;去年暑假的这篇文章&#xff0c;有详细的记录到过 【Linux】(26) 详解磁盘与文件系统&#xff1a;从…