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

news2024/11/24 20:49:05

一、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-java

make 
make install

2.5 添加客户端

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

2.6 安装数据库

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

yum install mariadb-server.x86_64  -y
systemctl start mariadb

mysql_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=3000


118  行修改 下  密码 其他不用修改
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-libxml2

make && 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为主动  修改为1

31 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.coloradmin.cn/o/1941950.html

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

相关文章

三、GPIO按键读取

在上一篇文章中&#xff0c;我们详细讲解了GPIO的写函数。万事万物都具有一定的相对性&#xff0c;GPIO的操作也不例外。既然有写操作&#xff0c;那么必然也有读操作。有了上一篇文章的基础&#xff0c;理解本篇内容将会更加容易。 一、这篇文章能了解什么 本篇文章将基于上一…

为什么用LeSS?

实现适应性 LeSS是一个产品开发的组织系统&#xff0c;旨在最大化一个组织的适应性。关于适应性&#xff08;或者敏捷性&#xff0c;也就是敏捷开发的初衷&#xff09;我们是指优化&#xff1a; 以相对低的成本改变方向的能力&#xff0c;主要是基于通过频繁交付产生的探索。从…

【Linux 驱动】IMX6ULL eLCDIF驱动

1. eLCDIF设备树 lcdif: lcdif021c8000 {compatible "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; //属性reg <0x021c8000 0x4000>; //起始地址 地址大小interrupts <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; …

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

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

Prompt Enginnering(提示工程)

什么是提示工程 prompt enginnering是提示工程的意思&#xff0c;也有叫指令工程。 用白话讲&#xff1a;是我们对GPT说出的话&#xff0c;我们向它提问的信息&#xff0c;就是prompt。 官方一点&#xff1a;是我们使用自然语言提示来控制和优化生成式模型&#xff08;生成式…

《Milvus Cloud向量数据库指南》——SPLADE:基于BERT的Learned稀疏向量技术深度解析

在自然语言处理(NLP)领域,随着深度学习技术的飞速发展,预训练语言模型如BERT(Bidirectional Encoder Representations from Transformers)已成为推动研究与应用进步的重要基石。BERT通过其强大的上下文感知能力,在多项NLP任务中取得了显著成效,尤其是在文本表示和语义理…

深入理解Linux网络(五):TCP接收唤醒

深入理解Linux网络&#xff08;五&#xff09;&#xff1a;TCP接收唤醒 TCP接收唤醒由软中断提供服务。 软中断&#xff08;也就是 Linux ⾥的 ksoftirqd 进程&#xff09;⾥收到数据包以后&#xff0c;发现是 tcp 的包的话就会执⾏到 tcp_v4_rcv 函数。接着如果是 ESTABLISH…

GMSSL2.x编译鸿蒙静态库和动态库及使用

一、编译环境准备 1.1 开发工具 DevEco-Studio下载。 1.2 SDK下载 ​ 下载编译第三方库的SDK有两种方式&#xff0c;第一种方式从官方渠道根据电脑系统选择对应的SDK版本&#xff0c;第二种方式通过DevEco-Studio下载SDK。本文只介绍通过DevEco-Studio下载SDK的方式。 安装…

(十一)Spring教程——Bean基本配置与依赖注入之属性注入

1.Bean基本配置 在进行Bean配置的详细讲解之前&#xff0c;先来了解以下Bean配置的基础知识&#xff0c;以快速建立起Bean配置的初步概念。 1.1装配一个Bean 在Spring容器的配置文件中定义一个简要Bean的配置片段如下所示 <bean id”foo” class”com.smart.Foo”/> 一般…

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

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

AI+BI结合,数据分析新方向 —— 奥威BI数据可视化引领未来

【AIBI结合&#xff0c;数据分析新方向 —— 奥威BI数据可视化引领未来】 在数字化浪潮汹涌的今天&#xff0c;企业对于数据的洞察力与决策效率的需求日益增长。奥威BI&#xff08;Business Intelligence&#xff09;数据可视化解决方案&#xff0c;以其独特的“AIBI”融合创新…

压缩视频在线免费 怎么免费压缩视频大小 哪个软件可以免费压缩视频

在数字媒体时代&#xff0c;视频文件的体积越来越大&#xff0c;这就需要我们找到高效的方式来压缩视频&#xff0c;以节省存储空间和提升分享速度。本文将为您介绍几款免费的视频压缩软件&#xff0c;帮助您轻松应对视频文件管理难题。 方法一、 安装并打开一款的视频软件。 …

通过iframe嵌套的不同域名的页面之间处理cookie存储失败的问题——js技能提升

最近同事在写mvc的后台管理系统&#xff0c;通过iframe实现不同域名的页面的嵌套。 但是有个问题&#xff0c;就是从父页面打开iframe的子页面时&#xff0c;需要登录子页面&#xff0c;此时需要将子页面登录后的token存储到子页面的cookie中&#xff0c;方便子页面的其他接口…

Python 全栈体系【三阶】(三)

第一章 Django 七、静态文件 1. 概述 静态文件是指在WEB应用中的图像文件、CSS文件、Javascript文件。 2. 静态文件的配置 settings.py中关于静态文件的配置如下&#xff1a; STATICFILES_DIRS [BASE_DIR , static, ]STATIC_URL /static/其中&#xff1a; STATICFILES…

Vue 3 + Vite 项目中安装 Tailwind CSS

官网&#xff1a;安装 - TailwindCSS中文文档 | TailwindCSS中文网 tips&#xff1a;只按照官网的配置可能会导致样式不加载/加载不生效的问题 1、正确安装指令 npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p 自动生成 ​tailwind.config.js​…

鱼眼摄像头-opencv校准(基于棋盘+畸变表)

一&#xff1a;主要参数说明 1&#xff1a;内参矩阵K 是3*3的矩阵&#xff0c;其类似格式 Knp.array([ [389.2109574522624, 0.0, 630.2525667489842], [0.0, 388.505701978078, 360.7886749292513], [0.0, 0.0, 1.0]]) 2&#xff1a;畸变系数 针对鱼眼相机&#xff1a;…

DVWA靶场超(详细教程)--跨站攻击(XSS+CSRF)

一、XSS 反射型xss 打开dvwa的Reflected Cross Site Scripting (XSS) &#xff08;1&#xff09;low等级 查看页面源码&#xff08;ctrlu&#xff09;该界面有提交按钮和输入框 在输入框随便输入点字符&#xff0c;点击提交 可以看见输入的helloword嵌入到界面中。 View sou…

MybatisPlus的使用与详细讲解

今天我们来讲解一下Mybatis的升级版&#xff0c;就是MybatisPlus. MybatisPlus是如何获取实现CRUD的数据库表信息的&#xff1f; 默认以类名驼峰转下划线作为表名 默认把名为id的字段作为主键 默认把变量名驼峰转下划线作为表的字段名 1.MybatisPlus中比较常见的注解 TableN…

红人点集登录逆向+接口逆向:SHA256算法和Webpack反爬

&#x1f50d; 引言 红人点集采取了一系列加密和限制措施&#xff0c;主要是对于参数加密和登录token加密。今天利用Python与JavaScript逆向工程技术&#xff0c;实现逆向登录然后请求接口获取数据。 &#x1f50d; 思路与步骤详解 &#x1f527; 解密登录接口参数&#xf…

安防视频监控EasyCVR视频汇聚平台修改配置后无法启动的原因排查与解决

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构&#xff0c;兼容性强、支持多协议接入&#xff0c;包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…