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

02.Zabbix

Zabbix

以下企业都在用:

当前支持版本

生命周期

Zabbix概述

Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 积极开发和维护。Zabbix

是一款企业级开源分布式监控解决方案。

Zabbix 是一款用于监控网络众多参数、服务器/虚拟机/应用程序/服务/数据库/网站/云平台等健康状态和完整性的软件。 Zabbix 提供灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警,从而实现对服务器问题的快速响应。基于存储数据, Zabbix

提供出色的报表和数据可视化功能,使其成为容量规划的理想选择。

Zabbix 同时支持轮询和捕获两种方式。所有 Zabbix 报表、统计信息及配置参数均可通过基于 Web 的前端界面访问。该 Web 前端确保您可以从任何位置评估网络状态和服务器健康状况。经过适当配置, Zabbix 可在 IT

基础设施监控中发挥重要作用,无论是对拥有少量服务器的小型组织,还是对拥有众多服务器的大型企业都同样适用。

Zabbix 完全免费。 Zabbix 基于 GNU 通用公共许可证 version 第 2 版编写和分发,这意味着其源代码可自由分发并面向公众开放。

zabbix架构

Zabbix由多个主要软件组件构成。各组件职责概述如下。
服务器
Zabbixserver是核心组件,agents向其报告可用性、完整性信息及统计指标。服务器作为中央存储库,保存所有配置数据、统计数据和
运行数据。
数据库存储
所有配置信息以及Zabbix收集的数据均存储在数据库中。

Web 界面
为了从任何地方和任何平台轻松访问Zabbix,系统提供了基于Web的界面。该界面是Zabbix server的一部分,通常(但不一定)运行
在与服务器相同的物理机器上。

Proxy
Zabbix proxy可以代表Zabbix server 收集性能和可用性数据。proxy是Zabbix 部署中的可选组件,但它能有效分担单个Zabbix server
的负载。

Agent
Zabbix agents被部署在监控目标上,用于主动监控本地资源和应用程序,并将收集到的数据报告给Zabbix服务器。自Zabbix4.4起,
有两种类型的agents可用:Zabbix agent(轻量级,支持多种平台,使用C语言编写)和Zabbix agent2(高度灵活,易于通过插件扩
展,使用Go 语言编写)。

数据流
此外,退一步审视Zabbix内部整体数据流非常重要。为了create一个收集数据的监控项,你必须先create一个主机。转到Zabbix体系
的另一端,你必须先有一个监控项才能create触发器。你必须有一个触发器才能create动作。因此,如果你想收到服务器XCPU负载过
高的警报,你必须先为服务器Xcreate一个主机条目,接着创建一个监控其CPU的监控项,然后设置一个在CPU过高时激活的触发器,
最后配置一个发送邮件给你的动作。虽然这看起来步骤很多,但通过使用模板功能其实并不复杂。然而,正是这种设计使得create非常灵
活的配置成为可能。

搭建LNMP架构

Zabbix基于LNMP架构部署

zabbix-server通过Centos-7-template模板克隆产生

mysql001通过mysql01克隆产生

主机名IP功能
zabbix-server192.168.108.50安装zabbix
mysql001192.168.108.51被监控

安装nginx

#创建nginx的yum源[root@zabbix-server ~]# vim /etc/yum.repos.d/nginx.repo[nginx]name=nginx repobaseurl=http://nginx.org/packages/centos/7/$basearch/enabled=1gpgcheck=0#安装nginx[root@zabbix-server ~]# yum install nginx -y#开启服务[root@zabbix-server ~]# systemctl start nginx[root@zabbix-server ~]# systemctl enable nginx#防火墙添加通过http[root@zabbix-server ~]# firewall-cmd --add-service=http --zone=publicsuccess[root@zabbix-server ~]# firewall-cmd --add-service=http --zone=public --permanentsuccess[root@zabbix-server ~]# firewall-cmd --reloadsuccess[root@zabbix-server ~]#

先测试nginx环境

安装mariadb

配置yum源

