Zabbix6.0全套落地方案-基于RHEL9系列源码编译安装-Linux+Nginx+Mysql+Redis生产级模板Agent2客户端一键部署

news2024/11/16 10:43:59

实践说明:基于RHEL9系列(CentOS9,AlmaLinux9,RockyLinux9等),但适用场景不限于此,客户端一键部署安装包基于RHEL8和RHEL9。
文档形成时期:2023年
因系统或软件版本不同,构建部署可能略有差异,但本文未做细分,对稍有经验者应不存在明显障碍。
限于篇幅,Zabbix配置基于Agent2一键安装包和模版,其它配置细节未做阐述,将来再单独整理一系列文档,但基于本文纯实践方案,已经有比较全面的配置,能应对大部分场景,或基于此容易做进一步的配置部署。
因软件世界之复杂和个人能力之限,难免疏漏和错误,欢迎指正。

服务端基础硬件资源环境

普通场景下推荐配置:2核8G,支持1000个监控指标。

服务端基础环境

RHEL9系列(本文档方案基于AlmaLinux9)
MySQL 8.0.X 之一 需要 InnoDB 引擎。 可参考该文档部署:https://blog.csdn.net/ynz1220/article/details/135535296
PHP 7.2.5 或更高版本,不支持 PHP 8.0
所需模块参见官文:https://www.zabbix.com/documentation/6.0/zh/manual/installation/requirements

服务端基于AlmaLinux9部署PHP7.4.33

采用"Docker的方式部署PHP7.4.33,编译或DNF方式安装Nginx+MySQL",遇到了Zabbix图表乱码问题,虽然让Docker环境支持了中文,但Zabbix图表乱码问题仍未能解决。
最终弃用Docker的方式部署PHP7.4.33,采用DNF方式安装PHP7.4.33

dnf module list php -y #可以看到,默认源有php8.1,但目前zabbix7才支持php8.1,而zabbix7还是开发版本,不宜用于生产环境。

#dnf update -y # 可选

#删除旧版本
#dnf remove php php-fpm -y; dnf remove php* -y #可选

#安装Epel和Remi仓库
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

#再次查看
dnf module list php -y
有php7.4至8.3了

#安装PHP 7.4
dnf module install php:remi-7.4 -y

#安装扩展模块
dnf install php-cli php-fpm php-curl php-mysqlnd php-gd php-opcache php-zip php-intl php-common php-bcmath php-imap php-imagick php-xmlrpc php-json php-readline php-memcached php-redis php-mbstring php-apcu php-xml php-dom php-redis php-memcached php-memcache

php -v
php -m # 可以看到,zabbix6所需要的openssl等所有模块均已安装好。

#配置PHP-FPM
vi /etc/php-fpm.d/www.conf
;至少有下列配置
listen.backlog = 2048
listen.owner = www
listen.group = www
listen.mode = 0660
listen.acl_users =
listen.acl_groups =
; 特别注意两个acl配置要为空,不然listen.owner和listen.group配置无效,创建的unixsock文件就不会是指定的普通用户,让前端nginx无法访问,报502。

systemctl restart php-fpm

nginx相关配置:
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
include fastcgi_params;
}

从源码安装Zabbix服务端

创建系统用户等准备

groupadd --system zabbix
useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c “Zabbix Monitoring System” zabbix
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix
chown zabbix:zabbix /usr/lib/zabbix

如果Zabbix server和agent运行在同一台机器上,建议使用与agent不同的用户来运行。否则,如果两者使用相同的用户,agent可以访问server的配置文件,Zabbix里任何Admin级别的用户可以轻易地获取诸如数据可密码等信息。

下载最新稳定版Zabbix程序包
https://www.zabbix.com/download_sources#60LTS
wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.22.tar.gz

创建数据库

对Zabbixserver和proxy守护进程,还有Zabbix前端,必须要有一个数据库。但运行Zabbixagent不需要。

此处SQL脚本用于创建数据库模式和插入数据集。Zabbix proxy数据库只需要数据库模式,而Zabbix server数据库在数据库模式之上还需要数据集。

