ELK日志分析实战宝典之ElasticSearch从入门到服务器部署与应用

目录

ELK工作原理展示图

一、ElasticSearch介绍(数据搜索和分析)

1.1、特点

1.2、数据组织方式

1.3、特点和优势

1.3.1、分布式架构

1.3.2、强大的搜索功能

1.3.3、数据处理与分析

1.3.4、多数据类型支持

1.3.5、易用性与生态系统

1.3.6、高性能

1.3.7、灵活的数据模型

1.3.8、可视化和监控

1.4、Elasticsearch核心概念

二、Logstash介绍(数据处理和日志收集)

2.1、Logstash介绍

2.2、Logstash的stdin标注输入

2.3、Logstash的file输入文件

参数:

path

start_position

stat_interval

sincedb_path

discover_interval

exclude

ignore_older

2.4、Logstash过滤器值grok正则匹配

2.5、Logstash过滤器之mutate

2.6、Logstash过滤器之GeoIP地址查询

2.7、Logstash过滤器之useragent匹配归类

2.8、Logstash的output配置

2.9、Logstash的配置文件

三、Kibana介绍

四、ELK部署实战

4.1、Elasticsearch(ES)部署配置(Version: 8.17.0)

4.1.1、Elasticsearch(ES)下载安装

4.1.2、Elasticsearch(ES)配置

4.1.3、Elasticsearch配置参数解释

4.1.4、jvm堆大小配置

4.1.5、系统优化

4.1.6、启动ES


elk:日志搜集平台

Elastic StackELKElasticSearchLogstashKibana三个开源工具组成

ELK工作原理展示图

Logstash收集Appserver产生的log,并存放到ElasticSearch集群中,而Kibana则从ES集群中查询数据生成图标再返回给Browser

一、ElasticSearch介绍(数据搜索和分析)

ElasticSearch是一个基于Lucene的开源分布式搜索服务。用于处理大规模数据的快速检索和分析,并具有高可扩展性、高性能和强大的全文搜索能力。

1.1、特点

分布式,零配置,自动发现,索引自动分片,索引副本机制等。它提供了一个分布式多用户能力的全文搜索引擎。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 在elasticsearch中,所有节点的数据是均等的。

1.2、数据组织方式

