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

Linux部署elk日志监控系统

目录

一、简介

二、部署elasticsearch

2.1 安装jdk11(jdk版本>=11)

2.2 下载安装包

2.3 授权elk用户 

2.4 配置elasticsearch.yml

2.5 启动elasticsearch

三、部署logstash

3.1 启动测试

3.2 可能出现的报错

3.3 指定配置文件启动logstash

3.4 安装Elasticsearch Head

3.4.1 安装谷歌插件

3.4.2 安装nodejs

四、部署kibana

4.1 修改配置文件并启动 


一、简介

ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

框架简介作用
Elasticsearch开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。接收搜集的海量结构化日志数据,并提供给kibana查询分析
Logstash开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中
Kibana开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持对elasticsearch提供的数据进行分析展示

应用场景:分布式部署项目,需要收集日志、微服务架构项目,收集各个服务的日志、大数据行业。

二、部署elasticsearch

如果是多节点,其他节点只需要安装elasticsearch即可。

11.0.1.16elasticsearch+logstash+kibana

 

2.1 安装jdk11(jdk版本>=11)

jdk安装包不能直接wget下载,oracle下载需要用户登录验证

jdk下载地址:Java Downloads | Oracle

[root@elk-16 /]# hostnamectl set-hostname elk-16
[root@elk-16 /]# ls /opt/jdk/
jdk-11.0.20_linux-x64_bin.tar.gz
[root@elk-16 /]# tar -zxf jdk-11.0.20_linux-x64_bin.tar.gz[root@elk-16 /]# vim /etc/profile
#文末添加两行,配置环境变量
export JAVA_HOME=/opt/jdk/jdk-11.0.20
export PATH=$JAVA_HOME/bin:$PATH
[root@elk-16 /]# source /etc/profile[root@elk-16 /]# java -version
java version "11.0.20" 2023-07-18 LTS
******

2.2 下载安装包

下载组件,注意版本保持一致

[root@elk-16 /]# mkdir /opt/elk
[root@elk-16 /]# cd /opt/elk
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/kibana/kibana-7.9.3-linux-x86_64.tar.gz
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/logstash/logstash-7.9.3.tar.gz
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-linux-x86_64.tar.gz
[root@elk-16 elk]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz

2.3 授权elk用户 

#解压
[root@elk-16 elk]# tar -zxf elasticsearch-7.9.3-linux-x86_64.tar.gz  -C /opt/elk/
[root@elk-16 elk]# tar -zxf kibana-7.9.3-linux-x86_64.tar.gz -C /opt/elk/
[root@elk-16 elk]# tar -zxf logstash-7.9.3.tar.gz -C /opt/elk/#创建elk用户
[root@elk-16 elk]# useradd elk#创建数据日志目录
[root@elk-16 elk]# mkdir /opt/elk
[root@elk-16 elk]# mkdir /var/log/elk/es7
[root@elk-16 elk]# mkdir /data/es7#elk用户授权
[root@elk-16 elk]# chown -R elk:elk /opt/elk
[root@elk-16 elk]# chown -R elk:elk /var/log/elk
[root@elk-16 elk]# chown -R elk:elk /data/es7[root@elk-16 opt]# chown -R elk:elk /opt/elk/logstash-7.9.3
[root@elk-16 opt]# chown -R elk:elk /opt/elk/kibana-7.9.3-linux-x86_64

2.4 配置elasticsearch.yml

更改配置文件elasticsearch.yml

#1、修改elasticsearch.yml配置文件vim /opt/elk/elasticsearch-7.9.3/config/elasticsearch.yml# ---------------------------------- Cluster -----------------------------------cluster.name: bigdata-elk# ------------------------------------ Node ------------------------------------node.name: elk-16# ----------------------------------- Paths ------------------------------------path.data: /data/es7path.logs: /var/log/elk/es7# ---------------------------------- Network -----------------------------------network.host: 0.0.0.0transport.host: 0.0.0.0network.publish_host: 11.0.1.16http.port: 9200# --------------------------------- Discovery ----------------------------------#如果有多节点,其他节点只需要安装es7,其余两个不用,并且这两行需要添加所有节点IP、主机名,用逗号“,”隔开discovery.seed_hosts: ["11.0.1.16"]cluster.initial_master_nodes: ["elk-16"]# ---------------------------------- Various -----------------------------------http.cors.enabled: true          http.cors.allow-origin: "*"        bootstrap.memory_lock: falsebootstrap.system_call_filter: false#2、修改系统参数,不修改可能达到系统瓶颈,导致软件崩溃echo "vm.max_map_count=655360" >> /etc/sysctl.confsysctl -p报错:sysctl: cannot stat /proc/sys/–p: No such file or directory执行以下命令:1、  modprobe br_netfilter2、  ls /proc/sys/net/bridge3、  sysctl -pvim /etc/security/limits.conf* soft nofile 65536* hard nofile 65536* soft nproc  65536* hard nproc  65536echo "elk     soft    nproc       65536" >> /etc/security/limits.d/20-nproc.conf#3、告警:Elasticsearch built-in security features are not enabled. Without authentication, your cluster could be accessible to anyone.
#在文件elasticsearch.yml中加入下面的配置
xpack.security.enabled: false

