Zabbix监控服务详解+实战

2023-11-14

目录

一、监控体系概述

1. 为什么需要监控

2. 监控目标与流程

(1)监控的目标

(2) 监控的流程

3. 监控的对象

(1)CPU监控

(2)磁盘监控

(3)内存监控

(4)网络监控

(5) 系统重要进程监控

(6)应用服务监控

(7)硬件设备监控

(8)安全监控

 (9)API接口监控

(10)业务监控 

二、Zabbix 简介

1. 概述

2. Zabbix 的功能

(1)数据收集

(2)数据存储

(3)灵活的阈值定义

(4)可配置的报警

(5)实时的而可视化图形展示

3. Zabbix 的工作原理

三、Zabbix 服务的部署与配置

1. 安装基础环境

(1)安装MySQL

(2)安装 Apache

(3)安装 PHP

2. 部署 Zabbix

(1)安装 Zabbix 存储库

(2)安装Zabbix服务器,前端,代理

(3)安装 Zabbix 前端

(4)编辑文件 /etc/yum.repos.d/zabbix.repo

(5)安装 Zabbix 前端包

(6)初始化数据库

(7)导入sql数据

(8)导入数据库架构后禁用log_bin_trust_function_creators选项 

(9)为 Zabbix 服务器配置数据库

(10)为 Zabbix 前端配置 PHP

 (11)启动Zabbix服务器和代理进程

(12)Web端安装

 四、Zabbix相关组件与概念

1. Zibbx的组件

(1)Zabbix Server

(2)Database Storage

(3)Web interface

(4)Agent

(5)Proxy

2. Zabbix 重要概念简介

(1)主机(host)

(2)主机组(host group)

(3)监控项(item)

(4)触发器(trigger)

(5)事件(event)

(6)动作(action)

(7)媒介(media)

(8)模板(template)

(9)通知(notification)

(10)报警升级(escalation)

(11)远程命令(remote command)

五、Zabbix监控实战操作

1. Agent端的部署与配置

(1)部署Agent端

(2)修改配置文件:

(3)启动 Agent 服务:

2. Web 端添加被监控主机

(1)创建主机

(2)填写主机信息

(3)选择模板 

(4)查看主机列表

3. 绘制图形展示

(1)创建聚合图形

(2)解决乱码问题

4. 创建自定义监控内容(key)

(1)命令行创建key

(2)Web端创建

(3)配置邮件报警通知

5. 自动发现(agent属于被动模式)

6. 自动注册(agent属于主动模式)


一、监控体系概述

1. 为什么需要监控

        服务器系统安装完成,部署完所需的服务之后,随着数据量、访问量的增大,随之带来的就是故障问题,为了快速有效、及时的发现问题,并第一时间得到报警信息,就引入了监控服务。对主机的监控、对系统的监控、对服务的监控,都是生产环境的日常需求。

2. 监控目标与流程

(1)监控的目标

  • 对系统、服务或平台实行不间断监控
  • 实时反映系统、服务或平台的运行状态信息
  • 提前预知可能存在的故障风险
  • 实现故障预警报警功能

(2) 监控的流程

  • 配置、收集监控数据
  • 存储监控数据
  • 分析、展示监控数据
  • 阈值报警(短信报警、微信报警、邮件报警等)

3. 监控的对象

(1)CPU监控

  • 监控CPU整体使用情况:用户态与内核态、空闲率等

  • 监控单个CPU的使用情况         

(2)磁盘监控

  • 监控磁盘容量:分区使用量(已用和可用)

  • 监控磁盘IO

  • 监控磁盘的数据读写 

(3)内存监控

        监控内存使用量(可用、已用)

(4)网络监控

  • 监控内网卡出入流量

  • 监控外网卡出入流量

  • 监控TCP状态 

(5) 系统重要进程监控

  • 监控系统进程状态

  • 监控系统服务进程开销

(6)应用服务监控

  • 监控应用的进程状态

  • 监控应用的端口状态

  • 监控一些个性化的需求 

(7)硬件设备监控

  • 监控网络设备:路由器、交换机、网关设备等

  • 监控服务器状态 

