Zabbix监控系统:zabbix服务部署+基于Proxy分布式部署+zabbix主动与被动监控模式

一、Zabbix概述

1.1 简介

zabbix 是一个基于 Web 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。

zabbix 能监视各种网络参数,保证服务器系统的安全运营,提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。

zabbix 由 2 部分构成,zabbix server 与可选组件 zabbix agent。

通过 C/S 模式采集数据,通过 B/S 模式在 Web 端展示和配置。

zabbix server 可以通过 SNMP,zabbix agent,ping,端口监视等方法提供对远程服务器/网络状态的监视,数据收集等功能, 它可以运行在 Linux 等平台上。

zabbix agent 需要安装在被监视的目标服务器上,它主要完成对硬件信息或与操作系统有关的内存,CPU 等信息的收集。

1.2 zabbix组件

1.2.1 zabbix server

zabbix服务端进程,配置和管理zabbix应用程序,也是监控系统的告警中心(配置监控项告警触发器阈值和发送告警)。

端口10051

1.2.2 zabbix agent

部署在被监控主机上,采集监控指标数据,发送给zabbix server。

端口10050

1.2.3 zabbix proxy

zabbix代理端进程,部署在zabbix server与zabbix agent之间,代替zabbix server收集zabbix agent发送的监控指标数据,汇总后再转发给 zabbix server,分担zabbix server的集中式负载压力。

端口10051(默认与zabbix server相同)

1.2.4 zabbix database(mysql oracle postgreSQL tsdb等)

持久化存储配置信息和监控指标数据。

1.2.5 zabbix web(apache/nginx + php)

进行zabbix服务端配置和监控数据的UI界面展示。

1.2.6 zabbix java gateway

作为获取从java应用采集的监控指标数据的代理端。

端口10052

1.3 工作原理

zabbix agent会定期采集被监控主机的指标数据并发送给zabbix server

zabbix server收到数据后会将数据存储到zabbix database中;

管理员可基于zabbix web前端查看监控数据的图像。

二、部署Zabbix

ServerIP
Zabbix-server192.168.10.20
Zabbix-agent192.168.10.30
#关闭 selinux 与防火墙
systemctl disable --now firewalld
setenforce 0

2.1 解决依赖关系

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 

2.2建立管理用户

groupadd zabbix
useradd -g zabbix zabbix

2.3 解压包

cd /opt
#切换目录
wget https://cdn.zabbix.com/zabbix/sources/stable/4.0/zabbix-4.0.30.tar.gz
#下载安装包
tar xf zabbix-4.0.30.tar.gz
#解压

2.4编译安装

./configure --prefix=/apps/zabbix_server --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 --enable-javamake 
make install

2.5 添加客户端

./configure --prefix=/apps/zabbix --enable-agent
在别的机器上   客户机需要安装的  客户端

2.6 安装数据库

数据库可以安装在本地也可以分离

yum install mariadb-server.x86_64  -y
systemctl start mariadbmysql_secure_installation       安全加固脚本
#输入当前密码
#修改root密码
#移除匿名用户 
#移除测试数据库
#不让 root  远程登录
#刷新mysql -uroot -p
create database zabbix character set utf8 collate utf8_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
set global log_bin_trust_function_creators = 1;
quit;

2.7 导入zabbix数据库文件

[root@localhost mysql]# cd /opt/zabbix-4.0.30/database/mysql
[root@localhost mysql]#mysql -uzabbix -pzabbix zabbix < schema.sql 
[root@localhost mysql]#mysql -uzabbix -pzabbix zabbix < images.sql 
[root@localhost mysql]#mysql -uzabbix -pzabbix zabbix < data.sql ###必须最后 导入  data.sql

2.8安装web apapche

[root@localhost mysql]#yum install httpd -y
[root@localhost mysql]#systemctl start httpd[root@localhost zabbix-4.0.30]#cd /opt/zabbix-4.0.30/frontends/php/[root@localhost php]#cp -a /opt/zabbix-4.0.30/frontends/php/   /var/www/html/zabbix/
# 将前端页面拷贝过去

2.9 修改zabbix配置

