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

【zabbix监控软件(配置及常用键值)】

监控软件–zabbix
同类产品:nagios、cacti
简介:能够部署企业级监控平台。

监控范围
1)zabbix + SNMP 监控网络设备
防火墙、交换机
2)zabbix + agent 监控
服务器:raid插槽 CPU 内存插槽 温度 风扇
操作系统:centos7 centos6 各种windows
应用软件:几乎所有的应用软件都可以监控
3)zabbix + ping(fping) 监控
节点的存活状态
4)zabbix + port 监控
服务的存活状态
5)zabbix + web 监控
服务的存活状态
6)zabbix + 数据收集 展示各个节点、服务的运行状态
zabbix 取到的值必须是数

官方网站:zabbix

zabbix的架构:
zabbix server	监控端
zabbix server:负责与被监控端或z proxy通信,将采集到的监控数据保存到z mysql中,然后通过web界面展示;
zabbix mysql:负责保存z server采集到的监控数据,数据类型是数,注意硬盘IO
zabbix proxy:部署在被监控端的x机房内部,在agent看来,就是z server,将采集到的数据传输给异地的z server。
zabbix agent	被监控端

部署步骤:
一、服务端配置

  1. 部署 z mysql
[root@zmysql ~]# rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm[root@zmysql ~]# wget http://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm[root@zmysql ~]# ls /etc/yum.repos.d/zabbix.repo 
/etc/yum.repos.d/zabbix.repo[root@zmysql ~]# yum install -y mariadb mariadb-server zabbix-server-mysql[root@zmysql /usr/share/mysql]# cp my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y[root@zmysql ~]# vim /etc/my.cnf
server-id       = 72
log_slave_updates
binlog-ignore-db = mysql
datadir = /data/mysql[root@zmysql ~]# mkdir -p /data/mysql
[root@zmysql ~]# chown -R mysql:mysql /data/mysql/[root@zmysql ~]# systemctl start mariadb
[root@zmysql ~]# systemctl enable mariadb[root@zmysql ~]# cd /data/mysql/
[root@zmysql /data/mysql]# ls[root@zmysql ~]# mysql
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zabbix.* to zabbix@'172.16.%' identified by '12345';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> quit导入数据:
[root@zmysql ~]# cd /usr/share/doc/zabbix-server-mysql-3.4.15/
[root@zmysql /usr/share/doc/zabbix-server-mysql-3.4.15]# ls
AUTHORS  ChangeLog  COPYING  create.sql.gz  NEWS  README
[root@zmysql /usr/share/doc/zabbix-server-mysql-3.4.15]# gunzip create.sql.gz 
[root@zmysql /usr/share/doc/zabbix-server-mysql-3.4.15]# mysql zabbix < create.sql [root@zmysql ~]# mysql zabbix
MariaDB [zabbix]> show tables;看到导入的表,OK!
  1. 部署 z server
[root@zmysql ~]# scp zabbix-release-3.4-2.el7.noarch.rpm 172.16.0.71:/root/[root@zserver ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm [root@zserver ~]# yum install -y httpd php php-mysql php-gd libjpeg* php-ldap php-odbc php-pear php-xml php-xmlpc php-mbstring php-bcmath php-mhash zabbix-server-mysql zabbix-web-mysql zabbix-java-gateway zabbix-get支持中文:
[root@zserver /usr/share/fonts]# mkdir simkai在windows  C:\Windows\Fonts楷体常规把字体文件导入该目录下[root@zserver /usr/share/fonts/simkai]# ls
SIMKAI.TTF
[root@zserver /usr/share/fonts/simkai]# mv SIMKAI.TTF simkai.ttf[root@zserver /usr/share/zabbix/include]# vim defines.inc.php 53 define('ZBX_FONTPATH',          '/usr/share/fonts/simkai');54 define('ZBX_GRAPH_FONT_NAME',           'simkai')

启动httpd