(8)安全监控

        安全监控在生产环境中用的比较多,一般会使用第三方监控产品,主要监控内容:

  • 恶意攻击
  • 程序漏洞
  • 异常流量 

 (9)API接口监控

        在一些复杂、大型的系统中,API的调用非常频繁,因此对API接口的监控非常重要,重点是监控其GET、POST、PUT等请求的相关指标,主要监控内容如下:

  • API接口的可用性
  • API接口的正确率
  • API接口的响应时间

(10)业务监控 

        对于一些电商平台,业务监控是重中之重。

二、Zabbix 简介

1. 概述

        Zabbix由Alexei Vladishev 创建,目前由Zabbix SIA开发与维护。

        Zabbix的功能非常强大,能保证服务器系统安全、稳定的运行。Zabbix提供灵活的报警机制,可以使系统管理员能够及时得知故障,并快速定位。Zabbix还可以提供友好的数据可视化功能,使你关心的数据和指标一目了然。

        Zabbix 由两部分组成:Zabbix Server 与可选组件 Zabbix Agent。

  • Zabbix Server:通过收集Agent传递过来的数据,写入数据库(MySQL等),最终通过PHP+Apache在web页面进行展示。
  • Zabbix Agent:通过被监控主机安装Agent的方式来采集数据(需要监控的数据)。

2. Zabbix 的功能

(1)数据收集

  • 具有可用性和性能检查功能

  • 支持SNMP(捕获和轮询) 

(2)数据存储

  • 可以存储历史数据

  • 可以存储配置数据

  • 可以存储监控数据 

(3)灵活的阈值定义

        用户可以非常灵活的定义监控阈值,Zabbix 也成为触发器。

(4)可配置的报警

        如短信、微信、邮件报警。 

(5)实时的而可视化图形展示

  • 使用自带的图形工具,实时展示被监控的项目

  • 具有多种Web可视化功能选择

3. Zabbix 的工作原理

        Zabbix 监控系统运行的大概流程如下。

        Zabbix Agent 安装在被监控的主机上,负责收集需要的各项数据,并将数据发送到Zabbix Server端,Zabbix Server 将传递过来的数据存储到数据库中,Zabbix Web端根据数据来展示和绘图。

三、Zabbix 服务的部署与配置

1. 安装基础环境

(1)安装MySQL

将安装包放在 /download 目录下:

#解压
[root@zy-host download]# tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

#改名
[root@zy-host local]# mv mysql-5.7.26-linux-glibc2.12-x86_64 mysql

#创建用户组
[root@zy-host local]# groupadd mysql
[root@zy-host local]# useradd -g mysql mysql

#创建data目录
[root@zy-host msyql]# mkdir data

#修改用户组权限
[root@zy-host local]#  chown -R mysql:mysql ./

#创建my.cnf文件
[root@zy-host local]# touch /etc/my.cnf

#写入内容
[root@zy-host local]# vim /etc/my.cnf
[root@zy-host local]# cat /etc/my.cnf 
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#设置3306端⼝
port = 3306
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装⽬录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放⽬录
datadir=/usr/local/mysql/data
# 允许最⼤连接数
max_connections=200
# 服务端使⽤的字符集默认为8⽐特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使⽤的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

#创建目录 修改权限
[root@zy-host local]# mkdir /var/lib/mysql
[root@zy-host local]# chmod 777 /var/lib/mysql

