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

zabbix学习1--zabbix6.x单机

文章目录

  • 1. 环境
  • 2. MYSQL8.0
    • 2.1 单节点
    • 2.2 配置主从
  • 3. 依赖组件
  • 4. zabbix-server
  • 5. agent
    • 5.1 yum
    • 5.2 编译
  • 附录
    • my.cnf
    • JDK
    • 默认端口号

1. 环境

进入官网查看所需部署环境配置以及应用版本要求https://www.zabbix.com/documentation/current/zh/manual/installation/requirements
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. MYSQL8.0

2.1 单节点

# 获取mysql
wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 
rpm -ivh mysql80-community-release-el7-7.noarch.rpm  
yum clean all;yum makecache# 安装mysql
yum install -y mysql-community-server mysql-community-devel \mysql-community-libs# 启动
systemctl start mysqld  
systemctl status mysqld  
systemctl enable mysqld  # 获取初始密码
cat /var/log/mysqld.log|grep password|rev|cut -d ':' -f1|rev|sed 's/ //g'         # 修改密码
# mysql -uroot -p
> alter user root@'localhost' identified by 'Honops@123';
> flush privileges;# 配置
systemctl stop mysqld 
1. 备份原配置cp /etc/my.cnf /etc/my.cnf.bk
2. 删除或mv原来最初数据rm /var/lib/mysql/* /var/log/mysqld.log -rf  
3. 创建路径mkdir -p /data/mysql/{install,data,log,run}chown -R mysql:mysql /data/mysql/{install,data,log,run}mkdir -p /data/mysql/log/{binlog,relaylog}chown mysql.mysql -R /data/mysql/log/{binlog,relaylog}
4. 创建配置文件,信息如【附录】,注意修改ip、id等
5. 初始化mysqld --initialize  --user=mysql 
6. 启动mysqlsystemctl start mysqld  systemctl status mysqld  
7. 获取初始密码/修改默认密码
【获取初始密码如上;日志文件:/data/mysql/log/mysqld.log】mysql  -uroot --socket=/data/mysql/run/mysql.socket -p> alter user root@'localhost' identified by 'Honops@123';> CREATE USER 'root'@'192.168.20.61' IDENTIFIED BY 'Honops@123'; > GRANT all PRIVILEGES on *.* to 'root'@'192.168.20.61';      > flush privileges;给予grant_priv(GRANT OPTION)权限
> select user,host,grant_priv from mysql.user where user="root";
> update  mysql.user set grant_priv="Y"  where user="root" and host="192.168.20.61";
> flush privileges;

2.2 配置主从

配置主从 
master主机执行
> CREATE USER 'repl'@'%' IDENTIFIED BY 'Slave123'; 
> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
> ALTER USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY 'Slave123';
> flush privileges;
> show master status;
slave主机执行
> change master to master_host='master主机ip',master_user='repl',-> master_password='Slave123', master_log_file='xxxx.xxxx',-> master_log_pos=xxxxx;
> start slave;
> show slave status\G

3. 依赖组件

#Nginx的yum源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true#安装Nginx
# yum install nginx -y# 替换epel源和新加webtatic源
yum install epel-release.noarch -y
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
rpm -ivh https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm#安装PHP  
yum -y install php74-php-xml php74-php-mysqlnd php74-php-bcmath   \
php74-php-mbstring php74-php-ldap php74-php-gd  php74-php-cli php74-php-fpm //cp /etc/php.ini /etc/php.ini.zabbixbak
cp /etc/opt/remi/php74/php.ini /etc/opt/remi/php74/php.ini.bk
sed -i 's/max_execution_time = 30/max_execution_time = 300/g' /etc/opt/remi/php74/php.ini
sed -i '/max_input_time =/s/60/300/' /etc/opt/remi/php74/php.ini
sed -i '/mbstring.func_overload = 0/a\mbstring.func_overload = 1' /etc/opt/remi/php74/php.ini
sed -i '/post_max_size =/s/8M/32M/' /etc/opt/remi/php74/php.ini
sed -i '/;date.timezone =/a\date.timezone = Asia/Shanghai' /etc/opt/remi/php74/php.ini# 启动
systemctl enable nginx  php74-php-fpm  --now # 获取源码包【https://www.zabbix.com/cn/download_sources】
mkdir -p /data/zabbix/{data,install,logs,php}
mkdir -p /var/run/zabbix
tar xf zabbix-6.4.3.tar.gz -C /data/zabbix/install/ 
cd /data/zabbix/install && mv zabbix-6.4.3/* . # 初始化mysql
> create database zabbix charset utf8 collate utf8_bin;
> CREATE USER 'zabbix'@'192.168.20.61' IDENTIFIED BY 'Zabb@321'; 
> GRANT all PRIVILEGES on zabbix.* to 'zabbix'@'192.168.20.61';   
> CREATE USER 'zabbix'@'localhost' IDENTIFIED BY 'Zabb@321'; 
> GRANT all PRIVILEGES on zabbix.* to 'zabbix'@'localhost';   
> CREATE USER 'zabbix'@'192.168.20.62' IDENTIFIED BY 'Zabb@321'; 
> GRANT all PRIVILEGES on zabbix.* to 'zabbix'@'192.168.20.62';   
> flush privileges;
> use zabbix;
> source /data/zabbix/install/database/mysql/schema.sql
> source /data/zabbix/install/database/mysql/images.sql 
> source /data/zabbix/install/database/mysql/data.sql
> source /data/zabbix/install/database/mysql/double.sql 
> source /data/zabbix/install/database/mysql/history_pk_prepare.sql

在这里插入图片描述

4. zabbix-server

# yum依赖
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 gcc gcc-c++ unixODBC-devel \
gnutls-devel  gnutls   		groupadd zabbix
useradd zabbix -g zabbix
echo "Os@pass12"| passwd --stdin zabbix# 安装[安装jdk,见附录]
cd /data/zabbix/install 
export CFLAGS="-std=gnu99"
./configure --prefix=/data/zabbix/data --enable-server \
--with-mysql=/usr/bin/mysql_config  \
--with-net-snmp --with-libxml2 --with-ssh2 --with-openipmi --with-zlib \--with-libpthread --with-libevent --with-openssl --with-ldap \--with-libcurl --with-libpcre  --enable-java --with-unixodbc \--with-jabber  #--with-gnutlsmake install# 配置文件
chown zabbix.zabbix /data/zabbix/{data,logs}/ -R 
chown zabbix.zabbix /var/run/zabbix/ -R 
cd /data/zabbix/data/etc/
cp zabbix_server.conf    zabbix_server.conf.bk ListenPort=10051
LogFile=/data/zabbix/logs/zabbix_server.log  
DBHost=192.168.20.61
DBName=zabbix
DBUser=zabbix
DBPassword=Zabb@321
DBPort=3306
Timeout=4
LogSlowQueries=3000
StatsAllowedIP=127.0.0.1
CacheSize=2048M
HANodeName=zab1
NodeAddress=192.168.20.61:10051
SocketDir=/var/run/zabbix
PidFile=/var/run/zabbix/zabbix_server.pid    # 启动
# vi /usr/lib/systemd/system/zabbix-server.service
[Unit]
Description=Zabbix Server
After=syslog.target
After=network.target
After=mysqld.service[Service]
User=zabbix
Group=zabbix
Environment="CONFFILE=/data/zabbix/data/etc/zabbix_server.conf"
Type=forking
PIDFile=/var/run/zabbix/zabbix_server.pid
Restart=on-failure
KillMode=control-group
ExecStart=/data/zabbix/data/sbin/zabbix_server -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
systemctl start zabbix-server
systemctl status zabbix-server
systemctl enable zabbix-server#####
# 替换zabbix前端
cp  -r /data/zabbix/install/ui/* /data/zabbix/php/# 配置nginx
vi /etc/nginx/conf.d/conn.conf  
server {                                                                                                                                                     listen       80;                                                                                                                                     server_name  192.168.20.61;                                                                                                                          
location / {                                                                                                                                                 root /data/zabbix/php;                                                                                                                          try_files $uri $uri/ /index.php?query_string;                                                                                                   index index.php index.html index.htm;                                                                                                           }                                                                                                                                                    
location ~ .php$ {                                                                                                                                           root   /data/zabbix/php;                                                                                                                         fastcgi_pass   127.0.0.1:9000;                                                                                                                   fastcgi_index  index.php;                                                                                                                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;                                                                                include        fastcgi_params;                                                                                                                   }                                                                                                                                                    
}  重启nginx后
访问ip/zabix
配置并下一步
Zabbix图形会出现无法显示中文字体的情况 :windows的字体路径C:\Windows\Fonts  随便【中文】字体
替换  /data/zabbix/php/assets/fonts/DejaVuSans.ttf  名称保留DejaVuSans
之后刷新页面

5. agent

5.1 yum

rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/7/x86_64/zabbix-release-latest.el7.noarch.rpm        
yum repolist   yum install zabbix-agent2 -ycp /etc/zabbix/zabbix_agent2.conf  /etc/zabbix/zabbix_agent2.conf.bk https://zhuanlan.zhihu.com/p/322151059
修改配置:
Server=192.168.20.61 
ServerActive=192.168.20.61 
Hostname=zab1 【注意,ServerActive在ha模式时候,用;分隔】systemctl enable zabbix-agent2  --now 

5.2 编译

# yum install go -y  mkdir -p /data/zabbix_agent/{data,logs,install}
mkdir -p /var/run/zabbix_agenttar xf zabbix-6.4.3.tar.gz -C /data/zabbix_agent/install/ 
cd /data/zabbix_agent/install && mv zabbix-6.4.3/* . cd /data/zabbix_agent/install 
export CFLAGS="-std=gnu99"
./configure --prefix=/data/zabbix_agent/data  --enable-agent2 
make install# 配置文件
chown zabbix.zabbix /data/zabbix_agent/{data,logs}/ -R 
chown zabbix.zabbix /var/run/zabbix_agent/ -R 
cd /data/zabbix_agent/data/etc/
cp zabbix_agent2.conf   zabbix_agent2.conf.bk
修改配置:
Server=192.168.20.64
ServerActive=192.168.20.64 
Hostname=pro# vi /usr/lib/systemd/system/zabbix-agent2.service
[Unit]
Description=Zabbix Agent 2
After=syslog.target
After=network.target[Service]
Environment="CONFFILE=/data/zabbix_agent/data/etc/zabbix_agent2.conf"
Type=simple
Restart=on-failure
PIDFile=/var/run/zabbix_agent/zabbix_agent2.pid 
KillMode=control-group
ExecStart=/data/zabbix_agent/data/sbin/zabbix_agent2 -c $CONFFILE
ExecStop=/bin/kill -SIGTERM $MAINPID
RestartSec=10s
User=zabbix
Group=zabbix
LimitNOFILE=8192[Install]
WantedBy=multi-user.targetsystemctl daemon-reload
systemctl start zabbix-agent2
systemctl status zabbix-agent2
systemctl enable zabbix-agent2

附录

my.cnf

[mysqld]
character-set-server=utf8
datadir=/data/mysql/data
socket=/data/mysql/run/mysql.socket
bind-address=192.168.30.51
port=3306
user=mysql
slow_query_log=1
slow_query_log_file=/data/mysql/log/slow-query.log
log-error=/data/mysql/log/mysqld.log
max_connections=1000
sql_mode=''
expire_logs_days = 3 
#开启 GTID
gtid_mode=ON
enforce_gtid_consistency=ON
# innodb
default-storage-engine=innodb
innodb_buffer_pool_size=4086M
innodb_data_file_path=ibdata1:1G:autoextend
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=0
innodb_lock_wait_timeout=50
innodb_log_buffer_size=32M
innodb_log_file_size=256M
innodb_log_files_in_group=4
innodb_strict_mode=off
innodb_thread_concurrency=16
interactive_timeout=10800
key_buffer_size=64M
log_bin=/data/mysql/log/binlog/binlog.bin
log_bin_trust_function_creators=1
log_error_verbosity=1
log_slave_updates=1
log_slow_admin_statements=ON
log_timestamps=SYSTEM
long_query_time=1
max_allowed_packet=256M
max_binlog_size=256M
max_connect_errors=99999999
myisam_sort_buffer_size=64M
net_read_timeout=999
net_write_timeout=999
performance_schema=OFF
read_buffer_size=2M
relay_log_recovery=1
relay-log=/data/mysql/log/relaylog/relay-log.bin
replicate-wild-ignore-table=mysql.%
secure_file_priv=
skip-external-locking
skip-name-resolve
skip-symbolic-links
slave_compressed_protocol=1
slave_exec_mode=idempotent
slave_parallel_workers=0
sort_buffer_size=2M
stored_program_cache=1024
sync_binlog=0
table_open_cache=2000
thread_cache_size=8
wait_timeout=10800
server-id=1

JDK

mkdir -p /jdk
vi + /etc/profile
#new add
export JAVA_HOME=/jdk/TencentKona-11.0.14.b1
export JAVA_BIN=/jdk/TencentKona-11.0.14.b1/bin
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME JAVA_BIN PATH CLASSPATHsource /etc/profile

默认端口号

在这里插入图片描述

相关文章:

zabbix学习1--zabbix6.x单机

文章目录 1. 环境2. MYSQL8.02.1 单节点2.2 配置主从 3. 依赖组件4. zabbix-server5. agent5.1 yum5.2 编译 附录my.cnfJDK默认端口号 1. 环境 进入官网查看所需部署环境配置以及应用版本要求https://www.zabbix.com/documentation/current/zh/manual/installation/requiremen…...

Flink 的 Kafka Table API Connector

Flink datastream connectors 和 Flink table api connectors 的区别: Flink DataStream Connectors和Table API Connectors是Flink中用于连接外部数据源的两种不同的连接器。 1. Flink DataStream Connectors: - Flink DataStream Connectors是用于将外部数据源连…...

tcpdump 命令

一、TCPDUMP指定IP 在网络流量分析过程中,我们经常需要对指定的IP进行抓取和分析。使用TCPDUMP指定IP非常简单,只需要通过命令行参数-i指定需要抓取的网卡,并使用host参数指定目标IP地址即可:tcpdump -i eth0 host 192.168.0.1 上…...

哪些测试项目可以使用自动化测试?

通常,软件测试v的测试方式分为人工测试和自动化测试,人工测试是由测试人员编写并执行测试用例,然后观察测试结果与预期结果是否一致的过程;自动化测试是通过测试工具来代替或辅助人工去验证系统功能是否有问题的过程。 采用自动化测试需要满…...

【八大经典排序算法】冒泡排序

【八大经典排序算法】冒泡排序 一、概述二、思路解读三、代码实现四、优化 一、概述 冒泡排序由于其简单和易于理解,使其成为初学者学习排序算法的首选,也是初学者接触到的第一个排序算法。其原理是通过重复交换相邻的元素来将最大的元素逐步“冒泡”到…...

【IEEE会议】第五届机器人、智能控制与人工智能国际学术会议(RICAI 2023)

【IEEE列表会议】第五届机器人、智能控制与人工智能国际学术会议(RICAI 2023) 2023 5th International Conference on Robotics, Intelligent Control and Artificial Intelligence 第五届机器人、智能控制与人工智能国际学术会议(RICAI 20…...

如何在本地 Linux 主机上实现 Yearning SQL 审核平台的远程访问?

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…...

android.support.multidex.MultiDexApplication:DexPathList

修改项目的build.gradle文件,使用multidex并添加multidex库作为依赖,如下所示: android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { compile com.android.support:multidex…...

云HIS医院信息化系统:集团化管理,多租户机制,满足医院业务需求

随着云计算、大数据、物联网等新兴技术的迅猛发展,HIS模式的理念、运行机制更新,衍生出了新的HIS模式——云HIS。云HIS是基于云计算、大数据、互联网等高新技术研发的医疗卫生信息平台,它实现了医院信息化从局域网向互联网转型,并…...

Docker拉取nginx镜像,部署若依Vue前端

前言 本文主要用来描述,如何用nginx部署若依项目的前端。 一、Docker 拉取 Nginx镜像 命令:docker pull nginx 二、Vue项目打包 2.1 先配置线上后端路径 说明:由于我打包命令是 npm run build:stage ,所以项目生效的环境文…...

简单介绍神经网络中不同优化器的数学原理及使用特性【含规律总结】

当涉及到优化器时,我们通常是在解决一个参数优化问题,也就是寻找能够使损失函数最小化的一组参数。当我们在无脑用adam时,有没有斟酌过用这个是否合适,或者说凭经验能够有目的性换用不同的优化器?是否用其他的优化器可…...

JL653—一个基于ARINC653的应用程序仿真调试工具

JL653是安装在PC机Windows操作系统上面的一层接插件,它能够真实地模拟ARINC653标准规定的功能性行为,从而可以供研发人员在PC机Windows环境下高效、快速的进行基于ARINC653的应用程序的开发、调试等。 JL653提供了ARINC 653 Part 1中要求的以下服务&…...

MQTT Paho Android 支持SSL/TLS(亲测有效)

MQTT Paho Android 支持SSL/TLS(亲测有效) 登录时支持ssl的交互 这是调测登录界面设计 代码中对ssl/tls的支持 使用MqttAndroidClient配置mqtt客户端请求时,不加密及加密方式连接存在以下几点差异: url及端口差异 val uri: String if (tlsConnect…...

STM32——SPI通信

文章目录 SPI(Serial Peripheral Interface)概述:SPI的硬件连接:SPI的特点和优势:SPI的常见应用:SPI的工作方式和时序图分析:工作模式传输模式与时序分析工作流程 SPI设备的寄存器结构和寄存器设…...

Linux虚拟机局域网IP配置

前言 应用程序包部署在主机(Window)的虚拟机(Linux CentOS7)上,把主机当做一个服务器,在局域网中访问部署在主机上的应用程序,配置Linux网络。 文章如有侵权,无意为之,…...

MacOS删除.DS_Store文件

目录 .DS_Store是什么删除命令防止再生命令 .DS_Store是什么 在 Mac OS X 系统下,几乎绝大部分文件夹中都包含 .DS_Store 隐藏文件,这里保存着针对这个目录的特殊信息和设置配置,例如查看方式、图标大小以及这个目录的一些附属元数据。 而在…...

ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小

文章目录 前言板子名称uboot Modelkernel 欢迎词、主机名 开机 logoLCD 控制台console 免登录命令提示符文件系统大小 前言 经过前面十篇文章的介绍,硬件部分调试基本完毕,接下来的文章开始介绍软件的个性化开发。 板子名称 uboot Model 既然是自己的…...

【Unity程序技巧】Unity中的单例模式的运用

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…...

java leetcodetop100 (3,4 )最长连续数列,移动零

top3 最长连续数列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 * * 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 * * * * 示例 1: * * 输入:nums [100,…...

用Vite从零到一创建React+ts项目

方式一:使用create-react-app命令创建项目 1、使用以下命令初始化一个空的npm 项目 npm init -y 2、输入以下命令安装React npm i create-react-app ps:如果失败的话尝试(1:使用管理员身份执行命令(2:切换镜像重…...

18.地下室的服务器

六月第一个周末的深夜,暴雨如注。陈远坐在书桌前,屏幕上是花花绿绿的监控图表,代表着他那台二手服务器资源使用率的曲线,正像垂死病人的心电图一样剧烈地上下跳动。CPU占用率长时间维持在90%以上,内存也逼近红线。这已…...

西门子博图V17变量导入昆仑通态MCGS Pro的保姆级避坑指南(含DB块偏移量设置)

西门子博图V17与MCGS Pro高效数据对接实战指南 在工业自动化系统集成中,西门子TIA Portal(博图)与昆仑通态MCGS Pro触摸屏的数据交互是常见需求。许多工程师在变量导入环节频繁遭遇DB块偏移量异常、变量名截断、数据类型不匹配等"暗坑&q…...

全域矩阵防封指南:脱离“连点器”思维,揭秘店群RPA底层的跨平台指纹隔离基建

大家好,我是林焱,一名专注电商底层业务逻辑与 RPA 自动化架构定制的独立开发者。 在 CSDN 的私信里,最近很多同行都在向我大吐苦水:“林大,我用 Python 写了一套非常完美的自动化脚本,单号跑的时候无比丝滑…...

2026年市面上的培训机构管理系统对比,谁才是性价比之王

教务是培训机构的 “心脏”,而排课是教务最核心、最耗时、最容易出错的环节。传统人工排课:打开 Excel,手动填教师、教室、学员、时间,反复核对冲突,排一周课表要 1–3 天,还经常出现:老师时间撞…...

dotUI设计系统生成器:基于品牌配置一键生成React组件库

1. 项目概述:dotUI,一个为品牌而生的设计系统在当今的Web开发领域,尤其是基于React的生态中,我们常常面临一个两难的选择:是使用现成的UI组件库快速搭建界面,还是投入大量时间从零开始构建一套完全符合品牌…...

别再手动下载了!用Chocolatey在Windows上一键安装Zookeeper 3.8.0

告别繁琐配置:用Chocolatey在Windows上极速部署Zookeeper 每次在Windows环境下部署Zookeeper,你是否还在重复下载压缩包、配置环境变量、修改配置文件的传统流程?对于追求效率的开发者而言,这种手动操作不仅耗时耗力,还…...

Radon实战指南:在CI/CD中集成Python代码质量检查的完整教程

Radon实战指南:在CI/CD中集成Python代码质量检查的完整教程 【免费下载链接】radon Various code metrics for Python code 项目地址: https://gitcode.com/gh_mirrors/rad/radon Radon是一个强大的Python代码质量分析工具,能够帮助开发者自动检测…...

海棠山铁哥:我写《凰标》,就是要打破资本定价权@凤凰标志

凰标宣言——夺回中国人的文化定价权流量高低决定作品好坏,资金投入定义内容价值。 当资本垄断审美、定价与生死, 创作者便只剩一条出路:宣战。一、资本逻辑:三座大山权力资本如何行使对创作者的结果审美话语权用流量模板批量复制…...

【ElevenLabs商业增长实战手册】:20年AI语音赛道老兵亲授从0到月营收$2M的7个关键跃迁节点

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs商业增长的核心范式迁移 传统AI语音服务商长期依赖“API调用量时长计费”模型,而ElevenLabs正系统性重构价值交付逻辑——从卖计算资源转向卖情感可信度与品牌声纹资产。这一迁移…...

功能开关与远程配置:现代Web应用安全发布与动态控制实践

1. 项目概述:从“快乐工具包”到现代应用配置管理 如果你是一名前端或全栈开发者,最近在关注状态管理或应用配置,可能已经听说过 happykit/flags 这个名字。乍一看,它像是一个关于“旗帜”或“开关”的库,但它的核心…...