当前位置: 首页 > 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…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

高危文件识别的常用算法:原理、应用与企业场景

高危文件识别的常用算法&#xff1a;原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件&#xff0c;如包含恶意代码、敏感数据或欺诈内容的文档&#xff0c;在企业协同办公环境中&#xff08;如Teams、Google Workspace&#xff09;尤为重要。结合大模型技术&…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...

字符串哈希+KMP

P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性&#xff0c;分别代表什么&#xff0c;有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...

使用高斯朴素贝叶斯算法对鸢尾花数据集进行分类

高斯朴素贝叶斯算法通常用于特征变量是连续变量&#xff0c;符合高素分布的情况。 使用高斯朴素贝叶斯算法对鸢尾花数据集进行分类 """ 使用高斯贝叶斯堆鸢尾花进行分类 """ #导入需要的库 from sklearn.datasets import load_iris from skle…...