#配置Mariadb10.x yum源(zabbix6.0必须使用该版本,低版本不支持)[root@zabbix-server ~]# vim /etc/yum.repos.d/mariadb.repo[mariadb]name=MariaDB baseurl=https://mirrors.aliyun.com/mariadb/yum/10.6/centos7-amd64/ enabled=1gpgcheck=0

下载mariadb

[root@zabbix-server ~]# yum -y install mariadb-server mariadb#开启服务[root@zabbix-server ~]# systemctl enable mariadb --now#设置root密码[root@zabbix-server ~]# mysqlWelcome to the MariaDB monitor. Commands end with;or\g. Your MariaDB connectionidis3Server version:10.6.19-MariaDB MariaDB Server Copyright(c)2000,2018, Oracle, MariaDB Corporation Ab and others. Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement. MariaDB[(none)]>DELETE FROM mysql.user WHEREUser='';Query OK,2rows affected(0.010sec)MariaDB[(none)]>ALTERUSERroot@localhost IDENTIFIED BY'root123';Query OK,0rows affected(0.005sec)MariaDB[(none)]>
连接数据库测试
[root@zabbix-server ~]# mysql -uroot -proot123Welcome to the MariaDB monitor. Commands end with;or\g. Your MariaDB connectionidis5Server version:10.6.19-MariaDB MariaDB Server Copyright(c)2000,2018, Oracle, MariaDB Corporation Ab and others. Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement. MariaDB[(none)]>

安装php

[root@zabbix-server ~]# yum -y install epel-release[root@zabbix-server ~]# sed -i "s/#baseurl/baseurl/g" /etc/yum.repos.d/epel.repo[root@zabbix-server ~]# sed -i "s/metalink/#metalink/g" /etc/yum.repos.d/epel.repo[root@zabbix-server ~]# sed -i "s@https\?://download.[a-z]*\.\?[a-z]*/pub@https://repo.huaweicloud.com@g" /etc/yum.repos.d/epel.repo[root@zabbix-server ~]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm[root@zabbix-server ~]# yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-pdo php72w-xml php72w-fpm php72w-mysqlnd php72w-opcache php72w-ldap php72w-bcmath
配置nginx支持php
#修改php-fpm配置文件,把apache改为nginx[root@zabbix-server ~]# vim /etc/php-fpm.d/www.conf8user=nginx10group=nginx#配置location,在index中添加index.php。以支持index.php的首页[root@zabbix-server ~]# vim /etc/nginx/conf.d/default.conf9index index.php index.html index.htm;#配置php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改#把fastcgi_param中的/scripts改为$document_root。root是配置php程序放置的根目录。29location ~\.php${30root /usr/share/nginx/html;#改成/usr/share/nginx/html31fastcgi_pass127.0.0.1:9000;32fastcgi_index index.php;33fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;#修改这34include fastcgi_params;35}
配置php
#修改PHP配置文件[root@zabbix-server ~]# vim /etc/php.ini202short_open_tag=On#支持php短标签359expose_php=Off#隐藏php版本#以下为zabbix优化配置要求368max_execution_time=300#执行时间378max_input_time=300#接收数据等待时间389memory_limit=128M#每个脚本占用内存656post_max_size=16M#POST数据大小799upload_max_filesize=2M#上传文件大小800always_populate_raw_post_data=-1#原来空的,需要添加877date.timezone=Asia/Shanghai#时区#启动php-fpm服务[root@zabbix-server ~]# systemctl enable php-fpm --now#重启nginx[root@zabbix-server ~]# systemctl restart nginx
测试
测试php首页
[root@zabbix-server ~]# vim /usr/share/nginx/html/info.php<?php phpinfo();?>

测试连接数据库
[root@zabbix-server ~]# vim /usr/share/nginx/html/info.php<?php$link=mysqli_connect('127.0.0.1','root','root123');if($link)echo"success";elseecho"fail";?># $link=mysqli_connect('127.0.0.1','root','root123'); 设置变量$link,连接数据库# if ($link) echo "success"; 如果连接上输出success# else echo "fail"; 连接不上输出fail

注:mysql_connect扩展自 PHP 5.5.0 起已废弃,改用mysqli或pdo_mysql

