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

01-Zabbix监控快速入门

01-Zabbix监控快速入门

  • 1、监控知识基本概述
    • 1.1 什么是监控
    • 1.2 为何需要监控
    • 1.3 如何进行监控
  • 2、单机时代如何监控
    • 2.1 监控CPU
    • 2.2 监控内存
    • 2.3 监控磁盘
    • 2.4 监控⽹络
    • 2.5 监控TCP
    • 2.6 监控脚本示例
  • 3、常⻅的监控⽅案
    • 3.1 Cacti
    • 3.2 Nagios
    • 3.3 Zabbix
    • 3.4 Prometheus
    • 3.5 商业监控⽅案
  • 4、Zabbix系统概述
    • 4.1 zabbix应⽤场景
    • 4.2 zabbix发布频率
    • 4.3 zabbix版本特性
    • 4.4 zabbix功能组件
    • 4.5 Zabbix逻辑架构
  • 5、Zabbix7.x监控安装
    • 5.0 Zabbix安装需求
    • 5.1 配置YUM仓库
    • 5.2 安装zabbix Server
    • 5.3 安装并初始化数据库
    • 5.4 配置Zabbix-Server
    • 5.5 启动Zabbix server和agent
    • 5.6 访问ZabbixWeb前端
  • 6、Zabbix监控中⽂汉化
    • 6.1 修改前端页面语言
    • 6.2 替换字体并解决乱码
    • 6.3 重载⻚⾯并验证字体
  • 7、Zabbix添加Linux主机监控
    • 7.1 环境准备
    • 7.2 安装zabbix-agent2
    • 7.3 配置zabbix-agent2
    • 7.4 启动zabbix-agent2
    • 7.5 配置Zabbix-web
  • 8、Zabbix添加Windows主机监控
    • 8.1 安装Zabbix-Agent2
    • 8.2 启动Zabbix-Agent2
    • 8.3 服务端测试取值
    • 8.4 配置zabbix-Web
  • 9、Zabbix数据库拆分
    • 9.1 zabbix基础架构
    • 9.2 拆分数据库环境准备
    • 9.3 准备独立数据库
    • 9.4 备份旧的数据库
    • 9.5 恢复数据库
    • 9.6 修改zabbix-Server
    • 9.7 修改zabbix-web

1、监控知识基本概述

1.1 什么是监控

简单说,就是对系统不间断的进⾏监视,例如:

超市监控:

公路监控:

系统监控:

1.2 为何需要监控

监控是整个运维,乃⾄整个产品⽣命周期中,最为重要的⼀环。

1、监控能做到事前及时预警发现故障,事后提供详实的数据⽤于追查定位问题。

2、以图形化⽅式呈现当前系统状态,便于分析或评估系统性能状态;

3、当出现某些特定故障时,可⾃动化完成故障处理,也叫故障⾃愈;

1.3 如何进行监控

⽐如我们需要监控磁盘的使⽤率

  • 如何查看磁盘使⽤率 df -h

  • 监控磁盘的那些指标 block、inode、rate

  • 如何获取具体的信息 df -h|awk ‘//$/{print $(NF-1)}’

  • 获取的数值到达多少报警 80%

2、单机时代如何监控

2.1 监控CPU

通常监控CPU的使⽤率、以及CPU的饱和度;

  • 监控CPU使⽤率: w、top、htop、glances

  • 监控CPU饱和度:判断当前的系统负载,是否⼤于CPU核⼼数的2倍;

1、监控 CPU 使⽤率

%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
#us ⽤户态: 跟⽤户的操作有关 35%
#sy 系统态: 跟内核的处理有关 60%
#id CPU空闲

2、监控CPU饱和度使⽤率,先获取当前1分钟的负载,然后除以CPU核⼼数的2倍,然后乘以100转为百分⽐

[root@zabbix-server01 ~]# uptime | awk -F ',' '{print $3}' | awk '{print$NF}'
0.00
# 获取CPU核⼼数
[root@zabbix-server01 ~]# nproc
2
# 计算当前CPU的饱和度
[root@zabbix-server01 ~]# stress --cpu 3 # 模拟压⼒测试
[root@zabbix-server01 ~]# np=$(echo $[ $(nproc) * 2 ])
[root@zabbix-server01 ~]# uptime | awk -F ',' '{print $3}' | awk -v core=$np '{print $NF / core * 100"%" }'
48.75%

2.2 监控内存

通常监控内存的使⽤率、以及内存的饱和度;

  • 监控内存使⽤率: free
  • 监控内存饱和度:当内存使⽤率⾼于80%,并且Swap使⽤超过5%

内存监控命令: free

[root@zabbix-server01 ~]# free -mtotal        used        free      shared  buff/cache   available
Mem:            7908        1144        6580          17         443        6763
Swap:           5119           0        5119
# total:表示总内存
# user:表示已经使⽤的内存
# free:表示的是当前完全没有被程序使⽤的内存
# buffer/cache:表示缓冲和缓存使⽤的内存,在内存不够时,可以释放该内存供新的应⽤程序使⽤
# available:表示系统⽬前能提供给新应⽤程序使⽤的内存

计算内存的使⽤率,公式:内存使⽤率 =( 总内存 - 可⽤内存 / 总内存 *100 )

[root@zabbix-server01 ~]# free -m | awk '/^Mem/{print ($2-$NF)/$2*100}'
9.44359

2.3 监控磁盘

通常监控磁盘的使⽤率、以及磁盘IO吞吐、IOPS;

  • 监控磁盘的使⽤率: df -h 、df -i

  • 监控磁盘每秒的IO吞吐、IOPS: iostat、iotop (使⽤Prometheus会更加的⽅便)

1、监控磁盘的使⽤率

2、监控磁盘的IO吞吐、IOPS