索引(库)-->类型(表)-->文档(记录

1.3、特点和优势

综合来说就是搜索很快,支持多类型数据可以监控可视化,并且有丰富插件,还有就是能够数据冗余高可用

1.3.1、分布式架构

  1. 可扩展性:Elasticsearch采用分布式架构,数据存储在多个节点上。可以通过添加新节点轻松扩展集群,处理PB级别的数据。
  2. 数据冗余与高可用性:支持数据分片和副本机制。当某个节点出现故障时,副本分片可以立即接管工作,确保数据的可用性和搜索服务的正常运行。

1.3.2、强大的搜索功能

  1. 全文搜索:基于Lucene构建,提供了非常强大的全文搜索能力。能够理解文本的语义,对文档中的文本内容进行深度分析。
  2. 实时搜索:能够实时索引新数据并立即用于搜索。
  3. 复杂查询支持:支持多种复杂的查询类型,如布尔查询、范围查询、模糊查询等。

1.3.3、数据处理与分析

  1. 聚合功能:提供强大的聚合功能,可以对数据进行分组、统计和分析。
  2. 数据关联与嵌套查询:支持处理具有复杂结构的数据,包括数据的嵌套和关联关系。

1.3.4、多数据类型支持

  1. 通用数据类型支持:可以处理各种类型的数据,包括文本、数字、日期、地理位置等。
  2. 非结构化数据处理:尤其擅长处理非结构化数据,如日志文件、文档内容等。

1.3.5、易用性与生态系统

  1. 简单的API与RESTful接口:提供了简单易用的API,通过RESTful接口与外部应用进行交互。
  2. 丰富的插件与集成:拥有丰富的插件生态系统,可以与其他工具和技术进行集成。

1.3.6、高性能

  1. 快速搜索:Elasticsearch 优化了搜索速度,能够快速返回搜索结果,即使是在大规模数据集上。
  2. 高效索引:Elasticsearch 优化了数据索引过程,可以高效地处理大量数据的索引。

1.3.7、灵活的数据模型

  1. 无模式(Schema-less):Elasticsearch 是无模式的,这意味着你可以存储结构化、半结构化或非结构化的数据,无需预先定义数据结构。
  2. 动态映射:Elasticsearch 可以自动检测并映射新的字段,使得数据索引和搜索更加灵活。

1.3.8、可视化和监控

  1. Kibana:Elasticsearch 的可视化工具 Kibana 可以轻松创建图表和仪表板,帮助用户直观地理解数据。
  2. Elasticsearch 监控:提供了监控工具,可以监控集群状态、性能指标等。

1.4、Elasticsearch核心概念

  1. Cluster:集群,包含多个节点,每个节点属于哪个集群是通过一个配置来决定的,对于中小型企业刚开始集群就一个节点很正常
  2. Node:节点,集群中的一个节点,节点也要一个名称(默认是随机分配的),节点的名称很重要(在执行运维管理的时候方便故障排查),默认的节点会加入一个名称为“elasticsearch”的集群,如果直接启动一堆节点,那么它们会自动组成一个“elasticsearch”的集群,当然一个节点也可以组成一个集群。
  3. Document:文档,ES中最小的数据单元,一个document可以是一条客户数据,一条商品分类数据,一条订单数据,通常用JSON数据结构表示,每个index下的type中都可以存储多个document
  4. Index:索引,包含一堆相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单索引,索引有一个名称。
  5. Type:类型,每个索引里面都可以有一个或多个type,type是index的一个逻辑数据分类,一个type下的document有相同的filed。比如博客系统,有一个索引,一个用户数据type,博客数据type,评论数据type。
  6. shard:单机服务器无法存储大量数据,ES可以将一个索引中的数据分割为多个shard,分布在多台机器上存储,有了shard就可以横向扩展,存储更多的数据,让搜索和分析操作分布到多台机器上执行,提高吞吐量和性能。
  7. replica:任何一个服务器都会出现故障,此时shard可能会丢失,因此为每个shard建立多个replica副本,replica可以在shard故障时候提供备用服务

二、Logstash介绍(数据处理和日志收集)

Logstash的设计目的是为了简化从各种来源收集、转换和发送数据的过程,使其易于存储、分析和可视化。

2.1、Logstash介绍

Logstash是一个完全开源工具,可以对你的日志进行收集、过滤、分析,并将其存储供以后使用(如,搜索),logstash带有一个web界面,搜索和展示所有日志。 只收集和过滤日志,和改格式。(就是系统各个服务的日志,可以过滤并分析,还可以搜索指定服务的日志)

简单来说logstash就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端;与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供里很多功能强大的滤网以满足你的各种应用场景。

Logstash的事件(logstash将数据流中等每一条数据称之为一个event)处理流水线有三个主要角色完成:inputs –> filters –> outputs:

ogstash整个工作流分为三个阶段:输入、过滤、输出。每个阶段都有强大的插件提供支持:

Input (必须),设置数据来源

Filter(可选),负责数据处理与转换

output(必须),负责数据输出

2.2、Logstash的stdin标注输入

input {

  stdin {

    # 可选配置,例如添加字段或标签

    add_field => { "source" => "standard_input" }

    tags => [ "user_input" ]

  }

}

Logstash将从标准输入读取数据,并通过add_field添加一个额外的字段source,值为standard_input。tags配置用于添加标签user_input到事件中

filter {

  # 这里可以添加过滤器来处理输入数据

  # 例如,使用grok插件解析日志数据

  grok {

    match => { "message" => "%{COMBINEDAPACHELOG}" }

  }

}

output {

  # 输出处理后的数据到标准输出

  stdout { codec => rubydebug }

  

  # 或者输出到Elasticsearch

  elasticsearch {

    hosts => ["localhost:9200"]

    index => "myindex"

  }

}

2.3、Logstash的file输入文件

input {

  file {

    path => ["/var/log/messages", "/var/log/syslog"]

    start_position => "beginning"

    sincedb_path => "/var/lib/logstash/sincedb"

    stat_interval => 2

  }

}

Logstash会监控/var/log/messages和/var/log/syslog文件,从头开始读取文件内容,并将读取位置存储在/var/lib/logstash/sincedb中

参数:

path

指定要监控的文件或文件模式的路径。可以使用通配符来匹配多个文件。

示例:path => "/var/log/*.log"

start_position

指定Logstash开始读取文件的位置。可以是beginning(从头开始读取)或end(从文件末尾开始读取,类似于tail -F)。

示例:start_position => "beginning"

stat_interval

指定Logstash检查文件状态(如文件大小变化)的频率,以秒为单位。

示例:stat_interval => 2

sincedb_path

指定用于存储文件读取位置的数据库路径。Logstash会记录每个文件最后读取的位置,以便在重启后可以从上次中断的地方继续读取。

示例:sincedb_path => "/var/lib/logstash/sincedb"

discover_interval

指定Logstash发现新文件的频率,以秒为单位。

示例:discover_interval => 15

exclude

指定要排除的文件名模式。

示例:exclude => [ "*.gz", "*.zip" ]

ignore_older

指定忽略比指定时间更早的文件。

示例:ignore_older => 86400 (忽略一天前的文件)

2.4、Logstash过滤器值grok正则匹配

%{PATTERN_NAME:FIELD_NAME}

PATTERN_NAME 是预定义的正则表达式模式名称或自定义模式名称。

FIELD_NAME 是捕获的字段名,用于在Logstash事件中存储匹配的数据。

Logstash自带了许多预定义的Grok模式需要时百度

使用Grok过滤器解析Nginx访问日志的示例

filter {

  grok {

    match => { "message" => "%{NGINXACCESS} %{DATA:response_time} %{DATA:upstream_response_time}" }

  }

}

%{NGINXACCESS} 是一个预定义的Grok模式,用于匹配Nginx访问日志的常见格式。response_time 和 upstream_response_time 是自定义的字段名,用于捕获响应时间和上游响应时间。

2.5、Logstash过滤器之mutate

Logstash 的 mutate 过滤器是用于对重命名、删除、替换、修改数据类型等进行各种修改操作

filter {

  mutate {

    convert => { "age" => "integer" }          # 将 age 字段转换为整数类型

    gsub => [ "message", "\s+", "_" ]        # 将 message 字段中的多个空格替换为下划线

    split => [ "tags", "," ]              # 将 tags 字段根据逗号分隔为数组

    rename => { "old_name" => "new_name" }   # 将 old_name 字段重命名为 new_name

    remove_field => [ "temp_field" ]       # 删除 temp_field 字段

    add_field => { "new_field" => "new_value" } # 添加一个新字段 new_field,值为 new_value

  }

}

2.6、Logstash过滤器之GeoIP地址查询

GeoIP库可以根据IP地址提供对应的地域信息,包括国别,省市,经纬度等,对于可视化地图和区域统计非常有用。

单独安装命令

bin/logstash-plugin install logstash-filter-geoip

用例:

filter {

  geoip {

    source => "src_ip"         # 指定包含 IP 地址的字段名

    target => "geoip_data"    # 指定存储地理位置信息的字段名

    database => "/path/to/GeoLite2-City.mmdb" # 指定 GeoIP 数据库的路径

    # 可选的配置参数

    add_field => { "[geoip][coordinates]" => "%{[geoip][latitude]},%{[geoip][longitude]}" }

    remove_field => ["[geoip][database]" ] # 移除不必要的信息

  }

}

geolite库下载地址:https://dev.maxmind.com/geoip/geolite2-free-geolocation-data/

日志数据中有一个字段 src_ip 包含 IP 地址,通过上述配置,Logstash 将会使用 GeoIP 数据库来查询该 IP 地址的地理位置,并将结果存储在 geoip_data 字段中。结果可能包括国家名称 ([geoip][country_name])、城市名称 ([geoip][city_name])、经纬度 ([geoip][latitude] 和 [geoip][longitude]) 等信息。

2.7、Logstash过滤器之useragent匹配归类

解析用户代理(User-Agent)字符串,并从中提取有关用户设备的详细信息(操作系统、浏览器类型、版本号等)

安装命令

bin/logstash-plugin install logstash-filter-useragent

用例:

filter {

  useragent {

    source => "user_agent_string"   # 指定包含 User-Agent 字符串的字段名

    target => "user_agent_info"   # 指定存储解析后信息的字段名

    remove_field => ["user_agent_string"] # 可选:移除原始的 User-Agent 字段

  }

}

Logstash 将会解析User-Agent字符串,并将结果存储在 user_agent_info 字段中。

2.8、Logstash的output配置

Logstash 支持多种输出插件,使得数据可以流向各种不同的系统和服务,如 Elasticsearch、Kafka、文件系统、数据库等。

output {

  # 输出处理后的数据到标准输出

  stdout { codec => rubydebug }

  

  # 或者输出到Elasticsearch

  elasticsearch {

    hosts => ["localhost:9200"]

    index => "myindex"

  }

}

2.9、Logstash的配置文件

input {

  # 定义输入插件和配置选项

}

filter {

  # 定义过滤器插件和配置选项

}

output {

  # 定义输出插件和配置选项

}

、Kibana介绍

Kibana 是一个基于浏览器页面的Elasticsearch前端展示工具,也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮你汇总、分析和搜索重要数据日志

四、ELK部署实战

这里用单节点部署


4.1、Elasticsearch(ES)部署配置(Version: 8.17.0

4.1.1、Elasticsearch(ES)下载安装

新增repo配置yum源以下载 

[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=0
autorefresh=1
type=rpm-md
[root@ES ~]# yum install --enablerepo=elasticsearch elasticsearch

jdk下载对应芯片及服务器版本的。(Version: 8.17.0的ES需要17以上)

[root@ES ~]# yum install java-17-openjdk-devel
#设置环境变量
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH    
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar 
[root@ES ~]# java -version
openjdk version "17.0.13" 2024-10-15 LTS
OpenJDK Runtime Environment (Red_Hat-17.0.13.0.11-1) (build 17.0.13+11-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-17.0.13.0.11-1) (build 17.0.13+11-LTS, mixed mode, sharing)
4.1.2、Elasticsearch(ES)配置
#创建运行ES的普通用户
[root@ES ~]# useradd users
[root@ES ~]# echo "123456" | passwd --stdin "users"
Changing password for user elasticsearch.
passwd: all authentication tokens updated successfully.
#配置ES
#vim /etc/elasticsearch/elasticsearch.yml 
#sed -ri '/^#/d' /etc/elasticsearch/elasticsearch.yml 
#没配置集群发现,默认多播(multicast)发现其他集群节点
# 集群名称
cluster.name: elk
# 节点名称
node.name: elk01
# 配置集群的初始主节点
cluster.initial_master_nodes: ["elk01"]
# 角色配置
node.roles: ["master", "data"]
# 数据路径
path.data: /var/lib/elasticsearch
# 日志路径
path.logs: /var/log/elasticsearch
# 是否内存锁定
bootstrap.memory_lock: false
# 网络主机设置
network.host: 0.0.0.0
# HTTP 端口
http.port: 9200
# 启用 CORS
http.cors.enabled: true
# 允许的 CORS 来源
http.cors.allow-origin: "*"
#关闭安全功能
xpack.security.enabled: false
# 禁用 SSL 传输层安全性
xpack.security.transport.ssl.enabled: false
xpack.security.http.ssl.enabled: false
4.1.3、Elasticsearch配置参数解释

集群设置

cluster.name:my_cluster

集群名称,同一集群节点名称需相同

node.name

node-1

节点名称,唯一标识

node.master

true

节点是否为主节点(8.x已废弃)使用node.roles代替

node.data

true

节点是否存储索引数据

node.roles

["master", "data"]

8.x以上使用。 "master" 角色(参与主节点选举和管理集群状态),"data" 角色(存储和索引数据),"ingest" 角色(处理数据摄入管道)

discovery.seed_hosts

["host1", "host2", "10.211.55.10:9300"]

集群中用于节点发现

cluster.initial_master_nodes

["host1", "host2"]

集群初始化时参与主节点选举节点

discovery.zen.minimum_master_nodes

2

设置选举主节点时需要参与的最少候选节点数。官方推荐(n/2)+1

discovery.zen.ping.timeout

1s

节点发现过程中的 ping 超时时间

网络设置

network.host

0.0.0.0 

监听网络请求的接口地址

http.port

9200

 服务端口号,默认9200

transport.tcp.port

9300

TCP 端口号,默认9300

存储设置

path.data

/path/to/data

索引数据存储路径

path.logs

/path/to/logs

日志文件存储路径

path.plugins

/path/to/plugins

插件存放路径(默认是es根目录下的plugins文件夹)

内存设置

bootstrap.memory_lock

true

是否在启动时锁定内存,防止内存交换到磁盘flase为否

ES_JAVA_OPTS

-Xms2g -Xmx2g

Java虚拟机(JVM)的堆内存大小

索引设置

index.number_of_shards

5

新索引默认分片数量

index.number_of_replicas

1

新索引默认的副本数量

安全设置

xpack.security.enabled

true

是否启用 X-Pack 安全特性

xpack.security.transport.ssl.enabled

true

是否启用传输层的 SSL 加密

xpack.security.http.ssl.enabled

true

是否启用 HTTP 层的 SSL 加密

日志设置

logger.org.elasticsearch

INFO

日志级别,例INFO、DEBUG、TRACE 等

其他设置

bootstrap.system_call_filter

true

是否允许执行潜在危险的系统调用(已被移除)

http.cors.enabled 

true

是否启用跨域资源共享(CORS)

http.cors.allow-origin

"*"

允许跨域请求的来源

cluster.routing.allocation

"all"

控制分片的分配策略

cluster.routing.allocation.disk.watermark

85%

磁盘空间使用阈值

cluster.routing.allocation.balance

"0.45f"

分片在不同节点之间的平衡策略

4.1.4、jvm堆大小配置

内存最小值(Xms)与最大值(Xmx)的大小相同,防止程序在运行时改变堆内存的大小。

堆内存大小不要超过系统内存的50%

[root@ES ~]# vim /etc/elasticsearch/jvm.options
## -Xms4g
## -Xmx4g
4.1.5、系统优化

(重新登录/重启才生效)

[root@ES ~]# vim /etc/security/limits.conf 

#每个用户打开的最大文件描述符数量为 65536,超出则警告* soft nofile 65536#每个用户打开的最大文件描述符数量为 131072,超出则操作失败* hard nofile 131072#每个用户创建的最大进程数量为 2048,超出则警告* soft nproc 2048#每个用户创建的最大进程数量为 4096,超出则操作失败* hard nproc 4096
4.1.6、启动ES
设置文件权限chown -R elasticsearch:elasticsearch /etc/elasticsearchchown -R elasticsearch:elasticsearch /var/lib/elasticsearchchown -R elasticsearch:elasticsearch /var/log/elasticsearch为前面创建的普通用户添加访问权限[root@ES ~]# usermod -aG elasticsearch useres[root@ES ~]# id useres uid=1001(useres) gid=1001(useres) groups=1001(useres),979(elasticsearch)​​​​​​​切换为普通用户[root@ES ~]# su - useres [useres@ES ~]$ systemctl start elasticsearch.service ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====Authentication is required to start 'elasticsearch.service'.Authenticating as: adminPassword: ==== AUTHENTICATION COMPLETE ====

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年VGC大众汽车科技社招入职测评综合能力英语口语SHL历年真题汇总、考情分析

早在1978年,大众汽车集团就开始了与中国的联系。1984年,集团在华的第一家合资企业—上汽大众汽车有限公司奠基成立;1991年,一汽-大众汽车有限公司成立;2017年,大众汽车(安徽)有限公司…

嵌入式C语言:二维数组

目录 一、二维数组的定义 二、内存布局 2.1. 内存布局特点 2.2. 内存布局示例 2.2.1. 数组元素地址 2.2.2. 内存布局图(简化表示) 2.3. 初始化对内存布局的影响 三、访问二维数组元素 3.1. 常规下标访问方式 3.2. 通过指针访问 3.2.1. 指向数…

H2数据库在单元测试中的应用

H2数据库特征 用比较简洁的话来介绍h2数据库,就是一款轻量级的内存数据库,支持标准的SQL语法和JDBC API,工业领域中,一般会使用h2来进行单元测试。 这里贴一下h2数据库的主要特征 Very fast database engineOpen sourceWritten…

R语言在森林生态研究中的魔法:结构、功能与稳定性分析——发现数据背后的生态故事!

森林生态系统结构、功能与稳定性分析与可视化研究具有多方面的重要意义,具体如下: 一、理论意义 ●深化生态学理论 通过研究森林生态系统的结构、功能与稳定性,可以深化对生态系统基本理论的理解。例如,生物多样性与生态系统稳定性…

【C++经典例题】求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏: 期待您的关注 题目描述: 原题链接: 求123...n_牛客题霸_牛客网 (nowcoder.com) 解题思路: …

day01-HTML-CSS——基础标签样式表格标签表单标签

目录 此篇为简写笔记下端1-3为之前笔记(强迫症、保证文章连续性)完整版笔记代码模仿新浪新闻首页完成审核不通过发不出去HTMLCSS1 HTML1.1 介绍1.1.1 WebStrom中基本配置 1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标…

基于Springboot+Vue的仓库管理系统

开发一个基于Spring Boot和Vue的仓库管理系统涉及到前端和后端的开发。本文呢,给出一个简单的开发步骤指南,用于指导初入的新手小白如何开始构建这样一个系统,如果**你想直接学习全部内容,可以直接拉到文末哦。** 开始之前呢给小…

快速导入请求到postman

1.确定请求,右键复制为cURL(bash) 2.postman菜单栏Import-Raw text,粘贴复制的内容保存,请求添加成功

预训练语言模型——BERT

1.预训练思想 有了预训练就相当于模型在培养大学生做任务,不然模型初始化再做任务就像培养小学生 当前数据层面的瓶颈是能用于预训练的语料快被用完了 现在有一个重要方向是让机器自己来生成数据并做微调 1.1 预训练(Pre - training)vs. 传…

数字孪生电网有什么作用?实时云渲染技术又如何赋能智慧电网?

电网系统的结构比较复杂,传统运维模式主要是依赖传感器和人工巡检,难以全面监测管理。而数字孪生技术的应用将推动电网智能化、绿色化的高效转型。 智慧电网利用物理模型、现场测量数据和历史数据,结合云计算、物联网、大数据等技术&#xf…

MiniMind - 从0训练语言模型

文章目录 一、关于 MiniMind 📌项目包含 二、📌 Environment三、📌 Quick Start Test四、📌 Quick Start Train0、克隆项目代码1、环境安装2、如果你需要自己训练3、测试模型推理效果 五、📌 Data sources1、分词器&am…

EasyCVR视频汇聚平台如何配置webrtc播放地址?

EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持多协议接入,能将接入到视频流转码为多格式进行分发,包括RTMP、RTSP、HTTP-FLV、WebSocket-FLV、HLS、W…

【GlobalMapper精品教程】093:将tif影像色彩映射表(调色板)转为RGB全彩模式

参考阅读:【ArcGIS微课1000例】0137:色彩映射表转为RGB全彩模式 文章目录 一、Globalmapper中显示模式二、ArcGIS中显示模式三、调色板转为RGB全彩模式四、注意事项一、Globalmapper中显示模式 Globalmapper中,将谷歌等多种来源在线影像下载到本地后,可能会遇到以下数据格…

Postman接口测试05|实战项目笔记

目录 一、项目接口概况 二、单接口测试-登录接口:POST 1、正例 2、反例 ①姓名未注册 ②密码错误 ③姓名为空 ④多参 ⑤少参 ⑥无参 三、批量运行测试用例 四、生成测试报告 1、Postman界面生成 2、Newman命令行生成 五、token鉴权(“…

【css】浏览器强制设置元素状态(hover|focus……)

直接上步骤: 打开浏览器控制台 → 找到样式选项 → 找到:hov选项 → 点击:hov选项,会展开【设置元素状态】。 只要选中就会展示出自己写在css里面的该种状态下的样式了。

Springboot——钉钉(站内)实现登录第三方应用

文章目录 前言准备1、创建钉钉应用,并开放网页应用2、配置网页应用各项参数发布版本 前端改造后端逻辑1、获取应用免登录 Access_token2、通过免登录 Access_token 和 Auth_Code 获取对应登录人信息 注意事项 前言 PC端的钉钉中工作台,增加第三方应用&a…

完美解决VMware 17.0 Pro安装ubuntu、Deepin等虚拟机后卡顿、卡死问题

这两天在 VM 17 Pro 中安装了ubuntu 24.1 和Deepin 23.9 等Linux操作系统,在使用过程中出现过数次卡顿、卡死问题,现记录整理解决方法如下: 一、问题描述 安装虚拟机时、以及安装完成后正常使用时出现鼠标点击卡顿、系统反应慢、卡死等问题…

计算机的错误计算(二百零七)

摘要 利用两个数学大模型计算 arccot(0.125664e2)的值,结果保留16位有效数字。 实验表明,它们的输出中分别仅含有3位和1位正确数字。 例1. 计算 arccot(0.125664e2)的值,结果保留16位有效数字。 下面是与一个数学解题器的对话。 以上为与…

Linux内核TTY子系统有什么(6)

接前一篇文章:Linux内核TTY子系统有什么(5) 本文内容参考: Linux TTY子系统框架-CSDN博客 一文彻底讲清Linux tty子系统架构及编程实例-CSDN博客 linux TTY子系统(3) - tty driver_sys tty device driver-CSDN博客 Linux TTY …

03_Redis基本操作

1.Redis查询命令 1.1 官网命查询命令 为了便于学习Redis,官方将其用于操作不同数据类型的命令进行了分类整理。你可以通过访问Redis官方网站上的命令参考页面https://redis.io/commands来查阅这些分组的命令,这有助于更系统地理解和使用Redis的各项功能。 1.2 HELP查询命令…