[root@zserver ~]# vim /etc/httpd/conf/httpd.conf
164     DirectoryIndex index.php index.html[root@zserver ~]# vim /etc/php.ini384 max_execution_time = 300394 max_input_time = 300672 post_max_size = 16M878 date.timezone = Asia/Shanghai[root@zserver ~]# systemctl start httpd
[root@zserver ~]# systemctl enable httpd
编辑配置文件:
[root@zserver /etc/zabbix]# vim zabbix_java_gateway.conf 9 LISTEN_IP="0.0.0.0"17 LISTEN_PORT=1005235 START_POLLERS=50zabbix用于监控java程序的配置[root@zserver /etc/zabbix]# vim zabbix_server.conf zabbix的主配置文件91 DBHost=172.16.0.72
100 DBName=zabbix
116 DBUser=zabbix
124 DBPassword=12345
131 DBSocket=/var/lib/mysql/mysql.sock
139 DBPort=3306z server 连接 z mysql 的配置	261 JavaGateway=localhost
269 JavaGatewayPort=10052
277 StartJavaPollers=50z server 连接 java程序的配置z server 启动多少个线程与监控java程序的应用连接启动服务:
[root@zserver ~]# systemctl start zabbix-java-gateway
[root@zserver ~]# systemctl enable zabbix-java-gateway[root@zserver ~]# systemctl start zabbix-server
[root@zserver ~]# systemctl enable zabbix-server[root@zserver ~]# systemctl restart httpd[root@zserver ~]# netstat -antp | grep 1005[12]
tcp    0   0 0.0.0.0:10051     0.0.0.0:*      LISTEN      1426/zabbix_server  
tcp6   0   0 :::10051          :::*           LISTEN      1426/zabbix_server  
tcp6   0   0 :::10052          :::*           LISTEN      1388/java 

错误日志
[root@zserver ~]# cd /var/log/zabbix/
[root@zserver /var/log/zabbix]# ls
zabbix_java_gateway.log
zabbix_server.log

浏览器访问:http://172.16.0.71/zabbix/
用户名:Admin
密码: zabbix

二、监控节点配置

  1. zabbix agent – centos7
[root@zmysql ~]# scp zabbix-release-3.4-2.el7.noarch.rpm 172.16.0.31:/root/[root@nginx1 ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm[root@nginx1 ~]# yum install -y zabbix-agent zabbix-sender[root@nginx1 ~]# cd /etc/zabbix/
[root@nginx1 /etc/zabbix]# ls
zabbix_agentd.conf  zabbix_agentd.d
[root@nginx1 /etc/zabbix]# vim zabbix_agentd.conf 97 Server=172.16.0.71## z server的IP
138 ServerActive=172.16.0.71:10051## z server的IP:port
149 Hostname=SY172.16.0.31## 定义本机的主机名[root@nginx1 ~]# systemctl start zabbix-agent
[root@nginx1 ~]# systemctl enable zabbix-agent[root@nginx1 ~]# netstat -antp | grep 10050
tcp    0  0 0.0.0.0:10050   0.0.0.0:*   LISTEN      1050/zabbix_agentd
tcp6   0  0 :::10050        :::*        LISTEN      1050/zabbix_agentd添加主机:主机名称:配置文件中定义的可见的名称:有意义  项目名-角色-IP群组:如果没有,需要创建接口:

主机群组:自带一部分,zabbix原生模板
定义主机组:按照项目规划
模板:
原生模板
从第三方 git-hub上下载的
自定义模板

应用集:一类监控项的归纳监控项:负责从 z agent 取到监控数据的名称:有代表意义,中间不要带 “空格”触发器:这个监控项有几个触发器键值:使用键值才能从agent取到数据间隔:z server 间隔多长时间去 agent 取一次数据历史记录:历史数据的保存时间 建议 1w趋势:在一段时间内,采集的数据是呈现上升或是下降类型:监控项的类型应用集状态:已启用 停用的 未支持的 触发器:当z server采集到的数据达到触发器的阈值,就会触发报警
图形:展示采集到的数据
主机:监控对象
维护:在维护周期时间内,不会触发报警
动作:当触发器的阈值被触发以后,动作会给报警媒介发送消息,给报警接收人发送报警信息
自动发现:可以批量添加主机

z server使用 键值 采集agent数据,保存在 z mysql中,数据会以图谱的形式在web界面展示。
当采集到的数据达到触发器的阈值时,会触发报警动作,通过报警媒介给报警接收人发送消息。

三、自定义模板

  1. 使用原生键值