#正式安装
[root@zy-host mysql]# cd /usr/local/mysql/
[root@zy-host mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --
2023-01-10T05:14:37.706178Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-01-10T05:14:38.817683Z 0 [Warning] InnoDB: New log files created, LSN=45790
2023-01-10T05:14:38.940767Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2023-01-10T05:14:39.013507Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: ae825853-90a5-11ed-aee7-00163e0a8efb.
2023-01-10T05:14:39.026483Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2023-01-10T05:14:39.026961Z 1 [Note] A temporary password is generated for root@localhost: aq4BxwQUat/C

#复制启动脚本到资源目录
[root@zy-host mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld

#修改mysqld内容 修改其 basedir 和 datadir 为实际对应⽬录
[root@zy-host mysql]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

#⾸先增加 mysqld 服务控制脚本执⾏权限
[root@zy-host mysql]# chmod +x /etc/init.d/mysqld

#同时将 mysqld 服务加⼊到系统服务
[root@zy-host mysql]# chkconfig --add mysqld

#最后检查 mysqld 服务是否已经⽣效
[root@zy-host mysql]# chkconfig --list mysqld

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use 'systemctl list-unit-files'.
      To see services enabled on particular target use
      'systemctl list-dependencies [target]'.

mysqld         	0:off	1:off	2:on	3:on	4:on	5:on	6:off


#启动服务  如果启动不起来 检查是否有已经启动的
[root@zy-host mysql]# service mysqld start
Starting MySQL. SUCCESS! 

#加入环境变量 (最后一行)
[root@zy-host mysql]# vim ~/.bash_profile 
[root@zy-host mysql]# cat ~/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
export PATH=$PATH:/usr/local/mysql/bin

#刷新文件
[root@zy-host mysql]# source ~/.bash_profile

#登录MySQL
[root@zy-host mysql]# mysql -u root -p

#修改密码
mysql> alter user user() identified by "123456";
mysql> flush privileges;

[root@zy-host ~]# mysql -V
mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper

(2)安装 Apache

[root@zy-host ~]# yum install httpd -y

(3)安装 PHP

[root@zy-host ~]# yum install php -y

2. 部署 Zabbix

官方文档:下载并安装 Zabbix 5.0 LTS for CentOS 7、MySQL、Apache

(1)安装 Zabbix 存储库

[root@zy-host ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@zy-host ~]# yum clean all

(2)安装Zabbix服务器,前端,代理

[root@zy-host ~]# yum install zabbix-server-mysql zabbix-agent

(3)安装 Zabbix 前端

[root@zy-host ~]# yum install centos-release-scl

(4)编辑文件 /etc/yum.repos.d/zabbix.repo

[root@zy-host ~]# vim /etc/yum.repos.d/zabbix.repo

(5)安装 Zabbix 前端包

[root@zy-host ~]# yum install zabbix-web-mysql-scl zabbix-apache-conf-scl

(6)初始化数据库

#建库,创建用户并分配权限,刷新权限
# mysql -uroot -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> create user zabbix@localhost identified by 'Zabbix';
mysql> grant all privileges on zabbix.* to zabbix@localhost;
mysql> set global log_bin_trust_function_creators = 1;
mysql> quit;

(7)导入sql数据

[root@zy-host ~]# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

 可以看到表已经导入进去: 

(8)导入数据库架构后禁用log_bin_trust_function_creators选项 

# mysql -uroot -p
mysql> set global log_bin_trust_function_creators = 0;
mysql> quit;

(9)为 Zabbix 服务器配置数据库

编辑文件 /etc/zabbix/zabbix_server.conf,在最后一行加入:

DBPassword=password

(10)为 Zabbix 前端配置 PHP

编辑文件 /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf 取消注释并为您设置正确的时区

 (11)启动Zabbix服务器和代理进程

[root@zy-host ~]# systemctl restart zabbix-server zabbix-agent httpd rh-php72-php-fpm
[root@zy-host ~]# systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm

(12)Web端安装

1. 打开浏览器,访问 http://服务器IP/zabbix  即可进入安装界面:

 2. 点击下一步,进入依赖组件检测界面:

 3. 检测完成后,点击下一步, 进入数据库信息填写界面:

 注意1:

这里如果提示连接不上,是因为没有在mysql里开启远程主机登录:

 需要进入数据库执行以下命令:

mysql>  use mysql;
mysql> update user set user.Host='%' where user.User='zabbix';
mysql> flush privileges;

注意2:

 如果提示错误:The Zabbix database version does not match current requirements. Your database version: 5020000. 

进入数据库,执行以下命令:

mysql> use zabbix;
mysql> update dbversion set mandatory=4000000;
mysql> flush privileges;

4. 填写完之后,继续点击下一步,进入Zibbix Server配置界面: 

 5. 点击下一步,进入安装配置汇总界面:

6. 点击下一步,进入安装界面

7.  点击完成按钮,进入 Zibbx Web 登录界面:

默认用户为 Admin,密码为 zabbix

将界面改为中文:

 至此,整个安装过程结束。

 四、Zabbix相关组件与概念

1. Zibbx的组件

(1)Zabbix Server

        Zabbix Server负责接收Agent发送的数据及报告信息,并负责组织所有的配置、统计数据、操作数据。

(2)Database Storage

        Database Storage用于存储所有的配置信息以及收集的数据信息。

(3)Web interface

        Web interface 是Zabbix GUI的接口

(4)Agent

        Agent 安装部署在被监控的主机上,负责接收被监控主机的数据,并发往 Zabbix Server端或Proxy端。

(5)Proxy

        Proxy是一个可选组件,用在分布式监控环境中,负责代理Zabbix Server收集被监控主机的相关监控数据,并统一发往 Zabbix Server端。

2. Zabbix 重要概念简介

(1)主机(host)

        主机是指被监控的网络设备,可以是设备的IP地址,也可以是设备的主机名。

(2)主机组(host group)

        主机组是主机的逻辑容器,包含主机和模板,但在同一个组内的主机和模板之间不能互链接,主机组通常用于给指定用户或用户组分配指定监控权限。

(3)监控项(item)

        监控项是一个指定监控指标的相关数据,这些数据来自于被监控的对象。监控项是Zabbix进行数据收集的核心组件,对于特定的某个监控对象来讲,每个监控项都由“key”标识。

(4)触发器(trigger)

        触发器是一个表达式,用于评估被监控对象指定的item内接收到的数据是否在指定的合理范围内,也就是阈值。当接受的数据值大于指定阈值时,触发器的状态将从 OK 变为 Problem。当数据恢复到合理范围,状态又会变回 OK。

(5)事件(event)

        Agent宕机,重新上线,自动注册,触发器状态改变,都属于事件。

(6)动作(action)

        动作时对于指定的事件预先定义的处理方法,例如,发送通知或报警邮件。

(7)媒介(media)

        媒介是发送通知或报警信息的介质,如短信、微信、邮件。

(8)模板(template)

        模板是用于快速配置被监控主机的预设条目的集合,通常包括 item、trigger、graph、screen等。

(9)通知(notification)

        通知是通过指定的媒介向用户发送相关的事件的信息。

(10)报警升级(escalation)

        报警升级是指发送报警或执行远程命令的自定义文案,例如,每隔30秒发送一次报警信息,一共发送5次。

(11)远程命令(remote command)

        远程命令是自定义的命令,在被监控的主机处于某个特定的条件时执行此命令。

五、Zabbix监控实战操作

1. Agent端的部署与配置

(1)部署Agent端

[root@node1 ~]# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
[root@node1 ~]# yum clean all
[root@node1 ~]# yum install zabbix-agent -y

(2)修改配置文件:

 在文件末尾添加以下内容

[root@node1 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=39.107.232.89           #Zabbix服务端IP
ServerActive=39.107.232.89     #Zabbix服务端IP
Hostname=node1                 #客户端主机名

(3)启动 Agent 服务:

[root@node1 ~]# systemctl start zabbix-agent

2. Web 端添加被监控主机

(1)创建主机

登录Web端页面,点击 配置-主机-创建主机:

(2)填写主机信息

填写要监控的主机信息后点击添加: 

(3)选择模板 

 (4)查看主机列表

3. 绘制图形展示

(1)创建聚合图形

在Web端界面选择 检测——聚合图形,进入创建图形初始界面:

点击创建聚合图形:

 点击右上角创建聚合图形:

 创建好如图所示:

(2)解决乱码问题

[root@zy-host ~]# yum -y install wqy-microhei-fonts
[root@zy-host ~]# \cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf

 可以看到乱码问题已解决:

4. 创建自定义监控内容(key)

需求:限制登录人数不超过3个,超过3个就发出报警信息。

(1)命令行创建key

        1)服务端安装 zabbix-get

#安装zabbix-get,用于服务端查看客户端信息
[root@zy-host ~]# yum install zabbix-get -y

         2)自定义key需要执行的 linux 命令:

该命令含义是:查看登录当前主机的用户有几个

#查看当前有谁登录了这台主机
[root@node1 ~]# who
root     pts/0        2023-01-11 10:08 (116.179.246.116)
root     pts/1        2023-01-11 10:39 (116.179.246.116)
#查看登录这台主机的人数
[root@node1 ~]# who | wc -l
2

        3)在node1主机上创建自定义key