[root@zabbix-server01 ~]# ls /dev/mapper/ -l
总用量 0
crw-------. 1 root root 10, 236 1127 20:34 control
lrwxrwxrwx. 1 root root       7 1127 20:34 rl-root -> ../dm-0
lrwxrwxrwx. 1 root root       7 1127 20:34 rl-swap -> ../dm-1
[root@zabbix-server01 ~]# yum install sysstat -y
[root@zabbix-server01 ~]# iostat
Linux 5.14.0-503.14.1.el9_5.x86_64 (zabbix-server01)    2024年11月27日  _x86_64_(4 CPU)avg-cpu:  %user   %nice %system %iowait  %steal   %idle0.43    0.01    1.11    0.20    0.00   98.26Device             tps    kB_read/s    kB_wrtn/s    kB_dscd/s    kB_read    kB_wrtn    kB_dscd
dm-0             38.25       748.12       407.71         0.00     518799     282736          0
dm-1              0.14         3.20         0.00         0.00       2220          0          0
nvme0n1          39.85       764.13       410.67         0.00     529898     284784          0
sr0               0.08         3.02         0.00         0.00       2096          0          0
# tps: 每秒传输次数,即IOPS(输⼊/输出操作每秒),它反映了设备的I/O负载。
# kB_read/s: 每秒从设备读取的数据量,单位KB,千字节。
# kB_wrtn/s: 每秒向设备写⼊的数据量,单位KB,千字节。
# kB_dscd/s: 每秒丢弃的数据量,单位KB,千字节。(通常是0,因为绝⼤部分情况下不会丢弃数据)。
# kB_read: ⾃系统启动后从设备读取的总数据量,单位KB,千字节。
# kB_wrtn: ⾃系统启动后向设备写⼊的总数据量,单位KB,千字节。
# kB_dscd: ⾃系统启动后丢弃的总数据量,单位KB,千字节。

2.4 监控⽹络

通常监控⽹络的每秒传输的带宽: iftop -i eth0、ifconfig、glances

[root@ZabbixServer ~]# iftop
oldxu.net:https => 101.200.101.219:57456 0b 9.53Kb 6.11Kb<=
oldxu.net:https => 101.200.101.207:65254 0b 3.37Kb 1.12Kb
#中间的<= =>这两个左右箭头,表示的是流量的⽅向。
TX: cum: 170KB #发送流量
RX: 37.1KB #接收流量
TOTAL: 208KB #总的流量#如果单位为Mbps,换算为MB需要除以8,⽐如:100Mbps = 12MB

2.5 监控TCP