(1)CPUCPU 的负载system.cpu.load[,avg1]CPU 的 idlesystem.cpu.util[,idle]
(2)内存vm.memory.size[<mode>] 剩余vm.memory.size[pavailable]使用vm.memory.size[pused]总vm.memory.size[total](3)交换分区空闲百分比 system.swap.size[,pfree] 使用百分比 system.swap.size[,pused] (4)硬盘读 vfs.dev.read[<device>,<type>,<mode>] vfs.dev.read[/dev/mapper/centos-root,sps]写 vfs.dev.write[<device>,<type>,<mode>] vfs.dev.write[/dev/mapper/centos-root,sps] 分区的使用情况inode vfs.fs.inode[fs,<mode>]vfs.fs.inode[/,pfree]block vfs.fs.size[fs,<mode>] vfs.fs.size[/,pfree](5) 网卡的IOIn	net.if.in[ens32]Out	net.if.out[ens32]

在 z server 校验键值

[root@zserver ~]# zabbix_get -s 172.16.0.31 -p 10050 -k vfs.fs.size[/,pfree]
97.152441

[root@zserver ~]# zabbix_get -s 172.16.0.31 -p 10050 -k vfs.fs.inode[/,pfree]
99.832706

四、监控服务的端口和状态:

端口:apache	tcp/80nginx	tcp/80mysql	tcp/3306tomcat	tcp/8080NFS		tcp/2049ftp		tcp/21net.tcp.listen[port] 
监控端口的监听状态
[root@zserver ~]# zabbix_get -s 172.16.0.31 -p 10050 -k net.tcp.listen[80]
1net.tcp.port[<ip>,port] 
监控端口是否可以被连接
[root@zserver ~]# zabbix_get -s 172.16.0.31 -p 10050 -k net.tcp.port[,80]
1net.tcp.service[service,<ip>,<port>] 
监控服务是不是down了
[root@zserver ~]# zabbix_get -s 172.16.0.31 -p 10050 -k net.tcp.service[http,,80]
1

五、监控mysql-server

1 安装软件
[root@nginx1 ~]# scp zabbix-release-3.4-2.el7.noarch.rpm 172.16.0.51:/root/[root@mysqlA1 ~]# rpm -ivh zabbix-release-3.4-2.el7.noarch.rpm [root@mysqlA1 ~]# yum install -y zabbix-agent zabbix-sender2 写配置文件
[root@nginx1 ~]# scp /etc/zabbix/zabbix_agentd.conf 172.16.0.51:/etc/zabbix/[root@mysqlA1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Hostname=SY172.16.0.513 启动服务
[root@mysqlA1 ~]# systemctl start zabbix-agent
[root@mysqlA1 ~]# systemctl enable zabbix-agent[root@mysqlA1 ~]# netstat -antp | grep 10050
tcp    0  0 0.0.0.0:10050    0.0.0.0:*   LISTEN      1295/zabbix_agentd  
tcp6   0  0 :::10050         :::*        LISTEN      1295/zabbix_agentd4 浏览器添加主机
  • 二进制安装需要注意userparameter_mysql.conf
[root@mysqlA1 /etc/zabbix/zabbix_agentd.d]# ls
userparameter_mysql.conf[root@mysqlA1 /etc/zabbix/zabbix_agentd.d]# vim userparameter_mysql.confUserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -N | awk '{print $$2}'UserParameter=	自定义键值mysql.status[*]	键值;* 通配符,	键值 和 shell命令的分隔符(1) root 密码
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix mysql -u root -p'密码' -N 2> /dev/null | awk '{print $$2}'(2) bin包安装
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/zabbix /usr/local/mysql/bin/mysql -u root -p'密码' -N 2> /dev/null | awk '{print $$2}'

六、监控nginx状态