Zabbix 唯一支持的编码是 UTF-8 。使用此编码没有已知的任何安全漏洞。应注意如果使用其他的编码,则存在已知的安全问题。

MySQL
支持字符集 utf8(又名 utf8mb3)和 utf8mb4(分别使用 utf8_bin 和 utf8mb4_bin 排序规则)
建议使用 utf8mb4 进行新安装。
对于 Zabbix 6.0.11 及更新版本,需要在导入模式期间创建确定性触发器。 在 MySQL 和 MariaDB 上,如果启用了二进制日志记录并且没有超级用户权限同时未在MySQL配置文件中配置 log_bin_trust_function_creators = 1 ,则需要设置 GLOBAL log_bin_trust_function_creators = 1。

mysql> create database zabbixdb character set utf8mb4 collate utf8mb4_bin;
CREATE USER "zabbixuser"@"%" IDENTIFIED WITH mysql_native_password BY "pass";
GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create View, Delete, Drop, Event, Execute, Index, Insert, Lock Tables, References, Select, Show View, Trigger, Update ON `zabbixdb`.* TO `zabbixuser`@`%`;
SET GLOBAL log_bin_trust_function_creators = 1;
quit;

tar zxf zabbix-6.0.22.tar.gz
cd zabbix-6.0.22

将数据导入数据库。 对于 Zabbix 代理数据库,只应导入 schema.sql(不导入 images.sql 或 data.sql)。
mysql -uzabbixuser -p zabbixdb < database/mysql/schema.sql
mysql -uzabbixuser -p zabbixdb < database/mysql/images.sql
mysql -uzabbixuser -p zabbixdb < database/mysql/data.sql

成功导入schema后,可以禁用 log_bin_trust_function_creators:
mysql -uroot -p"password"
mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;

配置源代码和安装

安装依赖
dnf -y install libxml2 libxml2-devel net-snmp-devel OpenIPMI OpenIPMI-devel libevent-devel pcre-devel

#下载和安装go
#https://go.dev/dl/
wget https://go.dev/dl/go1.21.2.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.2.linux-amd64.tar.gz
#(You may need to run the command as root or through sudo).
#Add /usr/local/go/bin to the PATH environment variable.
sed -i ‘/export PATH/i\PATH=/usr/local/go/bin:“$PATH”’ ~/.bashrc
source ~/.bashrc
go version

当为Zabbix server或proxy配置源码时,必须指定要使用的数据库类型。同一时间,只用一种数据库类型可以与server或proxy编译。

要查看所有支持的配置选项,在提取的Zabbix源代码目录运行:
./configure --help

要为Zabbix server和agent配置源代码,你可以执行类似如下命令:
./configure --prefix=/opt/zabbix --enable-server --enable-agent2 --with-mysql=/opt/mysql8/bin/mysql_config --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2 --with-openipmi

说明:

  • 构建服务器时不建议使用 --enable-static 选项。为了静态构建服务器,你必须每个需要的外部库的静态版本。
  • 将可选路径添加到 MySQL 配置文件 --with-mysql=/<path_to_the_file>/mysql_config, 以便在需要使用不在默认位置的 MySQL 客户端库时选择所需的 MySQL 客户端。当在同一系统上安装了多个版本的 MySQL 或 MariaDB 与 MySQL 一起安装时,这个配置很有用。

make && make install

服务端配置

/opt/zabbix/etc/zabbix_server.conf
如果你是小型安装(最多十台受监控的主机),其他参数的默认值将适合你。 如果你想最大化 Zabbix server(或proxy)的性能,你应该修改默认参数。

查看默认配置:
./sbin/zabbix_server --help|grep alertscripts
AlertScriptsPath “/opt/zabbix/share/zabbix/alertscripts”

创建systemctl启动管理

cat <<\EOF>/usr/lib/systemd/system/zabbix_server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target

[Service]
Environment=“CONFFILE=/opt/zabbix/etc/zabbix_server.conf”
EnvironmentFile=-/opt/zabbix
Type=forking
PIDFile=/tmp/zabbix_server.pid
ExecStart=/opt/zabbix/sbin/zabbix_server -c /opt/zabbix/etc/zabbix_server.conf
ExecStop=/usr/bin/kill $MAINPID
Restart=always
RestartSec=5
User=zabbix
Group=zabbix