vim /apps/zabbix_server/etc/zabbix_server.conf
# grep "^[a-Z]" /apps/zabbix_server/etc/zabbix_server.conf
LogFile=/tmp/zabbix_server.log
DBName=zabbix_server
DBUser=zabbix
DBPassword=zabbix
LogSlowQueries=3000118  行修改 下  密码 其他不用修改
118  DBPassword= zabbix#启动 zabbixserver  和 zabbixagented
/apps/zabbix_server/sbin/zabbix_server
/apps/zabbix_server/sbin/zabbix_agentd 

2.10 升级php 版本

yum  install php-gettext php-xml php-net-socket php-gd php-mysql  -y修改php 软件的配置
vim /etc/php.ini
384 max_execution_time = 300
394max_input_time = 600
672 post_max_size = 16M
878 date.timezone = Asia/Shanghai#改完 以后systemctl  restart  httpd

2.11下载配置文件

cp zabbix.conf.php   /var/www/html/zabbix/conf/ -a
复制好了  直接刷新页面

默认用户名:Admin

密码: zabbix

2.12 准备service 文件(server和agent)

#先停止  zabbix-server
pkill zabbix_server[root@localhost system]#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[Install]
WantedBy=multi-user.target[root@localhost ~]#chown zabbix:zabbix  /apps/zabbix_server/ -R
[root@localhost system]#systemctl daemon-reload
[root@localhost system]#systemctl start zabbix-server.service
[root@localhost system]#systemctl status zabbix-server.service#先停止当前zabbix_agent进程    10050端口
# pkill zabbix_agentd 
# cat /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
# systemctl restart zabbix-agent && systemctl enable zabbix-agent

2.13 修改中文

2.14 在192.168.10.30上安装zabbix-agent

安装依赖环境

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

解压安装包 编译

[root@node2 zabbix-4.0.30]#tar xf zabbix-4.0.30.tar.gz 
[root@node2 zabbix-4.0.30]#./configure --prefix=/apps/zabbix --enable-agent
[root@node2 zabbix-4.0.30]#make -j2 && make install

准备service文件

[root@node2 zabbix-4.0.30]#useradd zabbix
# 新建用户[root@node2 zabbix-4.0.30]#vim /usr/lib/systemd/system/zabbix-agent.service 
[Unit]
Description=Zabbix Agent
After=syslog.target
After=network.target
[Service]
Environment="CONFFILE=/apps/zabbix/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/sbin/zabbix_agentd -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
[Install]
WantedBy=multi-user.target[root@node2 zabbix-4.0.30]#systemctl daemon-reload
[root@node2 zabbix-4.0.30]#systemctl start  zabbix-agent.service
[root@node2 zabbix-4.0.30]#systemctl status zabbix-agent.service

修改配置文件

[root@node2 etc]#vim  zabbix_agentd.conf
94 Server=192.168.91.100   #指向当前zabbix server
##### Passive checks related #被动检查相关配置### Option: ListenPort
ListenPort=10050 #监听端口  默认的无需修改119 StartAgents=3
#启动3个进程收集数据146 Hostname=192.168.10.30
#指定名称 一般使用 IP地址, 等会需要使用[root@node2 zabbix-4.0.30]#systemctl restart  zabbix-agent.service
[root@node2 etc]#systemctl status zabbix-agent.service 
# 可以看到三个监听线程

web页面主控端添加被监控主机

在zabbix web管理界面添加上一步安装了zabbix agent的linux主机。

添加模板不添加模板是不会监控的

过段时间就会变绿

三、监控tomcat开启JMX监控

3.1 在30服务器上安装tomcat

3.2 tomcat开启JMX监控

JMX在Java编程语言中定义了应用程序以及网络管理和监控的体系结构、设计模式、应用程序接口以及服务,通常使用JMX来监控系统的运行状态。