# 创建zabbix用的数据库及账号[root@zabbix-server ~]# mysql -uroot -proot123Welcome to the MariaDB monitor. Commands end with;or\g. Your MariaDB connectionidis19Server version:10.5.10-MariaDB MariaDB Server Copyright(c)2000,2018, Oracle, MariaDB Corporation Ab and others. Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement. MariaDB[(none)]>CREATE DATABASE zabbix charactersetutf8 collate utf8_bin;Query OK,1row affected(0.001sec)MariaDB[(none)]>GRANT all privileges ON *.* TO'zabbix'@'%'IDENTIFIED BY'zabbix123';Query OK,0rows affected(0.002sec)MariaDB[(none)]>GRANT all privileges ON *.* TO'zabbix'@'localhost'IDENTIFIED BY'zabbix123';Query OK,0rows affected(0.002sec)MariaDB[(none)]>flush privileges;Query OK,0rows affected(0.002sec)MariaDB[(none)]>quit Bye[root@zabbix-server ~]#

collate的作用

对于mysql中那些字符类型的列,如VARCHAR,CHAR,TEXT类型的列,都需要有一个COLLATE类型来告知mysql如何对该列进行排序和比较。COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCTGROUP BYHAVING语句的查询结果。另外,mysql建索引的时候,如果索引列是字符类型,也会影响索引创建,只不过这种影响我们感知不到。凡是涉及到字符类型比较或排序的地方,都会和COLLATE有关。

测试连接zaabix数据库

[root@zabbix-server ~]# vim /usr/share/nginx/html/info.php<?php$link=mysqli_connect('127.0.0.1','zabbix','zabbix123');if($link)echo"Zabbix数据库连接成功";elseecho"Zabbix数据库连接失败";?>

测试

zabbix-server

导入数据库

#解压[root@zabbix-server ~]# tar zxvf zabbix-6.0.6.tar.gz#导入数据库[root@zabbix-server ~]# cd /root/zabbix-6.0.6/database/mysql/ #将该目录的数据库导入zabbix数据库[root@zabbix-server mysql]# lsdata.sql double.sql history_pk_prepare.sql images.sql Makefile.am Makefile.in schema.sql[root@zabbix-server mysql]# mysql -uroot -proot123 zabbix < schema.sql[root@zabbix-server mysql]# mysql -uroot -proot123 zabbix < images.sql[root@zabbix-server mysql]# mysql -uroot -proot123 zabbix < data.sql[root@zabbix-server mysql]# mysql -uroot -proot123 zabbix < double.sql[root@zabbix-server mysql]# mysql -uroot -proot123 zabbix < history_pk_prepare.sql#进入zabbix数据库查看[root@zabbix-server mysql]# mysql -uroot -proot123Welcome to the MariaDB monitor. Commands end with;or\g. Your MariaDB connectionidis32Server version:10.5.10-MariaDB MariaDB Server Copyright(c)2000,2018, Oracle, MariaDB Corporation Ab and others. Type'help;'or'\h'forhelp. Type'\c'toclearthe current input statement. MariaDB[(none)]>use zabbix;Reading table informationforcompletion of table andcolumnnames You can turn off this feature to get a quicker startup with-ADatabase changed MariaDB[zabbix]>show tables;+----------------------------+|Tables_in_zabbix|+----------------------------+|acknowledges|......|widget_field|+----------------------------+178rowsinset(0.002sec)#是178条MariaDB[zabbix]>

安装软件包

#安装zabbix环境包[root@zabbix-server ~]# yum install -y mysql-devel pcre-devel openssl-devel zlib-devel libxml2-devel net-snmp-devel net-snmp libssh2-devel OpenIPMI-devel libevent-devel openldap-devel libcurl-devel fping gcc gcc-c++ make# 创建zabbix用户[root@zabbix-server ~]# useradd -s /sbin/nologin -M zabbix#使得编译器在编译 C 代码时使用 GNU C99 标准[root@zabbix-server ~]# export CFLAGS="-std=gnu99"#执行configure脚本[root@zabbix-server ~]# cd zabbix-6.0.6/[root@zabbix-server zabbix-6.0.6]# ./configure --sysconfdir=/etc/zabbix/ --enable-server --with-mysql --with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib --with-libpthread --with-libevent --with-openssl --with-ldap --with-libcurl --with-libpcre#安装[root@zabbix-server zabbix-6.0.6]# make install#检查版本[root@zabbix-server ~]# zabbix_server --version