2.5 启动elasticsearch

注意切换到elk用户再启动elasticsearch

提示jdk版本过低(因为一开始我装的是jdk8,后面改了jdk11就没问题了)

[elk@elk-16 elk]$ /opt/elk/elasticsearch-7.9.3/bin/elasticsearch -d
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk/jdk1.8.0_381/jre] does not meet this requirement
future versions of Elasticsearch will require Java 11; your Java version from [/opt/jdk/jdk1.8.0_381/jre] does not meet this requirement

换到jdk11后,启动正常

[elk@elk-16 elasticsearch-7.9.3]$ /opt/elk/elasticsearch-7.9.3/bin/elasticsearch -d
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
******
For complete error details, refer to the log at /var/log/elk/es7/elk.log

ctrl+c不会停止elasticsearch,测试,有以下内容表示elasticsearch启动成功。

[root@elk-16 ~]# curl 127.0.0.1:9200
{"name" : "elk-16","cluster_name" : "elk","cluster_uuid" : "ZwKngvYkT82yM-lbqAgXXA","version" : {"number" : "7.9.3","build_flavor" : "default","build_type" : "tar","build_hash" : "c4138e51121ef06a6404866cddc601906fe5c868","build_date" : "2020-10-16T10:36:16.141335Z","build_snapshot" : false,"lucene_version" : "8.6.2","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

宿主机也测试一下,遇到过11.0.1.16本机可以访问,虚拟机宿主机却访问不了的情况,正常情况下本机宿主机都是可以访问的。 

如果想要结束elasticsearch进程,用kill命令结束进程

#查看进程号
ps -ef | grep elastic 或者 lsof -i:9200
kill -9 ***

三、部署logstash

3.1 启动测试

注意,解压logstash后可能会出现找不到java命令的情况,使用source /etc/profiles 刷新环境变量即可,测试启动logstash,出现“Successfully started Logstash API endpoint {:port=>9600}
”启动成功。

[root@elk-16 opt]# su elk
[elk@elk-16 opt]# cd /opt/elk/logstash-7.9.3
[elk@elk-16 logstash-7.9.3]# bin/logstash -e 'input {stdin {}} output {stdout {}}'
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.jruby.ext.openssl.SecurityHelper 
******
[2023-09-25T17:20:44,771][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}
hello
{"@timestamp" => 2023-09-25T14:36:42.644Z,"@version" => "1","host" => "elk-16","message" => "hello"
}#hello是我输入的,启动后会生成终端,可以随意输入,ctrl+c停止logstash运行

3.2 可能出现的报错

出现“Errno::EACCES - Permission denied - /opt/elk/logstash-7.9.3/data”,没有给elk用户授权/opt/elk/logstash-7.9.3

#无logstash-7.9.3/data无权限
[elk@elk-16 logstash-7.9.3]$ bin/logstash -e 'input { stdin { } } output { stdout {} }'
******
[ERROR] 2023-09-25 22:28:46.776 [main] Logstash - java.lang.IllegalStateException: Logstash stopped processing because of an error: (ArgumentError) Path "/opt/elk/logstash-7.9.3/data" does not exist, and I failed trying to create it: Errno::EACCES - Permission denied - /opt/elk/logstash-7.9.3/data

 如果授权后还是不行,尝试删除/opt/elk/logstash-7.9.3/data。删除后使用logstash命令会重新生产一个data目录。

[elk@elk-16 logstash-7.9.3]# bin/logstash -e 'input {stdin {}} output {stdout {}}'
******
[2023-09-25T17:25:46,132][ERROR][org.logstash.Logstash    ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (SystemExit) exit

3.3 指定配置文件启动logstash

更改配置文件需要切换回root用户,建议开两个终端,一个elk一个root,避免来回切换麻烦。

[elk@elk-16 logstash-7.9.3]# su root
[root@elk-16 logstash-7.9.3]# vim /opt/elk/logstash-7.9.3/config/test_file.confinput {file {path => ["/var/log/elk/es7/bigdata-elk.log"]type => "bigdata-elk"}
}output {elasticsearch {hosts => ["11.0.1.16:9200"]index => "sbigdata-elk-log-%{+YYY.MM.dd}"}
}

注意启动都是elk用户,指定配置文件启动logstash成功

[elk@elk-16 logstash-7.9.3]$ bin/logstash -f config/test_file.conf
******
[2023-09-26T10:42:02,634][INFO ][logstash.agent           ] Successfully started Logstash API endpoint {:port=>9600}

需要保证elasticsearch启动,没有启动会抛出拒绝连接错误

[2023-09-25T23:08:00,360][WARN ][logstash.outputs.elasticsearch][main] Attempted to resurrect connection to dead ES instance, but got an error. {:url=>"http://11.0.1.16:9200/", :error_type=>LogStash::Outputs::ElasticSearch::HttpClient::Pool::HostUnreachableError, :error=>"Elasticsearch Unreachable: [http://11.0.1.16:9200/][Manticore::SocketException] 拒绝连接 (Connection refused)"}

 打开新的终端,查看9200、9600

[root@elk-16 ~]# netstat -tulnp | grep 9600
tcp6       0      0 127.0.0.1:9600          :::*                    LISTEN      1755/java           
[root@elk-16 ~]# 
[root@elk-16 ~]# netstat -tulnp | grep 9200
tcp6       0      0 :::9200                 :::*                    LISTEN      1483/java  

3.4 安装Elasticsearch Head

两种方式,谷歌插件或者部署nodejs,可以观察集群监控状态

3.4.1 安装谷歌插件

下载谷歌插件Multi Elasticsearch Head,注意需要挂梯子,没条件请使用nodejs,打开插件,“New”,输入elasticsearch接口URL。

3.4.2 安装nodejs

github下载elasticsearch-head-master.zip传入/opt/elk目录

下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster

安装nodejs

#nodejs v14.15安装包
[root@elk-16 elk]# wget https://nodejs.org/dist/v14.15.0/node-v14.15.0-linux-x64.tar.xz
[root@elk-16 elk]# xz -d node-v14.15.0-linux-x64.tar.xz
[root@elk-16 elk]# tar -xf node-v14.15.0-linux-x64.tar[root@elk-16 elk]# unzip elasticsearch-head-master.zip#phantomjs 官网	https://phantomjs.org/download.html
[root@elk-16 elk]# wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
[root@elk-16 elk]# yum -y install bzip2 fontconfig-devel
[root@elk-16 elk]# tar -xvjf  phantomjs-2.1.1-linux-x86_64.tar.bz2#创建node、npm命令软连接
[root@elk-16 elk]# ln -s /opt/elk/node-v14.15.0-linux-x64/bin/node /usr/local/bin/node
[root@elk-16 elk]# ln -s /opt/elk/node-v14.15.0-linux-x64/bin/npm /usr/local/bin/npm
[root@elk-16 elk]# ln -s /opt/elk/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/local/bin/phantomjs#查看版本
[root@elk-16 elk]# node -v
v14.15.0
[root@elk-16 elk]# npm -v
6.14.8
[root@elk-16 elk]# phantomjs --version
2.1.1
#安装模块
[root@elk-16 elk]# cd /opt/elk/elasticsearch-head-master
[root@elk-16 elasticsearch-head-master]# npm install --registry=https://registry.npm.taobao.org

npm install 报错,npm install因为某些原因中断最好删除node_modules目录

npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js` 

#手动全局安装phantomjs-prebuilt@2.1.16
[root@elk-16 elasticsearch-head-master]# npm -g install phantomjs-prebuilt@2.1.16 --ignore-script

测试前台启动成功后ctrl+c再用后台启动

#前台启动
[root@elk-16 elasticsearch-head-master]# npm run start
******
Waiting forever...
Started connect web server on http://localhost:9100#后台启动
[root@elk-16 elasticsearch-head-master]# npm run start &
[root@elk-16 ~]# netstat -tulnp |grep 9100
tcp        0      0 0.0.0.0:9100            0.0.0.0:*               LISTEN      5080/grunt

四、部署kibana

4.1 修改配置文件并启动 

#修改配置文件
vim /opt/elk/kibana-7.9.3-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "11.0.1.16"
server.name: "bigdata-kibana"
elasticsearch.hosts: ["http://11.0.1.16:9200"]
logging.dest: /var/log/elk/kibana/kibana.log
i18n.locale: "zh-CN"#创建日志目录
mkdir /var/log/elk/kibana
chown -R elk:elk /var/log/elk/kibana#前台启动kibana
bin/kibana#后台启动kibana
bin/kibana &

查看9200 9600 9100 5601 端口,结束进程请使用kill命令 

通过查询端口号结束后台运行进程

[root@elk-16 /]# yum install -y lsof
[root@elk-16 /]# lsof -i:5601
[root@elk-16 /]# kill -9 ******

 访问 http://11.0.1.16:5601/

至此,elasticsearch+logstash+kibana日志监控系统部署完成。

参考文档:

https://www.cnblogs.com/wangzhuxing/p/9665905.html#_label1_1

ELK 安装部署(入门必备)_elk安装部署_与光同尘~追光者的博客-CSDN博客

logstash报错问题解决:Logstash stopped processing because of an error: (SystemExit) exit_BigCabbageFy的博客-CSDN博客

npm install 安装时i,报错 phantomjs-prebuilt@2.1.16 install: `node install.js`-CSDN博客

相关文章:

Linux部署elk日志监控系统

目录 一、简介 二、部署elasticsearch 2.1 安装jdk11(jdk版本>11) 2.2 下载安装包 2.3 授权elk用户 2.4 配置elasticsearch.yml 2.5 启动elasticsearch 三、部署logstash 3.1 启动测试 3.2 可能出现的报错 3.3 指定配置文件启动logstash 3.4 安装El…...

LINUX -SQL笔记(自学用)

1.安装 sudo apt-get install mysql-server sudo mysql -u root -p2.关系模型 在关系数据库中,一张表中的每一行数据被称为一条记录。一条记录就是由多个字段组成的。 每一条记录都包含若干定义好的字段。同一个表的所有记录都有相同的字段定义。 对于关系表&#…...

【Spark】win10配置IDEA、saprk、hadoop和scala

终于,要对并行计算下手了哈哈哈。 一直讲大数据大数据,我单次数据处理量大概在1t上下,是过亿级的轨迹数据。 用python调用multiprogress编写的代码,用多线程也要一个多月跑完。 我对这个效率不太满意,希望能快一点再快…...

MQTT 协议概要

01 MQTT协议 MQTT(消息队列遥测传输) 是基于 TCP/IP 协议栈而构建的支持在各方之间异步通信的消息协议。MQTT在空间和时间上将消息发送者与接收者分离,因此可以在不可靠的网络环境中进行扩展。虽然叫做消息队列遥测传输,但它与消息…...

向量数据库X云计算驱动大模型落地电商行业,Zilliz联合AWS探索并贡献成熟解决方案

近日,由Zilliz 联合亚马逊云科技举办的【向量数据库 X 云计算 驱动大模型落地电商行业】活动在上海落幕,获得业内专业人士的广泛好评。 众所周知,大模型技术的发展正加速对千行万业的改革和重塑,向量数据库作为大模型的海量记忆体、云计算作为大模型的大算力平台,是大模型…...

【vue2】解决Vuex刷新页面数据丢失的问题

最近写vue2 项目需要用到vuex, 但遇到一个问题,存进store里的数据刷新就丢失了,于是乎百度解决。将自己的感受与解决方法记录下来。 数据丢失的原因 vuex存储的数据只是在页面中,相当于全局变量,页面刷新的时候vuex里的数据会重…...

小皮面板配置Xdebug,调试单个php文件

小皮面板配置Xdebug 首先下载phpstrom,和小皮面板 打开小皮面板,选中好要使用的php版本 然后点击【管理】> 【php扩展】> 【xdebug】 然后打开选中好版本的php位置 D:\Program_Files\phpstudy_pro\Extensions\php\php7.4.3nts打开php.ini文件…...

版本控制系统:Perforce Helix Core -2023

Perforce Helix Core是领先的版本控制系统,适用于需要加速大规模创新的团队。存储并跟踪您所有数字资产的更改,从源代码到二进制再到IP。连接您的团队,让他们更快地行动,更好地构建。 通过 Perforce 版本控制加速创新 Perforce H…...

回归预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据回归预测

回归预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据回归预测 目录 回归预测 | Matlab实现基于MIC-BP最大互信息系数数据特征选择算法结合BP神经网络的数据回归预测效果一览基本介绍研究内容程序设计参考资料 效果一览 基本介绍 Matlab实现基于…...

Hive-命令行CDH访问开启kerberos的hive

1.通过hive用户访问 切换用户为hive [rootslave conf]# su - hive 上一次登录:五 4月 12 13:59:19 CST 2019pts/1 上 [hiveslave ~]$命令行直接输入hive就可以进入hive [hiveslave ~]$ hive log4j:WARN No such property [maxFileSize] in org.apache.log4j.Dail…...

手机能搜到某个wifi,电脑搜不到解决方法(也许有用)

方法一:更新驱动 下载驱动大师、驱动精灵等等驱动软件,更新网卡驱动 方法二 按 win 键,打开菜单 搜索 查看网络连接(win11版本是搜这个名字) 点击打开是这样式的 然后对 WLAN右击->属性->配置->高级 这…...

Java-day18(网络编程)

网络编程 1.概述 Java提供跨平台的网络类库,可以实现无痛的网络连接,程序员面对的是一个统一的网络编程环境 网络编程的目的:直接或间接地通过网络协议与其他计算机进行通信 网络编程的两个主要问题: 1.如何准确定位网络上一台…...

Java多线程编程-栅栏CyclicBarrier实例

前言 本文是基于《Java多线程编程实战指南-核心篇》第五章个人理解,源码是摘抄作者的源码,源码会加上自己的理解。读书笔记目前笔者正在更新如下, 《Java多线程编程实战指南-核心篇》,《How Tomcat Works》,再到《spr…...

【100天精通Python】Day67:Python可视化_Matplotlib 绘制动画,2D、3D 动画 示例+代码

1 绘制2D动画(animation) Matplotlib是一个Python绘图库,它提供了丰富的绘图功能,包括绘制动画。要绘制动画,Matplotlib提供了FuncAnimation类,允许您创建基于函数的动画。下面是一个详细的Matplotlib动画示…...

变量、常量以及与其他语言的差异 - Go语言从入门到实战

知识点 源码文件以_test结尾:xxx_test.go测试方法名以Test开头:func TestXXX(t *testing.T){…} 利用单元测试来写代码段,保存之后会自动运行程序返回结果,可以快速实践得到反馈。 编写测试程序 接下来练习一下,怎…...

Android 编译插桩操纵字节码

本文讲解如何编译插桩操纵字节码。 就使用 ASM 来实现简单的编译插桩效果,通过插桩实现在每一个 Activity 打开时输出相应的 log 日志。实现思路 过程主要包含两步: 1、遍历项目中所有的 .class 文件​ 如何找到项目中编译生成的所有 .class 文件&#…...

云原生的简单理解

一、何谓云原生? 一种构建和运行应用软件的方法 应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性分布式优势。 二、包括以下四个要素 采用容器化部署:实现云平…...

AVL Cruise 2020.1 安装教程

文章目录 安装包安装破解 安装包 链接:https://pan.baidu.com/s/1GxbeDj_SyvKFyPeTsstvTQ?pwd6666 提取码:6666 安装 安装文件: 双击setup.exe: 一直netx,中间要修改两次路径,第一次是安装位置&#xf…...

数组07-滑动窗口、HashMap

LeetCode——904. 水果成篮 你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩&#xff0c…...

【C++杂货店】类和对象(上)

【C杂货店】类和对象(上) 一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1 访问限定符4.2 封装 五、类的作用域六、类的实例化七、类对象模型7.1 类对象的存储规则7.2 例题7.3结构体内存对齐规则 八、this指针8.2 t…...

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

OpenLayers 可视化之热力图

注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

AspectJ 在 Android 中的完整使用指南

一、环境配置(Gradle 7.0 适配) 1. 项目级 build.gradle // 注意:沪江插件已停更,推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...