[root@node2 data]#vim /usr/local/tomcat/bin/catalina.sh
#一般加在116行
CATALINA_OPTS="$CATALINA_OPTS  -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=192.168.10.30" [root@node2 data]#systemctl restart   tomcat
#重启服务
[root@node2 data]#systemctl status tomcat
[root@node2 data]#ss -napt|grep 12345
#12345开启就可以
LISTEN     0      50          :::12345                   :::*                   users:(("java",pid=13661,fd=24))CATALINA_OPTS="$CATALINA_OPTS
-Dcom.sun.management.jmxremote                				#启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345     				#默认启动的JMX端口号,要和zabbix添加主机时候的端口一致即可
-Dcom.sun.management.jmxremote.authenticate=false 			#不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false					#不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x" 						#tomcat主机自己的IP地址,不要写zabbix服务器的地址

选项含义
-Dcom.sun.management.jmxremote#启用远程监控JMX
-Dcom.sun.management.jmxremote.port=12345#默认启动的JMX端口号,要和zabbix添加主机时候的端口 一致即可
-Dcom.sun.management.jmxremote.authenticate=false#不使用用户名密码
-Dcom.sun.management.jmxremote.ssl=false#不使用ssl认证
-Djava.rmi.server.hostname=x.x.x.x"#tomcat主机自己的IP地址,不要写zabbix服务器的地址

3.3 配置zabbixserver

在主服务器上配置启动 javagateway

[root@localhost data]#vim /apps/zabbix_server/sbin/zabbix_java/settings.sh 
#不需要修改35 START_POLLERS=5  #启动5个线程去采集java数据
43 TIMEOUT=30       #一个数据的超时时间30s[root@localhost data]#/apps/zabbix_server/sbin/zabbix_java/startup.sh 
# 启动服务
[root@localhost data]#ss -antp |grep 10052
LISTEN     0      50          :::10052                   :::*                   users:(("java",pid=47582,fd=14))

配置 zabbix-server 对接 java-gateway

[root@localhost data]#vim /apps/zabbix_server/etc/zabbix_server.conf
281 JavaGateway=192.168.10.20    #指明gateway地址
297 StartJavaPollers=5            #开启多少个进程去收集java服务器的信息289 JavaGatewayPort=10052         # 默认不用改[root@localhost ~]#systemctl restart zabbix-server
#快照起不来  重启机器 
#重启后不要忘记开启  javagateway

3.4 web页面配置

最后jmx 处会变绿

四、zabbix主动与被动监控模式

4.1 被动模式

zabbix-server 服务器主动去 连接 被监控服务器

无论是模式还是被动模式,都是站在zabbix agent角度来说的工作模式,比如被动模式,是说zabbix agent被动的接受zabbix server周期性发送过来的数据收集指令,在被动模式之下,zabbix server会根据主机关联的模板中的监控项和数据采集间隔时间,周期性的打开随机端口并向zabbix agent服务器的10050发起tcp连接,然后发送获取监控项数据的指令,即zabbix server发送什么指令那么zabbix agent就收集什么数据,zabbix server什么时候发送zabbix agent就什么时候采集,zabbix server不发送zabbix agent就一直不响应,所以zabbix agent也不用关心其监控项和数据采集周期间隔时间。

被动模式的优点就是配置简单,安装后即可使用,因此也成为zabbix 的默认工作模式,但是被动模式的最大问题就是会加大zabbix server的工作量,在数百甚至数千台服务器的环境下会导致zabbix server需要轮训向每个zabbix agent发送数据采集指令,如果zabbix server负载很高还会导致不能及时获取到最新数据,但由于无需其他复杂配置,被设置为了默认的工作方式。

  1. 主服务器会开启随机端口去连接 客户端的 10050 端口 来获取数据

  2. 从节点将数据交给主

  3. 主写入数据库

  4. 最后展示在 web页面中

4.2 主动模式

主动模式是由zabbix agent主动向zabbix server的10051端口发起tcp连接请求,因此主动模式下必须在zabbixagent配置文件中指定zabbix server的IP或者主机名(必须可以被解析为IP地址),在连接到zabbix server之前zabbix agent是不知道自己要采集那些数据以及间隔多久采集一次数据的,然后在连接到zabbix server以后获取到自己的监控项和数据采集间隔周期时间,然后再根据监控项采集数据并返回给zabbix server,在主动模式下不再需要zabbix serve向zabbix agent发起连接请求,因此主动模式在一定程度上可减轻zabbix server打开的本地随机端口和进程数,在一定程度就减轻看zabbix server的压力。

  1. 初次连接agent服务器会开启随机端口去连接 服务端的 10051 端口 来获取 需要监控的数据类型(监控项)

  2. 从节点将数据交给主

  3. 主写入数据库

  4. 最后展示在 web页面中

  5. 此后的数据收集就不需要先去获取监控项目