修改zabbix-server配置文件

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf38LogFile=/var/log/zabbix_server.log123DBPassword=zabbix123#创建日志文件并修改属组和属主[root@zabbix-server ~]# touch /var/log/zabbix_server.log[root@zabbix-server ~]# chown zabbix.zabbix /var/log/zabbix_server.log#创建并添加systemctl服务管理zabbix-server[root@zabbix-server ~]# vim /usr/lib/systemd/system/zabbix-server.service#添加下面这段话,直接复制[Unit]Description=Zabbix Server with MySQL DBAfter=syslog.target network.target mysqld.service[Service]Type=simpleExecStart=/usr/local/sbin/zabbix_server-fUser=zabbix[Install]WantedBy=multi-user.target#启动zabbix[root@zabbix-server ~]# systemctl start zabbix-server[root@zabbix-server ~]# netstat -ntap | grep 10051tcp000.0.0.0:100510.0.0.0:* LISTEN2610/zabbix_server

前端页面复制到站点

[root@zabbix-server ~]# cp -r /root/zabbix-6.0.6/ui/* /usr/share/nginx/html/ #提供网站前端[root@zabbix-server ~]# chown -R nginx:nginx /usr/share/nginx/html/

http://192.168.108.50

默认登陆用户名:Admin

默认登陆密码:zabbix

被监控端

安装agent

通过前面mysql章节的mysql01克隆mysql001

[root@mysql001 ~]# systemctl stop firewalld.service[root@mysql001 ~]# setenforce 0[root@mysql001 ~]# hostnamectl set-hostname mysql001#更新CA[root@mysql001 ~]# yum update ca-certificates -y#安装软件包[root@mysql001 ~]# rpm -ivh https://repo.zabbix.com/zabbix/6.0/rhel/7/x86_64/zabbix-release-6.0-4.el7.noarch.rpm[root@mysql001 ~]# yum install zabbix-agent2 -y#启动服务[root@mysql001 ~]# systemctl enable zabbix-agent2.service --now#修改配置文件[root@mysql001 ~]# vim /etc/zabbix/zabbix_agent2.conf13PidFile=/var/run/zabbix/zabbix_agent2.pid32LogFile=/var/log/zabbix/zabbix_agent2.log43LogFileSize=082Server=192.168.108.50#指向监控服务器135ServerActive=192.168.108.50#指向监控服务器146Hostname=mysql001#名称283Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf#重启服务(先不重启看看配置生效不)[root@mysql001 ~]# systemctl restart zabbix-agent2

zabbix管理

http://192.168.108.50

zabbix首页登录后

监控主机

配置->模板

定义模板新名称

添加数据库信息

$MYSQL.DSN 写被监控端数据库IP

配置->主机->创建主机

群组>选择

模板>选择

被监控主机配置

Inteerfaces: 添加>客户端

端口是10050,是zabbix客户端插件监听端口

添加后直接生成

可用性:绿色正常,一开始灰色等一会

邮件服务

记录下来

lmsbtquhuzhqcage

在zabbix-server服务器上安装邮箱服务

[root@zabbix-server ~]# yum install mailx -y

配置邮箱服务

[root@zabbix-server ~]# vim /etc/mail.rc----文件末尾新增---setfrom=6946630@qq.com#用自己的邮箱setsmtp=smtps://smtp.qq.com:465setsmtp-auth-user=6946630@qq.comsetsmtp-auth-password=lmsbtquhuzhqcage#用自己的邮箱授权码setsmtp-auth=login#set smtp-use-starttls 这里是不需要配置的,很多地方没说明,配置了反而会验证失败,所以我注释掉;setssl-verify=ignoresetnss-config-dir=/root/.certs#制定的存放QQ邮箱SSL证书的位置。setnss-config-dir=/etc/pki/nssdb/[root@zabbix-server ~]# chmod -R 755 /etc/pki/nssdb/