[Install]
WantedBy=multi-user.target
EOF
systemctl enable zabbix_server
systemctl start zabbix_server

错误处理

日志提示:[Z3001] connection to database ‘zabbixdb’ failed: [1045] Access denied for user ‘zabbixuser’@‘localhost’ (using password: YES)
处理:由socket改用host连接后解决。原因未知(可能是socket没有放在/tmp下,zabbix读不到?),后来发现是listen.acl_users和listen.acl_groups须为空,否则php-fpm创建的unixsock文件就不会是指定的普通用户。

模版

下载地址:https://download.csdn.net/download/ynz1220/88734297 (资源如果不能打开是可能正在审核中,可过一会儿或次日访问)
导入即可使用,包含80+监控项,60+自动发现监控项,已配置常见图表和触发器,大量采用中文简体,方便非运维识别告警信息。

redis监控项示例:
redis监控项redis监控图表:
redis监控图表

从源码安装zabbix客户端agent

Agent 和 agent 2 对比:https://www.zabbix.com/documentation/6.0/zh/manual/appendix/agent_comparison
总结,前者用C,后者主要是GO
前者支持广,后者仅Linux, Windows,本文档采用agent2

关于agent2

UNIX: Zabbix agent支持的所有指标。
此外,agent 2 为以下对象提供 Zabbix-native 监控解决方案:Docker, Memcached, MySQL, PostgreSQL, Redis, systemd,和其他监控目标 - 请参阅agent 2 特定监控项的完整列表。
Windows: Zabbix agent代理支持的所有指标,以及HTTPS、LDAP 的net.tcp.service* 检查。
此外,agent 2 为 PostgreSQL、Redis 提供了 Zabbix-native 监控解决方案。
支持被动和主动检查。
更多:
https://www.zabbix.com/documentation/6.0/zh/manual/concepts/agent2

安装环境

本文档基于RHEL8、RHEL9系列,但不限于此。

安装依赖

dnf install pcre-devel

go环境安装

如果是在服务端,前面已经安装。
wget https://go.dev/dl/go1.21.2.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.21.2.linux-amd64.tar.gz
sed -i ‘/export PATH/i\PATH=/usr/local/go/bin:“$PATH”’ ~/.bashrc
source ~/.bashrc
go version

#创建用户
groupadd --system zabbix_agent2
useradd --system -g zabbix_agent2 -d /usr/lib/zabbix_agent2 -s /sbin/nologin -c “zabbix_agent2 Monitoring System” zabbix_agent2
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix_agent2
chown zabbix_agent2:zabbix_agent2 /usr/lib/zabbix_agent2

安装agent2

wget https://cdn.zabbix.com/zabbix/sources/stable/6.0/zabbix-6.0.22.tar.gz
tar zxf zabbix-6.0.22.tar.gz
cd zabbix-6.0.22
./configure --prefix=/opt/zabbix --enable-agent2
构建Zabbix agent 2需要一个用当前支持的Go版本配置的Go环境。前面已经安装

make && make install

chown zabbix_agent2:zabbix_agent2 -R /opt/zabbix
chmod u=rwx,g=rwx,o= -R /opt/zabbix

创建systemctl启动管理

cat <<\EOF>/usr/lib/systemd/system/zabbix_agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target

[Service]
Environment=“CONFFILE=/opt/zabbix/etc/zabbix_agent2.conf”
EnvironmentFile=-/opt/zabbix
Type=forking
PIDFile=/tmp/zabbix_agent2.pid
ExecStart=/opt/zabbix/sbin/zabbix_agent2 -c /opt/zabbix/etc/zabbix_agent2.conf
ExecStop=/usr/bin/kill $MAINPID
Restart=always
RestartSec=5
User=zabbix_agent2
Group=zabbix_agent2

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable zabbix_agent2
systemctl start zabbix_agent2