4.3 zabbix proxy被动模式部署与使用

编译安装proxy软件

#安装依赖环境yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php php-bcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2make && make   install

准备 数据库

yum install mariadb-server -y
systemctl start mariadb
#新建表
create database zabbix_proxy_active  character set utf8 collate utf8_bin;
create database zabbix_proxy_passive character set utf8 collate utf8_bin;
# 授权
grant all privileges on zabbix_proxy_active.*  	to proxy@'192.168.10.%' identified by '123456';
grant all privileges on zabbix_proxy_passive.*  to proxy@'192.168.10.%' identified by '123456';
grant all privileges on zabbix_proxy_active.*  	to proxy@'localhost' identified by '123456';
grant all privileges on zabbix_proxy_passive.*  to proxy@'localhost' identified by '123456';#导入数据结构
#先去源码包目录
mysql -uproxy -p123456 -h192.168.10.40  zabbix_proxy_passive < database/mysql/schema.sql
mysql -uproxy -p123456 -h192.168.10.40  zabbix_proxy_active < database/mysql/schema.sql

修改配置文件

[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/
[root@localhost zabbix_proxy]#vim   zabbix_proxy.conf
13 ProxyMode=1
# 1是被动   
#0为主动  修改为131 Server=192.168.10.20
# 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的40 ServerPort=10051
#被动模式可以不修改  应为是  zabbix-server 主动50 Hostname=passive
# web 配置中需要使用, 必须一致158 DBHost=192.168.10.40
#数据库地址169 DBName=zabbix_proxy_passive
# 数据库名字184 DBUser=proxy
#数据库用户192 DBPassword=123456
#数据库密码244 ConfigFrequency=5
#间隔多少秒从zabbix server获取监控项信息

启动 proxy 软件 及proxy 上的agent

[root@localhost zabbix-4.0.30]#useradd zabbix
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy 
[root@localhost zabbix-4.0.30]#ss -natpl |grep 10051
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd
# 一定要开[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd 
[root@localhost zabbix-4.0.30]#
[root@localhost zabbix-4.0.30]#
[root@localhost zabbix-4.0.30]#pstree -p|grep zabbix

修改被监控端指向 40 代理

[root@localhost ~]# vim /apps/zabbix/etc/zabbix_agentd.conf
94 Server=192.168.10.20,192.168.10.40
#被动模式  允许  40代理 来获取数据
[root@localhost ~]#systemctl  restart   zabbix-agent.service 
[root@localhost ~]#systemctl  status   zabbix-agent.service 

web端添加代理

4.3 zabbix proxy主动模式部署与使用

安装 proxy

yum install gcc libxml2-devel net-snmp net-snmp-devel curl curl-devel php phpbcmath php-mbstring mariadb mariadb-devel java-1.8.0-openjdk-devel -y
./configure --prefix=/apps/zabbix_proxy --enable-proxy --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
make && make   install

检测是否可以连接数据库

也可以在此服务器单独安装

mysql -uproxy -p123456 -h192.168.10.30

修改配置文件

[root@localhost zabbix-4.0.30]#cd /apps/zabbix_proxy/etc/
[root@localhost zabbix_proxy]#vim   /apps/zabbix_proxy/etc/zabbix_proxy.conf
13 ProxyMode=0
# 1是被动   0为主动  需要开启31 Server=192.168.10.20
# 指向 zabbix服务器 , 就算是主动模式也需要修改应为不是所有监控项都是主动还有被动的40 ServerPort=10051
#被动模式可以不修改  应为是  zabbix-server 主动50 Hostname=active
# web 配置中需要使用, 必须一致158 DBHost=192.168.10.30
#数据库地址169 DBName=zabbix_proxy_active
# 数据库名字184 DBUser=proxy
#数据库用户192 DBPassword=123456
#数据库密码

启动

[root@localhost zabbix-4.0.30]#useradd zabbix
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_agentd
[root@localhost zabbix-4.0.30]#/apps/zabbix_proxy/sbin/zabbix_proxy 
[root@localhost zabbix-4.0.30]#ss -natpl |grep 10051

只需要写 之前配置的 hostname即可

修改被监控端

[root@node2 ~]#vim  /apps/zabbix/etc/zabbix_agentd.conf
135 ServerActive=192.168.10.30
#指向  代理服务器
[root@node2 ~]#systemctl  restart   zabbix-agent.service 
[root@node2 ~]#systemctl  status   zabbix-agent.service 

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

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

相关文章

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(三)基变换与坐标变换;微分方程;李群和李代数;雅可比矩阵

一、基变换与坐标变换 字小,事不小。 因为第一反应:坐标咋变,坐标轴就咋变呀。事实却与我们想象的相反。这俩互为逆矩阵。 第一次读没有读明白,后面到事上才明白。 起因是多传感器标定:多传感器,就代表了多个坐标系,多个基底。激光雷达和imu标定。这个标定程序,网上,…

【VSCode】安装 【ESP-IDF】插件及【ESP32-S3】新建工程和工程配置

一、搭建基础工程 二、基础工程的文件架构解析 三、调试相关工具介绍 1、串口下载2、JTAG 下载与调试 四、工程的文件架构解析 五、基础工程配置 一、搭建基础工程 在 VS Code 中新建 ESP-IDF 基础工程的步骤如下&#xff1a; 1、启动 VS Code 并打开命令面板 按下“Ctrl…

1小时上手Alibaba Sentinel流控安全组件

微服务的雪崩效应 假如我们开发了一套分布式应用系统&#xff0c;前端应用分别向A/H/I/P四个服务发起调用请求&#xff1a; 但随着时间推移&#xff0c;假如服务 I 因为优化问题&#xff0c;导致需要 20 秒才能返回响应&#xff0c;这就必然会导致20秒内该请求线程会一直处于阻…

科研绘图系列:R语言TCGA分组饼图(multiple pie charts)

介绍 在诸如癌症基因组图谱(TCGA)等群体研究项目中,为了有效地表征和比较不同群体的属性分布,科研人员广泛采用饼图作为数据可视化的工具。饼图通过将一个完整的圆形划分为若干个扇形区域,每个扇形区域的面积大小直接对应其代表的属性在整体中的占比。这种图形化的展示方…

代码审计 | .NET SqlSugar框架注入漏洞

01阅读须知 此文所节选自小报童《.NET 代码审计》专栏&#xff0c;主要内容有涉及的.NET目录和文件操作、SQL注入方向的敏感函数、还有不安全的配置导致的漏洞挖掘思路&#xff0c;对.NET代码审计感兴趣的朋友们可以解锁该电子报刊&#xff0c;解锁更多的报刊内容。 02基本介…

【06】LLaMA-Factory微调大模型——微调模型评估

上文【05】LLaMA-Factory微调大模型——初尝微调模型&#xff0c;对LLama-3与Qwen-2进行了指令微调&#xff0c;本文则介绍如何对微调后的模型进行评估分析。 一、部署微调后的LLama-3模型 激活虚拟环境&#xff0c;打开LLaMA-Factory的webui页面 conda activate GLM cd LLa…

C# Program to print pyramid pattern (打印金字塔图案的程序)

编写程序打印由星星组成的金字塔图案 例子 &#xff1a; 输入&#xff1a;n 6输出&#xff1a; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 我们强烈建…

Python 机器学习求解 PDE 学习项目——PINN 求解一维 Poisson 方程

本文使用 TensorFlow 1.15 环境搭建深度神经网络&#xff08;PINN&#xff09;求解一维 Poisson 方程: − Δ u f in Ω , u 0 on Γ : ∂ Ω . \begin{align} -\Delta u & f \quad & \text{in } \Omega,\\ u & 0 \quad & \text{on } \Gamma:\partial \Om…

Flink笔记整理(三)

Flink笔记整理&#xff08;三&#xff09; 文章目录 Flink笔记整理&#xff08;三&#xff09;五、DataStream API5.1Environment5.2 Source5.3 Transformation5.4 Sink 总结 五、DataStream API DataStream API是Flink的核心层API&#xff0c;一个Flink程序&#xff0c;其实本…

NoSQL之Redis非关系型数据库

目录 一、数据库类型 1&#xff09;关系型数据库 2&#xff09;非关系型数据库 二、Redis远程字典服务器 1&#xff09;redis介绍 2&#xff09;redis的优点 3&#xff09;Redis 为什么那么快&#xff1f; 4&#xff09;Redis使用场景 三、Redis安装部署 1&#xff0…

批量打断相交线——ArcGISpro 解决方法

在数据处理&#xff0c;特别是地理空间数据处理或是任何涉及图形和线条分析的场景中&#xff0c;有时候需要把相交的线全部从交点打断一个常见的需求。这个过程对于后续的分析、编辑、或是可视化展现都至关重要&#xff0c;因为它可以确保每条线都是独立的&#xff0c;避免了因…

c++ primer plus 第16章string 类和标准模板库, 16.3.3 对矢量可执行的其他操作

c primer plus 第16章string 类和标准模板库, 16.3.3 对矢量可执行的其他操作 c primer plus 第16章string 类和标准模板库, 16.3.3 对矢量可执行的其他操作 文章目录 c primer plus 第16章string 类和标准模板库, 16.3.3 对矢量可执行的其他操作16.3.3 对矢量可执行的其他操作…

DB-GPT:LLM应用的集大成者

整体架构 架构解读 可以看到&#xff0c;DB-GPT把架构抽象为7层&#xff0c;自下而上分别为&#xff1a; 运行环境&#xff1a;支持本地/云端&单机/分布式等部署方式。顺便一提&#xff0c;RAY是蚂蚁深度参与的一个开源项目&#xff0c;所以对RAY功能的支持应该非常完善。…

matlab 声音信号希尔伯特黄变换

1、内容简介 略 91-可以交流、咨询、答疑 2、内容说明 略 Hilbert-Huang变换&#xff08;HHT&#xff09;是一种基于经验的数据分析方法 方法。它的扩展基础是自适应的&#xff0c;因此它可以从非线性和非平稳过程中产生具有物理意义的数据表示。这个 适应性的优势是有代价…

MySQL --- 库的操作

一、创建数据库 create database [ if not exists ] 数据库名; // []中的为可选项 在创建库时&#xff0c;也可以指定数据库采用的字符集(character set)和数据库字符集的校验规则(collate) (当我们创建数据库没有指定字符集和校验规则时&#xff0c;系统使用默认字符集&#x…

运行 npm install 报错-4048

我在已经开发中的项目&#xff0c;执行 npm install 命令时&#xff0c;出现报错&#xff1a; 并且之前在帖子中提到的报错类型还不一样&#xff08;帖子内容如下&#xff09;&#xff1a; 运行 npm run dev 总报错_运行npm run dev报错-CSDN博客 该报错内容主要为权限导致的&…

华清数据结构day5 24-7-22

1>使用栈&#xff0c;完成进制转换输入&#xff1a;一个整数&#xff0c;进制数输出&#xff1a;该数的对应的进制数 seqstack.h #ifndef SEQSTACK_H #define SEQSTACK_H #define MAX 10 #include"myhead.h" typedef int datatype;typedef struct {datatype *d…

Nginx详解(超级详细)

目录 Nginx简介 1. 为什么使用Nginx 2. 安装Nginx Nginx的核心功能 1. Nginx反向代理功能 2. Nginx的负载均衡 3 Nginx动静分离 Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器&#xff0c;在BSD-like 协…

OpenCV分水岭算法watershed函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 我们将学会使用基于标记的分水岭算法来进行图像分割。我们将看到&#xff1a;watershed()函数的用法。 任何灰度图像都可以被视为一个地形表…

199.二叉树的右视图(BFS)

给定一个二叉树的根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4] 输出: [1,3,4] 示例 2: 输入: [1,null,3] 输出: [1,3] 示例 3: 输入: [] 输出: [] 解题…