[root@node1 ~]# cd /etc/zabbix/zabbix_agentd.d/

#在配置文件中创建自定义key为 login.user
[root@node1 zabbix_agentd.d]# vim user_login.conf
UserParameter=login.user,who | wc -l

#重启agent服务
[root@node1 zabbix_agentd.d]# systemctl restart zabbix-agent

         4)在服务端检查key是否可用

[root@zy-host ~]# zabbix_get -s '47.104.160.180' -p 10050 -k 'login.user'
3

(2)Web端创建

        分为以下几步:

        1)创建模板

找到创建的模板

        2)创建应用集(就像是文件夹,里面放入一堆监控项)

         3)创建监控项,自定义 item

        4)创建触发器

当监控项获取到值时,和触发器比较,判断是否报警

        5)创建图形展示

        6)将具体主机与该模板关联

        这里将node1主机与该模板关联

         7)查看图形

        查看node1主机的图形:

        8)触发报警

        在node1主机上登录4个用户,查看仪表板是否报警 

        可以看到在仪表盘以及出现提示:

 


(3)配置邮件报警通知

          1)登录网易邮箱获取授权码

         2)添加报警媒介类型

         3)点击用户设置,添加报警媒介

         4)启用动作:

         这样一来,如果有问题,就会触发这个动作,给管理员发送邮件。