因为zabbix_agent2会部署于成百上千台服务器,基于Linux的RHEL8和RHEL9系列分别做成两个一键安装包,通过Ansible可大批量快速部署,体现运维的自动化。

基中基于RHEL8的脚本如下:

#!/bin/bash
###################################
# function   Install zabbix_agent2
#
# Change History:
# date        author          note
# 2023        N  create

###################################

############# ENV #################
# 脚本名称,临时文件或邮件中可能用到,避免同类脚本的变量的冲突,下面直接取脚本名
export project_name=`echo ${0##*/} | cut -d'.' -f 1`

# 工作目录,可能会产生临时文件
#export work_dir=/root/sh

# 临时文件目录
#export tmp_dir=${work_dir}/tmp

# 日志目录
#export log_dir=${work_dir}/log

# 数据目录
#export var_dir=${work_dir}/var

# mysql程序路径
#export mysql_base_dir="/opt/mysql8"
#export mysql_bin_path="${mysql_base_dir}/bin"

# db实例连接配置
#export mysql_client_conf_online_list="/root/.mysql/conn.conf"

############# 配置结束 ##################

# 时间和环境变量,一般无需修改
export datetime=$(date +%Y%m%d-%H%M%S)
export LANG=C
#export LC_ALL=C
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
export parameter1=$1
export parameter2=$2
export parameter3=$3
export HOME=/root

############# PROC #################
# 记录开始时间
start_time=$(date +%s)
echo ""
echo "######"
echo "`date +"%Y-%m-%d %H:%M:%S"` 运行开始"