因为需要QQ邮箱的SSL证书,所以我们还需要手动的获取QQ邮箱的证书保存到本地指定的目录里以备调用和验证,具体命令如下:

[root@zabbix-server ~]# mkdir -p /root/.certs/[root@zabbix-server ~]# echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt[root@zabbix-server ~]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt[root@zabbix-server ~]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt[root@zabbix-server ~]# certutil -L -d /root/.certs

为了防止出现前文所说的发送邮件警告提示,还需要进入邮箱SSL证书存放目录/root/.certs里执行如下命令:

[root@zabbix-server ~]# cd /root/.certs/[root@zabbix-server .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

返回如下提示即可:

Notice: Trust flag u issetautomaticallyifthe private key is present.

这是为了信任证书的标记操作。

至此,已经完成了mailx结合QQ邮箱发送系统邮件的部署了,通过命令行发送测试邮件试试吧:

# 执行命令后,进入交互式编辑,输入正文后按 Ctrl+D 结束并发送[root@zabbix-server ~]# mailx -s "邮箱测试" 6946630@qq.com你真帅啊 哈哈哈 EOT#ctrl_d[root@zabbix-server ~]#

前往QQ邮箱查收测试邮件

创建脚本目录,并重启zabbix服务

[root@zabbix-server ~]# vim /etc/zabbix/zabbix_server.conf548AlertScriptsPath=/usr/lib/zabbix/alertscripts[root@zabbix-server ~]# mkdir -p /usr/lib/zabbix/alertscripts[root@zabbix-server ~]# chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts[root@zabbix-server ~]# systemctl restart zabbix-server.service

编写邮件发送脚本

[root@zabbix-server ~]# vim /usr/lib/zabbix/alertscripts/mailx.sh#!/bin/bash#send mailmessages=`echo$3|tr'\r\n''\n'`subject=`echo$2|tr'\r\n''\n'`echo"${messages}"|mail-s"${subject}"$1>>/tmp/mailx.log2>&1

权限设置

[root@zabbix-server ~]# touch /tmp/mailx.log[root@zabbix-server ~]# chown -R zabbix.zabbix /tmp/mailx.log[root@zabbix-server ~]# chmod +x /usr/lib/zabbix/alertscripts/mailx.sh

测试脚本发送邮件

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts/[root@zabbix-server alertscripts]# ./mailx.sh 6946630@qq.com "hello mailx.sh" "This is test"

已收到邮件

告警服务

管理->报警媒介类型>创建媒体类型

创建媒体类型

脚本参数

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

添加成功

管理->用户

点击Admin进入

点击Admin进入

选择报警媒介

添加

类型选择刚刚创建的mail-test

设置完成后点击添加

收件人:填写自己邮箱地址

一定要进行更新

配置->动作->Trigger actions

先删除默认动作,然后创建动作

定义操作

主题 :{TRIGGER.STATUS}:{TRIGGER.NAME}消息: 告警主机:{HOST.NAME}告警 IP:{HOST.IP}告警时间:{EVENT.DATE}-{EVENT.TIME}告警等级:{TRIGGER.SEVERITY}告警信息:{TRIGGER.NAME}:{ITEM.VALUE}事件 ID:{EVENT.ID}

主题 : {TRIGGER.STATUS}:{TRIGGER.NAME} 消息: 恢复主机:{HOST.NAME} 恢复 IP:{HOST.IP} 恢复时间:{EVENT.DATE}-{EVENT.TIME} 恢复等级:{TRIGGER.SEVERITY} 恢复信息:{TRIGGER.NAME}:{ITEM.VALUE} 恢复 ID:{EVENT.ID}

恢复操作

最后点击添加

动作添加完成

监视主页面仪表盘

在被监控端关闭数据库服务

[root@mysql001 ~]# systemctl stop mysqld

等待一段时间后

检查接收告警邮件

IGGER.STATUS}:{TRIGGER.NAME}
消息:
告警主机:{HOST.NAME}
告警 IP:{HOST.IP}
告警时间:{EVENT.DATE}-{EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}:{ITEM.VALUE}
事件 ID:{EVENT.ID}

[外链图片转存中...(img-TDeBNjOi-1779348480988)]