NginxStatus在虚拟主机里面添加:location /NginxStatus {stub_status on;}[root@nginx1 /usr/local/nginx]# ./sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@nginx1 /usr/local/nginx]# ./sbin/nginx -s reload[root@nginx1 ~]# curl http://127.0.0.1/NginxStatus
Active connections: 1 	要这个
server accepts handled requests4 4 2 
Reading: 0 Writing: 1 Waiting: 0 [root@nginx1 ~]# curl http://127.0.0.1/NginxStatus 2> /dev/null | awk '/Active/{print $NF}'
1自定义键值:
[root@nginx1 /etc/zabbix/zabbix_agentd.d]# vim userparameter_nginx.conf 
UserParameter=nginx.active,curl http://127.0.0.1/NginxStatus 2> /dev/null | awk '/Active/{print $NF}'[root@nginx1 ~]# systemctl restart zabbix-agentz server测试:
[root@zserver ~]# zabbix_get -s 172.16.0.31 -p 10050 -k nginx.active
1

七、配置报警

1. 数据采集 已经完成2. 配置触发器(1)资源类cpuloadidle剩余率15	警告级别10	严重级别5	错误(灾难)级别
当前最新的idle剩余率<=15  并且 5分钟之内一直在持续这个状态last() <=15 and max(5m) <=15内存剩余率15	警告级别10	严重级别5	错误(灾难)级别
当前最新的内存剩余率 <= 15last(#1) <=15last(0)  <=15last()   <=15硬盘inode和block剩余率15	警告级别10	严重级别5	错误(灾难)级别网卡流量swap的剩余率(2)服务和节点状态服务的端口0	关闭1	正常节点的状态0	不通1	通函数:last()	最新的值sum()	求和min()	最小值max()	最大值表达式:时间单位是 秒1m	= 60数据单位是 字节1k  = 10243. 报警媒介邮件微信短信4. 报警动作报警的消息:简单直接描述清楚谁的什么现在是[警告]级别,当前值的多少。谁	{HOST.NAME1}	主机信息	可见的名称什么{ITEM.NAME1}	监控项信息	监控项的名称多少{ITEM.VALUE1}	值报警消息
{HOST.NAME1}的{ITEM.NAME1}现在是[警告]级别,当前值是{ITEM.VALUE1}。
恢复消息
{HOST.NAME1}的{ITEM.NAME1}使用率由[警告]恢复正常。报警消息
{HOST.NAME1}的{ITEM.NAME1}现在是[严重]级别,当前值是{ITEM.VALUE1}。
恢复消息
{HOST.NAME1}的{ITEM.NAME1}使用率由[严重]恢复正常。报警消息
{HOST.NAME1}的{ITEM.NAME1}现在是[灾难]级别,当前值是{ITEM.VALUE1}。
恢复消息
{HOST.NAME1}的{ITEM.NAME1}使用率由[灾难]恢复正常。测试报警:
[root@nginx1 ~]# dd if=/dev/zero of=/dev/null 消耗CPU[root@nginx1 /tmp]# dd if=/dev/zero of=f1 bs=1M count=2048消耗block

八、部署 z proxy

1. 安装
[root@nginx1 ~]# scp zabbix-release-3.4-2.el7.noarch.rpm 172.16.0.70:/root/[root@zproxy ~]# yum install -y zabbix-proxy-mysql zabbix-get zabbix-java-gateway mariadb-server2. 配置(1)mariadb
[root@zproxy ~]# systemctl start mariadb
[root@zproxy ~]# systemctl enable mariadbMariaDB [(none)]> create database zabbix_proxy character set utf8 collate utf8_bin;
MariaDB [(none)]> grant all on zabbix_proxy.* to zabbix@'localhost' identified by '12345';
MariaDB [(none)]> flush privileges;导入数据库:
[root@zproxy ~]# cd /usr/share/doc/zabbix-proxy-mysql-3.4.15/
[root@zproxy /usr/share/doc/zabbix-proxy-mysql-3.4.15]# ls
AUTHORS  ChangeLog  COPYING  NEWS  README  schema.sql.gz
[root@zproxy /usr/share/doc/zabbix-proxy-mysql-3.4.15]# gunzip schema.sql.gz 
[root@zproxy /usr/share/doc/zabbix-proxy-mysql-3.4.15]# mysql zabbix_proxy < schema.sql [root@zproxy ~]# mysql zabbix_proxy
MariaDB [zabbix_proxy]> show tables;看到表,OK(2)z proxy
[root@zproxy /etc/zabbix]# vim zabbix_java_gateway.conf
LISTEN_IP="0.0.0.0"
LISTEN_PORT=10052
START_POLLERS=50[root@zproxy /etc/zabbix]# vim zabbix_proxy.conf 
## 连接 z server
ProxyMode=0
Server=172.16.0.71
ServerPort=10051
Hostname=SYproxy
## 连接数据库
DBHost=localhost
DBName=zabbix_proxy
DBUser=zabbix
DBPassword=12345
DBSocket=/var/lib/mysql/mysql.sock
DBPort=3306
## 间隔多长时间,向z server 传输数据
ConfigFrequency=3
DataSenderFrequency=1
## 连接java
JavaGateway=localhost
JavaGatewayPort=10052
StartJavaPollers=50[root@zproxy ~]# systemctl start zabbix-java-gateway
[root@zproxy ~]# systemctl enable zabbix-java-gateway[root@zproxy ~]# systemctl start zabbix-proxy
[root@zproxy ~]# systemctl enable zabbix-proxy[root@zproxy ~]# netstat -antp | grep 1005[12]
tcp     0      0 0.0.0.0:10051    0.0.0.0:*    LISTEN      1653/zabbix_proxy   
tcp6    0      0 :::10051         :::*         LISTEN      1653/zabbix_proxy   
tcp6    0      0 :::10052         :::*         LISTEN      1615/java  

相关文章:

【zabbix监控软件(配置及常用键值)】

监控软件–zabbix 同类产品&#xff1a;nagios、cacti 简介&#xff1a;能够部署企业级监控平台。 监控范围 1&#xff09;zabbix SNMP 监控网络设备 防火墙、交换机 2&#xff09;zabbix agent 监控 服务器&#xff1a;raid插槽 CPU 内存插槽 温度 风扇 操作系统&#xff1…...

98、RS485全自动收发电路入坑笔记

因为RS485采用叉分信号&#xff0c;只支持半双工。正常的RS485芯片驱动电路是需要GPIO来切换发送和接收模式。如下图所示&#xff0c;一般的RS485电平转换芯片都有RE/DE脚&#xff0c;用来切换收发模式。 例如这篇推荐&#xff1a;芯片RS485自动收发电路常见问题与应对策略 但…...

单机快速部署开源、免费的分布式任务调度系统——Apache DolphinScheduler

本文主要为大家介绍Apache DolphinScheduler的单机部署方式&#xff0c;方便大家快速体验。 环境准备 需要Java环境&#xff0c;这是一个老生常谈的问题&#xff0c;关于Java环境的安装与配置期望大家都可以熟练掌握。 验证java环境 java -version 下载安装包并解压 使用wg…...

【运维监控】Prometheus+grafana监控zookeeper运行情况

运维监控系列文章入口&#xff1a;【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来&#xff0c;然后…...

【C++二分查找】2560. 打家劫舍 IV

本文涉及的基础知识点 C二分查找 LeetCode2560. 打家劫舍 IV 沿街有一排连续的房屋。每间房屋内都藏有一定的现金。现在有一位小偷计划从这些房屋中窃取现金。 由于相邻的房屋装有相互连通的防盗系统&#xff0c;所以小偷 不会窃取相邻的房屋 。 小偷的 窃取能力 定义为他在…...

位段、枚举、联合

位段 在一个结构体中以位&#xff08;最小单位&#xff09;为单位来指定其成员所占的内存长度。位段成员名后面有一个冒号&#xff0c;冒号后有一个数字&#xff08;这个数字是小于等于这个成员所占的位&#xff09;。 typedef struct S {char a : 2;//8char b : 8;//8char c …...

golang学习笔记15——golang依赖管理方法

推荐学习文档 golang应用级os框架&#xff0c;欢迎star基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总golang学习笔记01——基本数据类型golang学习笔记02——gin框架及基本原理golang学习笔记03——gin框架的核心数据结构golang学…...

Linux 挂载磁盘与开机自动挂载操作指南

Linux 挂载磁盘与开机自动挂载操作指南 文章目录 Linux 挂载磁盘与开机自动挂载操作指南一 挂载磁盘1 查看硬盘信息2 新增数据盘执行分区3 新建分区4 创建一个主分区5 分区编号6 初始磁柱编号7 截止磁柱编号8 查看新建分区信息9 分区结果写入10 新分区同步操作系统11 设置新分区…...

『功能项目』单例模式框架【37】

我们打开上一篇36C#拓展 - 优化冗余脚本的项目&#xff0c; 本章要做的事情是编写单例模式基类&#xff0c;让继承其基类的子类在运行时只存在一个&#xff0c;共有两个单例基类框架&#xff0c;分别是不继承MonoBehaviour的单例和继承MonoBehaviour的单例框架 首先编写不继承…...

【计算机网络 - 基础问题】每日 3 题(三)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…...

SpringCloud Nacos

**************************** 准备工作 首先准备号nacos的镜像 根据镜像创建nacos容器 nacos:container_name: nacosimage: nacos/nacos-server:v2.1.0-slimports: #需要监听三个端口- "8848:8848"- "9848:9848"- "9849:9849"privileged: tr…...

机器学习算法详细解读和python实现

文章目录 一、机器学习概述1.1 机器学习的定义与分类机器学习的分类 1.2 机器学习的基本流程1.3 Python在机器学习中的应用Python的优势Python在机器学习中的应用场景 2.1 线性回归的基本概念线性回归的数学表达线性回归的目标 2.2 最小二乘法技术最小二乘法的数学推导最小二乘…...

【Linux】Linux权限历险记---组和用户的关系

欢迎来到 CILMY23 的博客 &#x1f3c6;本篇主题为&#xff1a;Linux权限历险记---组和用户的关系 &#x1f3c6;个人主页&#xff1a;CILMY23-CSDN博客 &#x1f3c6;系列专栏&#xff1a;Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux | 算法专题 | 代码训练营…...

华为HCIA、HCIP和HCIE认证考试明细

华为认证体系包括三个主要等级&#xff1a;HCIA&#xff08;华为认证ICT助理&#xff09;、HCIP&#xff08;华为认证ICT高级工程师&#xff09;和HCIE&#xff08;华为认证ICT专家&#xff09;。每个等级的认证都有其特定的考试内容和费用。 HCIA&#xff08;华为认证ICT助理…...

C++数据结构

单向链表 // // Created by 19342 on 2024/9/14. // #include <iostream> using namespace std;// 定义链表节点 struct Node {int data; // 节点存储的数据Node* next; // 指向下一个节点的指针 };// 初始化链表 Node* initList() {return nullptr; }// 在链表末尾添加…...

Linux下read函数详解

在Linux中&#xff0c;read 函数是最常用的系统调用之一&#xff0c;用于从文件或其他输入设备读取数据。它是低级别的I/O操作的核心&#xff0c;直接与操作系统的内核交互&#xff0c;提供了高效的数据读取方式。 一、read 函数简介 read 函数的声明如下&#xff1a; #inclu…...

【二叉树遍历算法应用】------补录

0.二叉树结点的链式存储结构 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>typedef char TElemType;//树中元素基本类型为char类型//二叉树结点链式存储结构&#xff08;二叉链表&#xff09; typedef struct BiNode {TElemType data;//数据域…...

AtCoder Beginner Contest 368

A.Cut&#xff08;模拟&#xff09; 题意&#xff1a; 有一叠 N N N张扑克牌&#xff0c;最上面的 i i i张扑克牌上写着一个整数 A _ i A\_i A_i。 你从牌堆底部取出 K K K张牌&#xff0c;将它们放在牌堆顶部&#xff0c;并保持它们的顺序。 操作后从上到下输出写在卡…...

WebGL系列教程六(纹理映射与立方体贴图)

目录 1 前言2 思考题3 纹理映射介绍4 怎么映射&#xff1f;5 开始绘制5.1 声明顶点着色器和片元着色器5.2 修改顶点的颜色为纹理坐标5.3 指定顶点位置和纹理坐标的值5.4 获取图片成功后进行绘制5.5 效果5.6 完整代码 6 总结 1 前言 上一讲我们讲了如何使用索引绘制彩色立方体&a…...

为什么nii.gz转.nrrd标签体积变大?

import SimpleITK as sitk # nii nii.gz nrrd格式之间互相转换 def nii2nii(oripath, savepath):data sitk.ReadImage(oripath)img sitk.GetArrayFromImage(data)out sitk.GetImageFromArray(img)sitk.WriteImage(out, savepath)if __name__ __main__:oripath 00292625.ni…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...