### 函数 ###
# 帮助信息
function help_msg() {
echo -e "\033[41m请查看帮助信息:\033[0m

HELP:
parameter eg: do

exec eg: 
bash $0 do

\033[41m请查看帮助信息:\033[0m"
}


#test -d $work_dir || mkdir -p $work_dir
#test -d $tmp_dir || mkdir -p $tmp_dir
#test -d $log_dir || mkdir -p $log_dir
#test -d $var_dir || mkdir -p $var_dir
#cd $work_dir


if [ "$parameter1" == "" ] || [ "$parameter1" == "help" ]; then
    help_msg
    echo "`date +"%Y-%m-%d %H:%M:%S"` error, exit."
    exit
elif [ "$parameter1" == "do" ]; then
    true
fi


# 判断系统和zabbix_agent2环境
sys_release=`cat /etc/redhat-release | awk '{ print $3; }' | awk -F. '{ print $1; }'`
if [ "$sys_release" != "8" ];then
    echo "该系统版本不是Almalinux8或者rhel8,请检查下,本次安装中止。"
    exit 1
fi




if [ -d /usr/local/go ];then
    echo "该系统可能已经自定义安装过go,请检查下,本次不再安装go环境,请确保go环境正常。"
else
    tar -C /usr/local -xzf go1.21.2.linux-amd64.tar.gz
    echo "安装了go环境,请确保go环境正常。"
fi

i=`grep -c "PATH" ~/.bashrc`
j=`grep -c "/usr/local/go/bin" ~/.bashrc`
if [ "$i" == "0" ];then
    echo 'export PATH=/usr/local/go/bin:"$PATH"' >> ~/.bashrc
elif [ "$j" == "0" ];then
    sed -i '/export PATH/i\PATH=/usr/local/go/bin:"$PATH"' ~/.bashrc
fi        
source  ~/.bashrc
go version
echo -e "\033[42;37m若确定go环境正常,5秒后脚本继续运行,否则请按'Ctrl+C'中断安装\033[0m"
sleep 5




if [ -d /opt/zabbix ];then
    echo "该系统可能已经自定义安装过zabbix,请检查下,本次安装中止。"
    exit 1
fi


# 检查当前目录
if [ ! -f $PWD/install.sh ];then
    echo "请切换到install.sh同级目录下之后再执行安装,本次安装中止。"
    exit 1
fi



echo "开始安装"
groupadd --system zabbix_agent2
useradd --system -g zabbix_agent2 -d /usr/lib/zabbix_agent2 -s /sbin/nologin -c "zabbix_agent2 Monitoring System" zabbix_agent2
mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix_agent2
chown zabbix_agent2:zabbix_agent2 /usr/lib/zabbix_agent2

cp -ap zabbix /opt/

chown zabbix_agent2:zabbix_agent2 -R /opt/zabbix
chmod u=rwx,g=rwx,o= -R /opt/zabbix

cat <<\EOF>/usr/lib/systemd/system/zabbix_agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target

[Service]
Environment="CONFFILE=/opt/zabbix/etc/zabbix_agent2.conf"
EnvironmentFile=-/opt/zabbix
Type=forking
PIDFile=/tmp/zabbix_agent2.pid
ExecStart=/opt/zabbix/sbin/zabbix_agent2 -c /opt/zabbix/etc/zabbix_agent2.conf
ExecStop=/usr/bin/kill $MAINPID
Restart=always
RestartSec=5
User=zabbix_agent2
Group=zabbix_agent2

[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reload
systemctl enable zabbix_agent2


if [ -d /usr/local/go ] || [ -d /opt/zabbix ];then
    echo "已成功安装,启动服务:systemctl start zabbix_agent2"
fi



echo ""
stop_time=$(date +%s)
echo "`date +"%Y-%m-%d %H:%M:%S"` 运行结束"
echo "本次脚本运行了$((${stop_time}-${start_time}))秒。"

一键安装包说明:

  • 下载地址:https://download.csdn.net/download/ynz1220/88734297 (资源如果不能打开是可能正在审核中,可过一会儿或次日访问) 根据系统版本选择相对应的"zabbix_agent2-6.0.22-ce-install.tar.gz"包即可。
  • 包含Nginx+Mysql+Redis的监控脚本;
  • 客户端主配置/opt/zabbix/etc/zabbix_agent2.conf修改必要的配置如主机名和服务端地址后才能使用;
  • Mysql监控脚本需要修改/opt/zabbix/etc/mysql.conf后才能使用;
  • Nginx不必修改,但NginxStatus状态服务须和监控脚本中配置的地址和端口一致,默认是127.0.0.1:89,如下;
    server {
    listen 127.0.0.1:89;
    location = /NginxStatus {
    stub_status on;
    access_log off;
    }
    }
  • Redis监控脚本配合模板使用,极为完善,且支持自动发现多实例,自动获取pass,即使是官方提供的监控脚本也远不及于此。

服务端Web界面安装

Zabbix 前端是由PHP语言编写,所以其网页服务的运行需要支持PHP语言的网站服务器。
php环境前面已经部署
nginx环境可参考:https://blog.csdn.net/ynz1220/article/details/135485305

语言和乱码问题

其他前端语言
https://www.zabbix.com/documentation/6.0/zh/manual/appendix/install/locales
为了在Zabbix Web界面中使用英语以外的任何其他语言,其区域设置应安装在Web服务器上。此外,翻译工作还需要 PHP gettext 扩展。

访问前端
http://<server_ip_or_name>
按提示安装完成后,配置位于:conf/zabbix.conf.php

Zabbix 前端已准备就绪! 默认用户名是Admin,密码zabbix。

登陆后提示:
Locale for language “en_US” is not found on the web server.
查看:locale -a
解决:
dnf install glibc-langpack-en glibc-langpack-zh
修改
vi /etc/locale.conf
LANG=en_US.UTF-8 # 如需显示中文,安装glibc-langpack-zh包即可,不必设置LANG变量为中文
然后在web界面设置中可选择中文

重启zabbix所有服务

如果php跑在基于debian系的docker中,那么需要修改docker的:
apt-get update
apt-get install locales
dpkg-reconfigure locales
取消/etc/locale.gen中关于en_US.UTF-8的注释
运行:
locale-gen

2023年基于docker的php7.4.33部署,装了locales,并设置语言环境为en_US.UTF-8,仍然无法解决zabbix语言问题,改用直接在系统上安装,

字体

web界面乱码,但图形有中文乱码,

解决zabbix图中出现中文乱码问题:
从windows下控制面板->字体->选择一种中文字库例如“宋体”
把它拷贝到zabbix的web端的fonts目录下例如:/opt/web/zabbix/assets/fonts,并且把TTF后缀改为ttf

上传后名称会变成小写,可改为大写,总之要和下面的配置一致:
修改zabbix的web端include/defines.inc.php
//define(‘ZBX_FONT_NAME’, ‘DejaVuSans’); // DejaVuSans是默认是开源字体
define(‘ZBX_FONT_NAME’, ‘simhei’);

//define(‘ZBX_GRAPH_FONT_NAME’, ‘DejaVuSans’); // font file name
define(‘ZBX_GRAPH_FONT_NAME’, ‘simhei’); // font file name

实践采用了simhei。

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

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

相关文章

便携式灯具的UL测试标准UL153介绍

UL153标准&#xff1a;UL153标准主要是描述有关使用电源线及插头作为连接工具,使用120伏电压,15或20安培的电源,并符合美国国家电器规范的便携灯.此标准也适用于那些不用插头,而用一些兼容的接线端作为连接工具的便携灯&#xff0c;同时对于使用非120伏电压&#xff0c;15or20安…

Google I/O大会:Android 13

3个体验升级的方向 以智能手机为场景核心、 扩大智能终端的应用边界以及实现多设备间更好地协同。具体到系统体验层&#xff0c;安卓13将支持图标颜色随主题更换、为不同应用设定使用的语言、新的媒体中心界面等等&#xff0c;同时谷歌也推出了自家的钱包应用&#xff08;Goog…

C++程序员必备的面试技巧

“程序员必备的面试技巧&#xff0c;就像是编写一段完美的代码一样重要。在面试战场上&#xff0c;我们需要像忍者一样灵活&#xff0c;像侦探一样聪明&#xff0c;还要像无敌铁金刚一样坚定。只有掌握了这些技巧&#xff0c;我们才能在面试的舞台上闪耀光芒&#xff0c;成为那…

雪花代码-html版

雪花代码 动画效果 代码 <!DOCTYPE html><html><head><style>body {background-color: #000000;}.snowflake {position: absolute;font-size: 10px;color: #FFFFFF;text-shadow: 1px 1px 1px #000000;user-select: none;}</style></head>…

java基于ssm框架的少儿编程在线培训系统论文

目 录 目 录 I 1 课题背景及研究内容 4 1.1 课题背景 4 1.2 开发目的和意义 4 2 相关技术和应用 4 2.1 VUE技术 4 2.2 Mysql数据库简介 5 2.3 SSM框架简介 6 2.4 Eclipse简介 6 2.5 B/S系统架构 6 3 系统分析 8 3.1可行性分析 8 3.1.1技术可行性 8 3.1.2经济可行性 8 3.1.3操作…

【会议征稿通知】第二届数字化经济与管理科学国际学术会议(CDEMS 2024)

第二届数字化经济与管理科学国际学术会议&#xff08;CDEMS 2024&#xff09; 2024 2nd International Conference on Digital Economy and Management Science&#xff08;CDEMS 2024&#xff09; 2024年第二届数字经济与管理科学国际会议(CDEMS 2024) 定于2023年4月26-28日…

怎么做微信秒杀链接_开启用户的购物新体验

微信秒杀&#xff1a;开启你的购物新体验 在繁忙的生活节奏中&#xff0c;你是否厌倦了长时间排队等待购物&#xff0c;或者在电商平台上漫长而复杂的购物流程&#xff1f;今天&#xff0c;我要向你介绍一种全新的购物方式——微信秒杀。这不仅是一种全新的购物体验&#xff0…

基于SpringBoot的婚恋交友网站 JAVA简易版

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新闻管理模块2.4 相亲大会管理模块2.5 留言管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 会员信息表3.2.2 新闻表3.2.3 相亲大会表3.2.4 留言表 四、系统展示五、核心代码5.…

git: Updates were rejected because the tip of your current branch is behind

一、报错含义 由于本地分支的tip落后远程分支&#xff0c;push操作被拒绝。 二、产生原因 我再本地拉去了新的分支并未同步到远程仓库&#xff0c;在新分支进行开发&#xff0c;由于前几天同步也创建了该分支并同步到了远程仓库&#xff0c;导致我本次push失败 三、解决方…

使用proteus进行主从JK触发器仿真失败原因的分析

在进行JK触发器的原理分析的时候&#xff0c;我首先在proteus根据主从JK触发器的原理进行了实验根据原理图&#xff0c;如下图&#xff1a; 我进行仿真&#xff0c;在仿真的过程中&#xff0c;我向电路图中添加了外部的置0/1端口&#xff0c;由此在proteus中得到下面的电路图 …

数据库课设--家电销售订单管理系统

1.1课程设计选题 《家电销售订单管理系统》 1.2课程设计的目的 学生在充分理解《数据库应用》课程知识点的基础上&#xff0c;初步掌握将数据库应用于具体的管理信息系统中。把数据库原理、数据库应用有机的结合在一起&#xff0c;以数据库原理的理论为指导设计数据库&#xff…

Vue3 父事件覆盖子事件,Vue2 的 v-on=“$listeners“ 的替代方案

在 Vue3 中&#xff0c;$listeners 被删除 子组件代码&#xff0c;需要特别注意的是事件名为 on 开头&#xff0c;例如 onBack。不确定的可以通过给父组件传递 事件或属性&#xff0c;再打印子组件的 attrs useAttrs()&#xff0c;来确定传值 // template v-bind"newA…

shp文件与数据库(创建shp文件)

前言 前面把shp文件中的内容读取到数据库&#xff0c;接下来就把数据库中的表变成shp文件。 正文 简单的创建一个shp文件 暂时不读取数据库的表&#xff0c;先随机创建一个shp文件。既然是随机的&#xff0c;这就需要使用到faker这个第三方库&#xff0c;代码如下。 impor…

【python,机器学习,nlp】RNN循环神经网络

RNN(Recurrent Neural Network)&#xff0c;中文称作循环神经网络&#xff0c;它一般以序列数据为输入&#xff0c;通过网络内部的结构设计有效捕捉序列之间的关系特征&#xff0c;一般也是以序列形式进行输出。 因为RNN结构能够很好利用序列之间的关系&#xff0c;因此针对自…

Web实战丨基于Django与HTML的新闻发布系统

文章目录 写在前面项目简介项目框架实验内容安装依赖库1.创建项目2.系统配置3.配置视图文件4.配置模型文件5.配置管理员文件6.配置模板文件7.创建数据库8.启动项目 运行结果写在后面 写在前面 本期内容&#xff1a;基于Django与HTML的简单新闻发布系统。 项目需求&#xff1a…

linux高级篇基础理论十一(GlusterFS)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xff1a;云计算技…

以用户为导向,可定制化高精度直线模组降本增效正当时

近年来&#xff0c;随着工业自动化转型升级不断提速&#xff0c;市场对优质直线模组的需求量直线上升&#xff0c;而直线模组拥有单体运动速度快、重复定位精度高、本体质量轻、占设备空间小、寿命长等优势&#xff0c;在机械设备领域备受青睐。作为深耕工业自动化产品市场多年…

【Linux驱动】Linux的中断系统 | 中断的重要数据结构

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《Linux驱动》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 目录 &#x1f3c0;Linux系统的中断⚽中断分类软中断和硬中断中断的上半部和下半部 ⚽tasklet⚽工…

【提示学习论文六】MaPLe: Multi-modal Prompt Learning论文原理

文章目录 MaPLe: Multi-modal Prompt Learning 多模式提示学习文章介绍动机MaPLe:Multi-modal Prompt Learning 模型结构1、Deep Language Prompting 深度语言提示2、Deep Vision Prompting 深度视觉提示3、Vision Language Prompt Coupling 视觉语言提示耦合提示耦合过程 实验…

xtu oj 1520 方程组

题目描述 求 &#xff0c;其中x≤y 的整数解。 输入格式 第一行是一个整数T (1≤T≤1000)&#xff0c;表示样例的个数。 第二行是两个整数n, n∈[−109,109]和m, m∈[0,109]。 输出格式 依次输出一个样例的结果。 输出一行&#xff0c;为两个整数,之间用一个空格隔开;如果…