主题 : {TRIGGER.STATUS}:{TRIGGER.NAME}
消息:
恢复主机:{HOST.NAME}
恢复 IP:{HOST.IP}
恢复时间:{EVENT.DATE}-{EVENT.TIME}
恢复等级:{TRIGGER.SEVERITY}
恢复信息:{TRIGGER.NAME}:{ITEM.VALUE}
恢复 ID:{EVENT.ID}

恢复操作 [外链图片转存中...(img-aVCnk6Vn-1779348480988)] 最后点击添加 [外链图片转存中...(img-dr0bXT49-1779348480988)] 动作添加完成 [外链图片转存中...(img-m2Fr0Zwj-1779348480988)] 监视主页面仪表盘 [外链图片转存中...(img-a3CMZG0F-1779348480988)] 在被监控端关闭数据库服务 ```shell [root@mysql001 ~]# systemctl stop mysqld

等待一段时间后

[外链图片转存中…(img-RNkLyt6r-1779348480988)]

检查接收告警邮件

http://www.jsqmd.com/news/861810/

相关文章:

  • 如何加固 VSCode 插件市场下载来源安全性设置
  • 10-实战:RuoYi-Cloud的自动化发布
  • 模型加速全景图:从“瘦身”到“飞驰”的知识图谱
  • 2026年比较好的昆明防锈栏杆品牌厂家推荐 - 品牌宣传支持者
  • 企业部署AI Agent的五大核心挑战
  • 关于在全志v3s驱动gc0308摄像头模块的过程
  • 蒙特卡罗算法驱动的医用重离子加速器束流配送系统与治疗计划方法【附仿真】
  • 全网首份ElevenLabs维吾尔语语音数据集泄露分析:172小时采样音频特征、性别/年龄/地域分布、及3种脱敏失败风险(限时公开72小时)
  • 2026年院线抗氧化产品TOP5排行:泡泡漾套盒/泡泡漾抗衰仪器/泡泡漾抗衰套盒/泡泡漾效果/泡泡漾项目/留客神器产品/选择指南 - 优质品牌商家
  • ChromeKeePass实战:如何让浏览器与KeePass实现无缝密码填充
  • 使用 Taotoken 后 API 调用延迟与成功率可观测性体验分享
  • 2026年浙江老房装修公司TOP5推荐:浙江旧改招商加盟/浙江老房局部改造招商加盟/浙江老房翻新招商加盟/浙江老房装修/选择指南 - 优质品牌商家
  • 2026年Q2酒水招商加盟品牌排行:轻资产创业项目、酒水代理加盟、鲜啤招商加盟、个人投资项目、啤酒区域代理、夏季暴利小生意选择指南 - 优质品牌商家
  • AI成本优化三剑客:Token缓存预算全解析
  • 针刺仪微损测定估计活立木年龄融合的算法【附算法】
  • Unity SLG框架解析:Clash Engine六维系统架构与工程实践
  • 如何永久免费使用IDM?终极完整激活指南
  • 信创适配国产化选型方案
  • 2026年Q2大连红酒回收:冬虫夏草回收/剑南春回收/国酒茅台回收/大连名酒回收/大连茅台酒回收/水井坊回收/洋酒回收/选择指南 - 优质品牌商家
  • 2026年合肥第三方检测机构靠谱排行:合肥化学品检测/合肥化学品第三方检测/合肥医疗器械检测/合肥医疗器械第三方检测/选择指南 - 优质品牌商家
  • java springboot-vue社区资源共享系统 社区活动报名系统
  • UE5.2 DynamicMesh崩溃与渲染异常六大根因解析
  • 产业园区如何推动科技成果转化落地?
  • Spring AI + Flowable 工作流深度整合
  • 整合素ITGAL
  • 2026 年塑胶地板服务商:医疗教育专业推荐
  • 小白螺AI制片厂实测:3个技巧搞定一键生成高质量漫剧
  • 含铜高熵合金(CuZrAlNiTi)成分、科研制备与应用
  • 深度解析:光引擎、光模块、光器件之间的关系和区别?
  • Flutter 3.44 发布啦,超级大版本更新!!!