[root@zabbix-server01 ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:10051         127.0.0.1:60377         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:50427         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:43145         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:41213         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:35433         TIME_WAIT  
tcp        0    172 10.0.0.71:22            10.0.0.1:50087          ESTABLISHED
tcp        0      0 127.0.0.1:10051         127.0.0.1:45285         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:52999         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:33685         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:35277         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:33977         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:59189         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:43141         TIME_WAIT  
tcp        0      0 127.0.0.1:10051         127.0.0.1:60469         TIME_WAIT 

2.6 监控脚本示例

监控当前登录系统的在线⽤户数量,如果超过4则触发报警

  • 1.如何提取⽤户数量

  • 2.根据提取⽤户数量进⾏⽐对

  • 3.如果⽐对成⽴,则触发警告,如果失败则进如下⼀轮监控

[root@ZabbixServer ~]# check_user_login.sh
for ip in {7..9}
dousers=$(ssh root@172.16.1.$ip "who|wc -l")if [ $users -ge 3 ];thenecho "报警通知 172.16.1.$ip"fi
done

3、常⻅的监控⽅案

3.1 Cacti

https://www.cacti.net/

主要通过SNMP对⽹络流量进⾏监控与分析,常⽤于在数据中⼼监控⽹络设备;

3.2 Nagios

https://www.nagios.org/

主要⽤来监控系统,也可以⾃定义Shell脚本来监控服务,可通过Web⻚⾯显示对象状态、⽇志、告警信息;

但对于⾃定义监控、分层告警、分布式等⽀持相对较薄弱;

3.3 Zabbix

https://www.zabbix.com/cn/

⽬前在传统环境下使⽤较多的开源监控软件,可横向扩展、⾃定义监控项、⽀持多种监控⽅式、可监控⽹络与服务等。

3.4 Prometheus

⽬前最为流⾏的监控⽅案,能监控节点、应⽤组件、业务组件、⽹络设备、⽹站响应时间、其次有专⻔的⾃动发现组件来⾃动监控Kubernetes的Pod、Service、Ingress等。且⽀持在服务端进⾏聚合、分析,展示等。

例如:计算CPU使⽤率的公式: (1 - CPU 空闲率) * 100 = CPU 使⽤率

语法: (1- avg(irate(node_cpu_seconds_total{mode=“idle”}[1m])) by (instance) ) * 100

3.5 商业监控⽅案

监控宝:https://www.jiankongbao.com/

听云:https://www.tingyun.com/

4、Zabbix系统概述

4.1 zabbix应⽤场景

Zabbix是企业级开源监控解决⽅案,⽀持实时监控数万台服务器、虚拟机和⽹络设备,采集百万级监控指标,Zabbix完全开源免费。

image-20241127205609718

4.2 zabbix发布频率

image-20241127205644622

  • Zabbix LTS (⻓期⽀持版本) 。Zabbix LTS版本在五年内为Zabbix⽤户提供⽀持服务,包括三年的全⾯⽀持(基础的、紧急的以及安全性上的问题)和两年的最低限度⽀持(仅限紧急的和安全性上的问题)。Zabbix LTS版本的发布将体现在版本号第⼀位数字的变动上。

  • Zabbix 标准版本发布(试⽤版)。 Zabbix标准版本将在全⾯⽀持(基础的、紧急的以及安全性上的问题)的六个⽉内为Zabbix⽤户提供⽀持服务,直到下⼀个Zabbix稳定版本发布。Zabbix标准版本会变动第⼆个版本号。

zabbix发布周期官网:https://www.zabbix.com/cn/life_cycle_and_release_policy

4.3 zabbix版本特性

Zabbix5.0

  • 1、⽀持监控项预测试功能,及添加完监控项之后,可以⽴即获取监控项的取值结果;

  • 2、在低级⾃动发现过程中可以过滤掉⼀些监控项、触发器、主机和图形等;

  • 3、监控项键值限制提⾼,监控项键值的最⼤⻓度从256个字符增加到2048个字符;

  • 4、使⽤ZabbixAgent2来替代ZabbixAgent

    • 4.1 降低TCP连接数量;
    • 4.2 使⽤go语⾔开发,集成了Agent所有的功能,并提供第三⽅的扩展插件;

Zabbix6.0

  • 1、原⽣⽀持⾼可⽤,可直接开箱即⽤,⽆需借助第三⽅软件实现;

  • 2、原⽣⽀持对Kubernetes集群的监控;

  • 3、原⽣⽀持TLS/SSL⽹站证书监控、原⽣⽀持对域名的监控;

  • 4、⽀持定制前端UI展示公司信息;

  • 5、提升了ZabbixAgent2的性能,并优化了ZabbixAgent监控;

  • 6、引⼊了更多的基础模板对系统进⾏监控;

  • 7、SNMP发现和采集性能⼤幅度提升;

Zabbix7.0 在Zabbix6.0基础上引⼊了多项新特性,主要提升Zabbix的整体性能以及兼容性。

  • 1、将最低⽀持的 PHP 版本设置为 8.0

  • 2、将 MySQL 最⼤⽀持版本增加⾄ 8.2

  • 3、将 MariaDB 最⼤⽀持版本增加到 11.0

  • 4、改进了数据采集流程,减少了系统资源的消耗,提⾼了数据处理的效率。

  • 5、对数据库交互进⾏了优化,减少了查询延迟,增强了⼤数据量处理的能⼒。

  • 6、在 Kubernetes 集群状态模板中添加了⽤于 Kubelet 发现的节点标签和注释的过滤器

  • 7、引⼊了更多通⽤的模板,⽅便对各种系统和服务进⾏快速监控部署。

  • 更多重要的特性传送⻔:https://www.163.com/dy/article/ICT2BOTD0538I0ZK.html

4.4 zabbix功能组件

Zabbix 由⼏个主要的功能组件组成,其职责如下所示。

1、 ZabbixAgent :通常是部署在被监控的主机上,⽤于监控本地应⽤程序指标,并将到的指标发送给 Zabbix server。

2、 ZabbixServer : 是 Zabbix agent 向其报告可⽤性、系统完整性信息的核⼼组件;要⽤于存储所有配置信息、统计信息和操作信息的核⼼存储库。

3、 Database :所有配置信息以及 Zabbix 收集到的数据都被存储在数据库中。

4、 ZabbixWeb :基于Web界⾯操作ZabbixServer,该界⾯是 Zabbix server 的⼀部分,通常(但不⼀定)和 ZabbixServer 运⾏在同⼀台主机上。

5、 ZabbixProxy :可以替 ZabbixServer收集Agent的指标数据,降低ZabbixServer压⼒,但它属于可选部分;

4.5 Zabbix逻辑架构

  • ZabbixAgent (数据采集)–> ZabbixServer (数据分析|报警)–> 数据库(数据存储)<-- ZabbixWeb (数据展示)

  • ZabbixWeb 创建主机–>写⼊数据库<-- ZabbixServer 获取要监控的指标信息–>指挥 ZabbixAgent 获取数据;

image-20241127210527205

5、Zabbix7.x监控安装

5.0 Zabbix安装需求

安装⼤⼩监控指标数CPU核⼼数内存
100028
1万416
10万1664
非常大100万3296

5.1 配置YUM仓库

1、配置RockyLinux为国内的yum源

sed -e 's|^mirrorlist=|#mirrorlist=|g' \-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \-i.bak \/etc/yum.repos.d/rocky*.repo
dnf makecache

2、如果已经安装了Epel源,则需要禁⽤EPEL源中提供的Zabbix包,编辑配置⽂件 /etc/yum.repos.d/epel.repo ,并添加以下内容

# ⼿动修改
[root@zabbix-server01 ~]# vim /etc/yum.repos.d/epel.repo
[epel]
...
excludepkgs=zabbix*# sed修改
[root@zabbix-server01 ~]# sed -i '/^\[epel\]/a excludepkgs=zabbix*' /etc/yum.repos.d/epel.repo

3、下载zabbix源(注意这⾥虽然安装的是6.5,但是官⽹上写的是7.0抢先版,后期如果7.0正式发布了,修改下源的地址即可。)

[root@zabbix-server01 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rocky/9/x86_64/zabbix-release-latest.el9.noarch.rpm
[root@zabbix-server01 ~]# sed -i 's#repo.zabbix.com#mirrors.aliyun.com/zabbix#g' /etc/yum.repos.d/zabbix.repo
[root@zabbix-server01 ~]# yum clean all
[root@zabbix-server01 ~]# yum makecache

5.2 安装zabbix Server

安装Zabbix server,Web前端,agent

[root@zabbix-server01 ~]# yum install zabbix-server-mysql zabbix-sql-scripts zabbix-web-mysql zabbix-nginx-conf zabbix-selinux-policy zabbix-agent zabbix-agent2 -y

5.3 安装并初始化数据库

1、安装MySQL8.x数据库

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

2、启动MySQL并加⼊开机⾃启动

[root@zabbix-server01 ~]# systemctl enable mysqld --now

3、创建Zabbix库,⽤户名、密码以及访问权限;

[root@zabbix-server01 ~]# mysql
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user zabbix@localhost identified by 'password';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit; 

3、导⼊初始架构和数据,系统将提示您输⼊新创建的密码。

[root@zabbix-server01 ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 zabbix -uzabbix -ppassword

4、导⼊数据库架构后禁⽤log_bin_trust_function_creators选项。

[root@zabbix-server01 ~]# mysql
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit; 

5.4 配置Zabbix-Server

1、配置Zabbix-Server连接指定的数据库

[root@zabbix-server01 ~]# grep "^[a-Z]" /etc/zabbix/zabbix_server.conf
LogFile=/var/log/zabbix/zabbix_server.log
LogFileSize=0
PidFile=/run/zabbix/zabbix_server.pid
SocketDir=/run/zabbix
DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=password
SNMPTrapperFile=/var/log/snmptrap/snmptrap.log
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
EnableGlobalScripts=0

2、配置Zabbix-Server前端访问域名,编辑配置⽂件 vim /etc/nginx/conf.d/zabbix.conf

[root@zabbix-server01 ~]# vim /etc/nginx/conf.d/zabbix.conf
# 替换为⾃⼰公司的域名
server {
...
listen 80;
server_name zabbix.oldxu.net;
...
}

5.5 启动Zabbix server和agent

[root@zabbix-server01 ~]# systemctl enable zabbix-server zabbix-agent2 nginx php-fpm
[root@zabbix-server01 ~]# systemctl start zabbix-server zabbix-agent2 nginx php-fpm

5.6 访问ZabbixWeb前端

1、访问zabbixWeb前端,进⾏初始化向导

image-20241127212507768

2、登陆 ZabbixWeb ⻚⾯,默认⽤户名 Admin ,密码 zabbix

image-20241127212611442

6、Zabbix监控中⽂汉化

6.1 修改前端页面语言

image-20241127212734191

6.2 替换字体并解决乱码

1、检查zabbix字体存放⽬录

[root@zabbix-server01 ~]# rpm -ql zabbix-web |grep fonts
/usr/share/zabbix/assets/fonts
/usr/share/zabbix/assets/fonts/zabbix-icons.svg
/usr/share/zabbix/assets/fonts/zabbix-icons.ttf
/usr/share/zabbix/assets/fonts/zabbix-icons.woff
/usr/share/zabbix/assets/fonts/zabbix-icons.woff2
[root@zabbix-server01 ~]# ll /usr/share/zabbix/assets/fonts
总用量 196
lrwxrwxrwx. 1 root root     33 1124 21:51 graphfont.ttf -> /etc/alternatives/zabbix-web-font
-rw-r--r--. 1 root root 149851 1120 15:50 zabbix-icons.svg
-rw-r--r--. 1 root root  22072 1120 15:50 zabbix-icons.ttf
-rw-r--r--. 1 root root  11716 1120 15:50 zabbix-icons.woff
-rw-r--r--. 1 root root   9756 1120 15:50 zabbix-icons.woff2
[root@zabbix-server01 ~]# ll /etc/alternatives/zabbix-web-font
lrwxrwxrwx. 1 root root 49 1124 21:51 /etc/alternatives/zabbix-web-font -> /usr/share/fonts/dejavu-sans-fonts/DejaVuSans.ttf

2、对默认字体进⾏替换(C盘->windows->fonts->复制 “微软雅⿊” 字体⾄桌⾯ )

[root@zabbix-server01 ~]# cd /usr/share/fonts/dejavu-sans-fonts/
[root@zabbix-server01 dejavu-sans-fonts]# mv DejaVuSans.ttf DejaVuSans.ttf.bak
[root@zabbix-server01 dejavu-sans-fonts]# mv MSYH.TTC DejaVuSans.ttf

6.3 重载⻚⾯并验证字体

image-20241127213934380

7、Zabbix添加Linux主机监控

7.1 环境准备

系统外⽹IP(NAT)内⽹IP(LAN)⻆⾊
RockyLinux9eth0:10.0.0.71eth1:172.16.1.71ZabbixServer
RockyLinux9eth0:10.0.0.7eth1:172.16.1.7web01

7.2 安装zabbix-agent2

[root@Rocky ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/7.0/rocky/9/x86_64/zabbix-agent2-7.0.6-release1.el9.x86_64.rpm

7.3 配置zabbix-agent2

[root@Rocky ~]# vim /etc/zabbix/zabbix_agent2.conf
Server=172.16.1.71 # 配置Agent指向Server

7.4 启动zabbix-agent2

[root@Rocky ~]# systemctl enable zabbix-agent2.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent2.service → /usr/lib/systemd/system/zabbix-agent2.service.
[root@Rocky ~]# netstat -lntp |grep 10050
tcp6       0      0 :::10050                :::*                    LISTEN      1572/zabbix_agent2  
[root@Rocky ~]# 

7.5 配置Zabbix-web

1、添加主机:数据采集–>主机–>创建主机

2、主机配置:

  • 主机名称: web01
  • 可⻅名称: web01-172.16.1.7
  • 模板(提供了⼤量的监控项): Templates/Operating Systems–> Linux by Zabbix agent
  • 主机群组(主机的分类): Linux Servers
  • 接⼝(明确指定agent的地址和端⼝): 类型为Agent、地址、172.16.1.7

3、检查监控的结果

image-20241127225237993

4、点击监测–>最新数据–>筛选对应的节点,查看对应的监控指标数据,是否能正常采集到

image-20241127225320938

8、Zabbix添加Windows主机监控

8.1 安装Zabbix-Agent2

Zabbix-Agent2 For Windows 官⽅下载地址:https://www.zabbix.com/cn/download_agents?version=7.0+LTS&release=7.0.6&os=Windows&os_version=Any&hardware=amd64&encryption=OpenSSL&packaging=MSI&show_legacy=0

1、下载

# https://cdn.zabbix.com/zabbix/binaries/stable/7.0/7.0.6/zabbix_agent2-7.0.6-windows-amd64-openssl.msi

2、配置zabbix-agent,后期可以在 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf 中进⾏配置修改

image-20241127225525787

8.2 启动Zabbix-Agent2

2、调⽤cmd,执⾏ services.msc ,找到 Zabbix Agent2 ,然后启动该服务;

image-20241127225618321

3、cmd运⾏,查看监听端⼝

C:\Users\24212>netstat -an|find "10050"TCP    0.0.0.0:10050          0.0.0.0:0              LISTENINGTCP    [::]:10050             [::]:0                 LISTENING

8.3 服务端测试取值

在Zabbix-Server服务端上,使⽤zabbix_get,探测对端主机的监控项是否有值;

[root@zabbix-server01 ~]# zabbix_get -s 10.0.0.220 -k system.uname
Windows DESKTOP-G7SF6EV 10.0.19042 Microsoft Windows 10 企业版 x64

8.4 配置zabbix-Web

1、添加主机:数据采集–>主机–>创建主机

2、主机配置:

  • 主机名称: windows10
  • 可⻅名称: windows10-10.0.0.220
  • 模板(提供了⼤量的监控项): Templates/Operating Systems–> Windows by Zabbix agent
  • 主机群组(主机的分类): Windows Servers
  • 接⼝(明确指定agent的地址和端⼝): 类型为Agent、地址、10.0.0.220

3、数据采集–>主机–>检查监控的主机是否正常

image-20241127230048554

4、点击监测–>最新数据–>筛选对应的Windows节点,查看对应的监控指标数据,是否能正常采集到

image-20241127230127124

9、Zabbix数据库拆分

9.1 zabbix基础架构

zabbix-agent(数据采集)–>zabbix-server(数据分析|报警)–> 数据库(数据存储)<–zabbix web(数据展示)

image-20241127230228400

Zabbix单台服务: LNMP+Zabbix

Zabbix数据拆分: LNP+MySQL (修改如下两个⽂件中连接数据库的配置信息)

  • /etc/zabbix/zabbix_server.conf

  • /etc/zabbix/web/zabbix.conf.php

9.2 拆分数据库环境准备

系统外⽹IP(NAT)内⽹IP(LAN)⻆⾊
RockyLinux9eth0:10.0.0.71eth1:172.16.1.71Zabbix-Server
RockyLinux9eth0:10.0.0.75eth1:172.16.1.75MySQL

9.3 准备独立数据库

1、安装MySQL

[root@zabbix-database ~]# yum install mysql mysql-server -y
[root@zabbix-database ~]# systemctl enable mysqld --now
# 防火墙开放3306端口
# 服务器关闭selinux
# 其他监控机器开放10050端口,windows机器开放防火墙端口,看service.msc里面zabbix-agent2进程是否正在运行

2、创建对应的库

[root@zabbix-server01 ~]# mysql
mysql>
mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'%' identified by 'password';
mysql> grant all privileges on zabbix.* to 'zabbix'@'%';
mysql> quit;

9.4 备份旧的数据库

[root@ZabbixServer ~]# mysqldump -uroot --databases zabbix > zabbix.sql

9.5 恢复数据库

⽅式1、推送sql⽂件,⽽后在数据库节点本地执⾏恢复

[root@zabbix-server01 ~]# scp zabbix.sql root@172.16.1.75:~
[root@zabbix-database ~]# mysql -B zabbix < zabbix.sql

⽅式2、直接通过远程的⽅式进⾏数据库恢复

[root@zabbix-server01 ~]# cat zabbix.sql |mysql -h 172.16.1.75 -uzabbix -ppassword

9.6 修改zabbix-Server

1、修改 /etc/zabbix/zabbix_server.conf 配置⽂件中数据库连接信息

[root@zabbix-server01 ~]# vim /etc/zabbix/zabbix_server.conf
DBHost=172.16.1.75
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix

2、重启zabbix-server服务

[root@zabbix-server01 ~]# systemctl restart zabbix-server

9.7 修改zabbix-web

1、修改 /etc/zabbix/web/zabbix.conf.php 配置⽂件中数据库连接信息

[root@zabbix-server01 ~]# vim /etc/zabbix/web/zabbix.conf.php
// Zabbix GUI configuration file.
$DB['TYPE'] = 'MYSQL';
$DB['SERVER'] = '172.16.1.75';
$DB['PORT'] = '0';
$DB['DATABASE'] = 'zabbix';
$DB['USER'] = 'zabbix';
$DB['PASSWORD'] = 'zabbix';

2、重启nginx与php服务

[root@zabbix-server01 ~]# systemctl restart nginx php-fpm

3、最后测试验证
image-20241128195007318

相关文章:

01-Zabbix监控快速入门

01-Zabbix监控快速入门 1、监控知识基本概述1.1 什么是监控1.2 为何需要监控1.3 如何进行监控 2、单机时代如何监控2.1 监控CPU2.2 监控内存2.3 监控磁盘2.4 监控⽹络2.5 监控TCP2.6 监控脚本示例 3、常⻅的监控⽅案3.1 Cacti3.2 Nagios3.3 Zabbix3.4 Prometheus3.5 商业监控⽅…...

docker 怎么启动nginx

在Docker中启动Nginx容器是一个简单的过程。以下是启动Nginx容器的步骤&#xff1a; 拉取Nginx镜像&#xff1a; 首先&#xff0c;你需要从Docker Hub拉取Nginx的官方镜像。使用以下命令&#xff1a; docker pull nginx运行Nginx容器&#xff1a; 使用docker run命令来启动一个…...

1-1 Gerrit实用指南

注&#xff1a;学习gerrit需要拥有git相关知识&#xff0c;如果没有学习过git请先回顾git相关知识点 黑马程序员git教程 一小时学会git git参考博客 git 实操博客 1.0 定义 Gerrit 是一个基于 Web 的代码审查系统&#xff0c;它使用 Git 作为底层版本控制系统。Gerrit 的主要功…...

数据库深入(学习笔记)

多表查询 概述&#xff1a; 多表查询&#xff1a;指从多张表中查询数据笛卡尔积&#xff1a;笛卡尔积是指在数学中&#xff0c;两个集合(A集合&#xff0c;B集合)的所有组合情况。 分类&#xff1a; 连接查询 内连接&#xff1a;相当于查询A、B交集部分数据 隐式内连接:sele…...

PostgreSQL17.x创建数据库及数据库信息查看命令

PostgreSQL17.x创建数据库及数据库信息查看命令 文章目录 PostgreSQL17.x创建数据库及数据库信息查看命令1.创建数据库1. 使用 SQL 命令创建数据库2. 创建数据库并指定字符集3. 验证数据库是否创建成功3. 远程连接1. 修改 PostgreSQL 配置文件2. 修改客户端认证配置4. 指定某个…...

Canal mysql数据库同步到es

Canal与Elasticsearch集成指南 [可视化工具](https://knife.blog.csdn.net/article/details/126348055)下载Canal 1.1.5版本 (alpha-2) 请从GitHub Releases下载Canal 1.1.5版本中间版本alpha-2。仅需下载canal.deployer和canal.adapter组件。 安装Elasticsearch 确保已安装…...

React 前端框架1

一、React 简介 &#xff08;一&#xff09;什么是 React React 是一个用于构建用户界面的 JavaScript 库&#xff0c;由 Facebook 开源并维护。它采用了组件化的开发思想&#xff0c;允许开发者将复杂的 UI 拆分成一个个独立、可复用的小组件&#xff0c;就如同搭积木一般&am…...

什么是Batch Normalization?

一、概念 Batch Normalization是在2015年提出的数据归一化方法&#xff0c;主要用在深度神经网络中激活层之前。它的主要作用是加快模型训练时的收敛速度&#xff0c;使模型训练过程更加稳定&#xff0c;避免梯度爆炸或消失&#xff0c;并起到一定的正则化作用&#xff0c;有时…...

rtc-pcf8563 0-0051: low voltage detected, date/time is not reliable

解决方法&#xff1a; 1、先测量pcf8563电源电压&#xff0c;是否满足要求。 2、pcf8563首次操作。第一次读取pcf8563的时间&#xff0c;未初始化&#xff0c;非法&#xff0c;芯片门槛电压检测配置不合理。使用hwclock命令写入一次&#xff0c;即可解决。 hwclock -f /dev/…...

tauri下的两个常用rust web框架:Leptos和Trunk

tauri下有两个常用rust web框架&#xff0c;就是Leptos和Trunk Leptos Leptos 是一个基于 Rust 的 Web 框架。您可以在他们的官方网站上了解更多关于 Leptos 的信息。本指南适用于 Leptos 的 0.6 版本。 Leptos Leptos 是一个用 Rust 编写的现代、高效且安全的 Web 框架。它…...

vscode + conda + qt联合开发

安装vscode 安装conda 清华大学开源软件镜像(Anaconda下载)_清华大学镜像-CSDN博客 conda create新建一个环境&#xff0c;激活这个环境&#xff0c;然后安装pyside6 pip install pyside6 -i https://pypi.tuna.tsinghua.edu.cn/simple 安装成功后输入 pip list查看是否安装…...

mac终端自定义命令打开vscode

1.打开终端配置文件 open -e ~/.bash_profile终端安装了zsh&#xff0c;那么配置文件是.zshrc&#xff08;打开zsh配置&#xff0c;这里举&#x1f330;使用zsh&#xff09; sudo open -e ~/.zshrc 2.在zshrc配置文件中添加新的脚本&#xff08;这里的code就是快捷命令可以进…...

关于单片机的原理与应用!

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///计算机爱好者&#x1f60a;///目前正在学习C&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于单片…...

【手术显微镜】市场高度集中,由于高端手术显微镜的制造技术主要掌握于欧美企业

摘要 HengCe (恒策咨询&#xff09;是全球知名的大型咨询机构&#xff0c;长期专注于各行业细分市场的调研。行业层面&#xff0c;重点关注可能存在“卡脖子”的高科技细分领域。企业层面&#xff0c;重点关注在国际和国内市场在规模和技术等层面具有代表性的企业&#xff0c;…...

速盾高防cdn支持移动端独立缓存

随着移动互联网的快速发展&#xff0c;移动端网页访问量也越来越大。然而&#xff0c;移动端的网络环境相对不稳定&#xff0c;用户体验可能会受到影响。因此&#xff0c;使用高防CDN来加速移动端网页访问&#xff0c;成为越来越多网站运营者的首选。 速盾高防CDN是一种分布式…...

java中的运算符

大家好&#xff0c;今天来看看java中运算符的一些知识点&#xff0c;理解好运算符是我们在写代码的一大重点&#xff0c;那么我们就来看看吧。 运算符:对操作数进行操作时的符号.,不同运算筹操作的含义不同. 一、算术算片. 1、基本四则运算符:加减乘除模(一*/%) 注意:都是二元…...

视频流媒体服务解决方案之Liveweb视频汇聚平台

一&#xff0c;Liveweb视频汇聚平台简介: LiveWeb是深圳市好游科技有限公司开发的一套综合视频汇聚管理平台&#xff0c;可提供多协议&#xff08;RTSP/RTMP/GB28181/海康Ehome/大华&#xff0c;海康SDK等&#xff09;的视频设备接入&#xff0c;支持GB/T28181上下级联&#xf…...

什么是六边形图?

什么是六边形图&#xff1f;&#xff09; 为什么用六边形图&#xff1f;六边形图的构造原理如何绘制六边形图&#xff1f;&#xff08;代码示例&#xff09;结果解读总结 六边形图是一种特殊的二维数据可视化方法&#xff0c;用来展示两个变量之间的关系。它用许多小的六边形&a…...

淘宝天猫API接口探索:店铺商品全览与拍立淘图片搜索实战

在当今的电商时代&#xff0c;淘宝和天猫作为两大巨头&#xff0c;为开发者提供了丰富的API接口&#xff0c;以实现与平台的数据交互。本文将带您探索如何使用淘宝天猫的API接口来获取店铺所有商品列表&#xff0c;以及如何通过拍立淘&#xff08;图片搜索&#xff09;功能找到…...

.net6.0 mvc 传递 model 实体参数(无法对 null 引用执行运行时绑定)

说一下情况&#xff1a; 代码没问题&#xff0c;能成功从数据库里查到数据&#xff0c;能将数据丢给ViewBag.XXXX, 在View页面也能获取到 ViewBag.XXXX的值&#xff0c;但是发布到线上后报这个错&#xff1a; Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 无法对 …...

电子电气架构 --- 面向服务的汽车诊断架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧,都是来源于自己的想象,只有你真的去做了,才会发现有多快乐。…...

困扰解决:mfc140u.dll丢失的解决方法,多种有效解决方法全解析

当电脑提示“mfc140u.dll丢失”时&#xff0c;这可能会导致某些程序无法正常运行&#xff0c;给用户带来不便。不过&#xff0c;有多种方法可以尝试解决这个问题。这篇文章将以“mfc140u.dll丢失的解决方法”为主题&#xff0c;教大家有效解决mfc140u.dll丢失。 判断是否是“mf…...

OpenCV_Code_LOG

孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…...

【python】OpenCV—Tracking(10.5)—dlib

文章目录 1、功能描述2、代码实现3、效果展示4、完整代码5、涉及到的库函数dlib.correlation_tracker() 6、参考 1、功能描述 基于 dlib 库&#xff0c;实现指定类别的目标检测和单目标跟踪 2、代码实现 caffe 模型 https://github.com/MediosZ/MobileNet-SSD/tree/master/…...

音视频入门基础:MPEG2-TS专题(9)——FFmpeg源码中,解码TS Header的实现

一、引言 FFmpeg源码对MPEG2-TS传输流/TS文件解复用时&#xff0c;在通过read_packet函数读取出一个transport packet后&#xff0c;会调用handle_packet函数来处理该transport packet&#xff1a; static int handle_packets(MpegTSContext *ts, int64_t nb_packets) { //..…...

React 自定义钩子:useOnlineStatus

我们今天的重点是 “useOnlineStatus” 钩子&#xff0c;这是 React 自定义钩子集合中众多精心制作的钩子之一。 Github 的&#xff1a;https://github.com/sergeyleschev/react-custom-hooks import { useState } from "react" import useEventListener from &quo…...

【C++】vector

vector 是一种容器&#xff0c;广泛存在于多种编程语言中&#xff0c;如 C、Rust、Java 等。它是一种动态数组&#xff0c;可以存储任意类型的元素&#xff0c;并且可以根据需要自动调整大小。下面我将详细介绍 vector 的概念和使用方法&#xff0c;主要以 C 中的 std::vector …...

海外centos服务器如何更换yum镜像源

今天遇到一个海外服务器,需要更新yum源,发现使用国内的(阿里云,腾讯云,华为云等),都无法实现,正常更新,主要问题还是服务器的网络无法访问国内的,所以,本章教程,记录一下,我验证过的方法。 1、备份或删除 源已经停止维护了,也可以将其直接删除,也不会有影响。如…...

go和python的遍历对比

Go 和 Python 都有强大的循环控制结构&#xff0c;但它们在实现和行为上有所不同&#xff0c;特别是关于索引变量的管理、迭代器的使用以及如何在循环中修改循环变量。以下是 Go 和 Python 循环的详细差异分析&#xff1a; 1. 循环类型&#xff1a; Go&#xff1a; Go 使用 …...

ML 系列:第 37 节 — 统计中的估计

文章目录 一、说明二、统计学中估计的目的三、统计学中的估计类型四、什么是点估计量&#xff1f;4.1 基本概念4.2 点估计量的性质4.3 点估计与区间估计4.4 寻找点估计的常用方法 五、区间估计5.1 什么是区间估计&#xff1f;5.1.1 置信区间5.1.2 预测区间5.1.3 容差区间Tolera…...

四、初识C语言(4)

一、作业&#xff1a;static修饰局部变量 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <string.h> //作业&#xff1a;static修饰局部变量 int sum (int a) {int c 0;static int b 3;c 1;b 2;return (abc); } int main() {int i 0;int a …...

不同云计算网络安全等级

导读云计算的本质是服务&#xff0c;如果不能将计算资源规模化/大范围的进行共享&#xff0c;如果不能真正以服务的形式提供&#xff0c;就根本算不上云计算。 等级保护定级流程 定级是开展网络安全等级保护工作的 “基本出发点”&#xff0c;虚拟化技术使得传统的网络边界变…...

基于深度学习的甲状腺结节影像自动化诊断系统(PyQt5界面+数据集+训练代码)

随着医学影像技术的发展&#xff0c;计算机辅助诊断在甲状腺结节的早期筛查中发挥着重要作用。甲状腺结节的良恶性鉴别对临床治疗具有重要意义&#xff0c;但传统的诊断方法依赖于医生的经验和影像学特征&#xff0c;存在一定的主观性和局限性。为了解决这一问题&#xff0c;本…...

Codigger Desktop:多样 Look 设计,全新 Game Look 带来趣味体验

Codigger Desktop提供了多种不同的Look设计&#xff0c;以满足用户的不同需求和偏好。包括Keyboard Look、Value Look、Game Look、Location Look、Size Look、Stage Look和Tile Look。 Keyboard Look&#xff1a;提供类似键盘布局的界面设计&#xff0c;方便用户快速访问常用功…...

redis下载、基础数据类型、操作讲解说明,持久化、springboot整合等

1 Redis是什么 官网&#xff1a;https://redis.io 开发者&#xff1a;Antirez Redis诞生于2009年全称是Remote Dictionary Server 远程词典服务器&#xff0c;是一个基于内存的键值型NoSQL数据库。 Redis是一个开源的、高性能的键值对存储系统&#xff0c;它支持多种数据结构&…...

原生js上传图片

无样式上传图片 创建一个 FormData 对象&#xff1a;这个对象可以用于存储数据。 将文件添加到 FormData 对象&#xff1a;通过 append() 方法&#xff0c;将用户选择的文件添加到 formData 对象中。 使用 fetch 发送请求&#xff1a;使用 fetch API 或者其他方法将 FormDat…...

【SpringBoot+Vue】x-admin管理系统跟做

技术栈 前端技术说明Vue前端框架Vuex全局状态管理框架ElementUI前端UI框架Axios前端HTTP框架vue-element-admin项目脚手架 后端技术说明SpringBoot容器MVC框架MyBatisORM框架MyBatis-plusMyBatis增强工具Redis非关系型数据库 数据库准备 SET NAMES utf8mb4; SET FOREIGN_KE…...

计算机网络 —— HTTP 协议(详解)

前一篇文章&#xff1a;网页版五子棋—— WebSocket 协议_网页可以实现websocket吗-CSDN博客 目录 前言 一、HTTP 协议简介 二、HTTP 协议格式 1.抓包工具的使用 2.抓包工具的原理 3.抓包结果 4.HTTP协议格式总结 三、HTTP 请求 1. URL &#xff08;1&#xff09;UR…...

MacOS 配置github密钥

MacOS 配置github密钥 1. 生成GitHub的SSH密钥对 ssh-keygen -t ed25519 -C "xxxxxxx.com" -f ~/.ssh/id_ed25519_github 其中 xxxxxxxxxxx.com 是注册github、gitee和gitlab的绑定账号的邮箱 -t ed25519:生成密钥的算法为ed25519&#xff08;ed25519比rsa速度快&…...

我的第一个创作纪念日 —— 梦开始的地方

前言 时光荏苒&#xff0c;转眼间&#xff0c;我已经在CSDN这片技术沃土上耕耘了365天 今天&#xff0c;我迎来了自己在CSDN的第1个创作纪念日&#xff0c;这个特殊的日子不仅是对我过去努力的肯定&#xff0c;更是对未来持续创作的激励 机缘 回想起初次接触CSDN&#xff0c;那…...

float globalMapVIsualizationLeafSize; 的中文意思是什么

1.在visual studio 中新建文件 没有包含#include <string>头文件&#xff0c;也可以使用 str2.append(", C");吗&#xff1f; 在 Visual Studio 或任何其他 C 开发环境中&#xff0c;即使新建的文件中没有显式包含 #include <string> 头文件&#xff0c…...

合规性要求对漏洞管理策略的影响

讨论漏洞管理中持续面临的挑战&#xff0c;包括确定漏洞的优先级和解决修补延迟问题。 介绍合规性要求以及自动化如何简化漏洞管理流程。 您认为为什么尽管技术不断进步&#xff0c;但优先考虑漏洞和修补延迟等挑战仍然存在&#xff1f; 企业基础设施日益复杂&#xff0c;攻…...

【Delphi】modbus-TCP 协议库

在日常开发中&#xff0c;也会遇到使用modbus的部件&#xff0c;比如温度控制器、读卡器等等&#xff0c;那么使用Delphi开发&#xff0c;也就必须遵守modbus-TCP协议&#xff0c;如果自己使用TCP控件写也没有问题&#xff0c;不过如果有开源的三方库&#xff0c;别人已经调试过…...

乐橙云小程序插件接入HbuilderX

乐橙插件使用&#xff1a; 1.配置app.json文件&#xff0c;uniapp中在mainfest.json中配置 https://uniapp.dcloud.net.cn/collocation/manifest.html#mp-weixin ** 2、集成插件页面.json文件 ** uniapp在 pages.json 对应页面的 style -> usingComponents 引入组件&…...

Python世界:复制粘贴?没那么简单!浅谈深拷贝与浅拷贝

Python世界&#xff1a;复制粘贴&#xff1f;没那么简单&#xff01;浅谈深拷贝与浅拷贝 问题引入切片拷贝是深还是浅&#xff1f;深拷贝和浅拷贝到底有啥区别&#xff1f;本文小结 问题引入 Python实现中&#xff0c;最近遇到个小问题&#xff0c;对其中的拷贝理解更深了些&a…...

vue3实现el-table的拖拽

我这里使用的是 sortablejs 插件; 安装命令: npm install sortablejs --save 注意点: 你的表格数据中要有id作为key去使用; <div class"draggable"><el-table row-key"id" :data"form.tableData" style"width: 100%" max-…...

Apache SSI 远程命令执行漏洞

目录 1、漏洞描述 2、访问页面 3、dirsearch工具爆破出上传目录 ​编辑 4、登录后台 5、上传shell.shtml一句话木马文件 6、拿到flag 1、漏洞描述 在测试任意文件上传漏洞的时候&#xff0c;目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持&a…...

高效集成:将聚水潭数据导入MySQL的实战案例

聚水潭数据集成到MySQL&#xff1a;店铺信息查询案例分享 在数据驱动的业务环境中&#xff0c;如何高效、准确地实现跨平台的数据集成是每个企业面临的重要挑战。本文将聚焦于一个具体的系统对接集成案例——将聚水潭的店铺信息查询结果集成到MySQL数据库中&#xff0c;以供BI…...

Elasticsearch面试内容整理-面试注意事项

在准备 Elasticsearch 面试时,除了掌握技术知识外,还需要注意如何有效展示你的技能和经验。以下是一些 Elasticsearch 面试的注意事项和建议: 掌握基础概念 在面试中,面试官通常会首先评估你对 Elasticsearch 基础概念的理解,包括集群架构、分片、副本、节点类型等。这些是…...

学习threejs,使用specularMap设置高光贴图

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshPhongMaterial高…...