5. 自动发现(agent属于被动模式)

        Zabbix server主动的去发现所有的客户端,然后将客户端的信息登记在服务端的机器上。缺点时 server 端压力比较大。

6. 自动注册(agent属于主动模式)

        Zabbix agent 主动上报自己的信息,发给 zabbix-server。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Zabbix监控服务详解+实战 的相关文章

  • 网络空间安全导论

    感谢戴银涛老师的指导 笔记时间有点儿久了 整理的时候一些图丢了 不过问题不大 网络空间安全导论 目录 1 信息安全概述 从网络信息系统的发展概述 从系统分析方法看信息与信息安全的关系 从信息安全技术史角度理解网络安全相关概念 网络信息系统安
  • 深入理解 TCP 协议:从原理到实战

    小册介绍 TCP 协议是我一直很想写的一个主题 因为 TCP 学起来实在是太痛苦了 刚参加工作时 TCP 协议一直是一个心头痛 知道皮毛 但是始终无法深入 在阅读了大量相关的书籍 做了很多网络编程方面的工作以后觉得掌握的过程太过曲折 这本小

随机推荐

  • 【前端代码实例】使用HTML5+CSS3+JavaScript制作一个响应式的后台管理系统~带侧边导航栏仪表盘功能

    bilibili在线视频演示地址 前端代码实例 使用HTML5 CSS3 JavaScript制作一个响应式的后台管理系统 带侧边导航栏仪表盘功能 效果图 简化版代码
  • C++学习(三十四)stdlib与cstdlib

    C语言中是有 include
  • 简单xml的使用以及xml的解析dom4j和jaxp

    1 xml的简介 w3c组织发布 extensible markup Language 可扩展标记型语言 也是使用标签操作 可扩展 html里面的标签是固定 每个标签都有特定的含义 xml标签可以自己定义 可以写中文的标签 用途 显示数据
  • shared_ptr智能指针的使用

    一 shared ptr简单说明 如果一个实例指针被多个对象使用 而调用者不知道该什么时候释放该实例 那么可以使用shared ptr来 托管 这个实例指针 当使用它的对象都被释放掉了 这个实例可以自动被释放 可能有点绕 简单地说 就是类A
  • ubuntu重启后分辨率为1024,nvidia-smi不能用-20200819

    无法连接NVIDIA驱动 NVIDIA SMI has failed because it couldn t communicate with the NVIDIA driver CASE SOLVED NVIDIA SMI has fai
  • Postgresql 常用命令合集-建议收藏

    ps 注意空格和指令正确 以下仅用于自己记录使用 1 基本命令 createdb 创建一个新的PostgreSQL的数据库 命令可以使用大写 createuser 创建一个新的PostgreSQL的用户 dropdb 删除数据库 dropu
  • mssql数据库,数据库同步,分布式数据库,数据库集群,如何实现

    由于项目需要 产品的部署必须考虑到安全和灾难的解决办法 由于之前一直做的的小项目 基本都是单服务器 单数据库结构 但是由于一次灾难 把这个问题提上了日程 本人资历浅薄 很多东西还不是很熟悉 最近在网上百度了一大堆相关的东西 基本有了大概的思
  • 玩转Jetson nano系列(1):Jetson nano编译安装ncnn

    整个安装流程基本按照官方的步骤 build ncnn for jetson 但是在jetson nano上安装时 遇到了glslang和vulkan引发的问题 Found glslangValidator GLSLANGVALIDATOR
  • strptime和strftime

    strptime 将时间字符串转为 struct tm 格式 头文件 include
  • TortoiseGit日常使用指南

    本文在介绍了软件安装和设置后 写了TortoiseGit 常用的一些功能 包括 创建新库 添加文件及文件夹 创建分支 看分支情况及修改log 比较版本差异 合并分支 其他操作 Stash 忽略文件本文不包括 Git 服务器设置 Push 版
  • 预见未来:超强元AI诞生,抓住这个机会,利用AI变现也变得更加容易

    目录 一 引言 二 介绍 三 技术展现 四 元AI架构图展现 五 元AI变现技巧 商业版说明 六 后期规划 一 引言 如何利用AI变现已经成为了当今各个行业亟需解决的问题 随着人工智能技术的快速发展和普及 越来越多的企业开始将其应用于产品研
  • 微信小程序地理位置接口wx.getLocation接口申请方法技巧

    我们在开发微信小程序的时候 提交审核微信官方就会检测咱们的小程序有没有用到位置功能 涉及用到哪个位置接口 然后就会要求我们先申请相应的位置接口 审核通过后才可以发布小程序 这个接口审核一直是让大家头痛的事情 有的小伙伴申请几十次都不给过 有
  • vue防抖 自定义ref实现输入框防抖

    防抖 debounce 当持续触发事件时 一定时间段内没有再触发事件 事件处理函数才会执行一次 如果设定的时间到来之前 又一次触发了事件 就重新开始计时 接下来我将带大家一步步分析如何把input防抖做到极致 首先需要把input 的双向绑
  • Web前端开发实训案例教程(初级)素材

    素材下载地址 Web前端开发实训案例教程 初级 素材 内容简介 本书是按照 Web前端开发职业技能等级标准 编写的配套实践教程 其中涉及的应用技术专题和项目代码均在主流浏览器中运行通过 本书结合大学计算机相关专业Web前端开发方向课程体系
  • windows下用cygwin编译android版ijkplayer

    1 环境搭建 1 1 安装cygwin 并安装git make ysam 具体安装过程网上有很多资料 不再详述 1 2 android sdk和android ndk下载和安装 参见网上资料 1 3 下载ijkplayer源码 git cl
  • 【StyleGAN补充材料】 A Style-Based Generator Architecture for Generative Adversarial Networks

    Supplemental Material A Style Based Generator Architecture for Generative Adversarial Networks 一 前言 1 Hyperparameters an
  • latex解决×叉符号(乘符号)如何打

    简单实用 直接取走 times times
  • 抽样技术--不等概率抽样

    文章目录 不等概抽样 放回不等概抽样 只抽取一个样本单元的不等概抽样 估计量 有放回不等概整群抽样 两阶段有放回不等概抽样 多阶段有放回不等概抽样 不放回不等概抽样 两阶段不放回不等概抽样 不等概抽样 提高估计精度 放回的PPS抽样简化方差
  • 无重复字符的最长字串

    给定一个字符串 s 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 s abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例 2 输入 s bbbbb 输出 1 解释 因为无重复字符的
  • Zabbix监控服务详解+实战

    目录 一 监控体系概述 1 为什么需要监控 2 监控目标与流程 1 监控的目标 2 监控的流程 3 监控的对象 1 CPU监控 2 磁盘监控 3 内存监控 4 网络监控 5 系统重要进程监控 6 应用服务监控 7 硬件设备监控 8 安全监控