[转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash

更快,elk,安装,使用指南,elasticsearch,kibana,logstash · 浏览次数 : 0

小编点评

## 生成内容时需要带简单的排版 **1. 排版标题** 标题应该简洁,直接描述文章内容。 **2. 排版内容** * 以段落格式排列内容。 * 使用空格缩进内容。 * 排版标题和内容之间使用空段。 **3. 排版图片** * 使用缩略图片。 * 排版图片与文字之间使用空段。 **4. 排版代码** * 使用缩略代码。 * 排版代码与文字之间使用空段。 **5. 排版其他** * 使用缩略符号。 * 排版其他与内容无关的内容。 **6. 排版格式** * 使用空白行缩进格式。 * 使用缩略符号。 **7. 排版示例** ``` **标题** Elasticsearch 8.3.3 配置 **内容** * 配置ES的地址 * 配置ES的索引名称 * 配置ES的用户名称和密码 **图片** * 配置ES的日志采集地址 **代码** ``` // 配置ES的地址 es.config.hosts = ["https://192.168.242.15:9200"] // 配置ES的索引名称 es.config.index = "app-search-log-collection-%{+YYYY.MM.dd}" // 配置ES的用户名称和密码 es.config.user = "elastic"; es.config.password = "elastic"; ``` **8. 排版注意事项** * 排版时要注意格式。 * 排版时要注意内容之间的关系。 * 排版时要注意代码的格式。

正文

https://juejin.cn/post/7133907643386560519

 

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情

Elastic 8 的新特性

Elastic 8.0 版号称 比快更快 ,其新特性可参考 Elastic 官方博客:

Elastic 8.0 版:在速度、扩展、高相关性和简单性方面开启了一个全新的时代

本篇文章就直接来安装一下 Elastic 8 版本来瞅瞅。

安装 Elastic 三剑客:Elasticsearch,Kibana,Logstash

本文安装 Elastic 版本:8.3.3。

通过安装包安装

安装 Elasticsearch

 
sh
复制代码
cd /usr/local
# 下载安装包,文件大小有500多M
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.3-linux-x86_64.tar.gz
# 校验文件,后面校验的时候确保文件传输过程中没有被损坏
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.3.3-linux-x86_64.tar.gz.sha512

image-20220820115309399.png

如果无法使用 wget 下载,可先下载到本地,然后上传到服务器。

下载地址:www.elastic.co/downloads/e…

下载完成后,使用如下方式安装:

 
sh
复制代码
# 该步骤比较 tar.gz 安装包与发布的校验和,如果一直则输出 elasticsearch-8.3.3-linux-x86_64.tar.gz: OK
shasum -a 512 -c elasticsearch-8.3.3-linux-x86_64.tar.gz.sha512
# 解压
tar -xzf elasticsearch-8.3.3-linux-x86_64.tar.gz

解压之后的 elasticsearch-8.3.3 目录就是 ES 的家目录。

启动:

 
sh
复制代码
# 进入 ES 家目录
cd elasticsearch-8.3.3
# 使用如下命令启动 ES
./bin/elasticsearch

image-20220820120815982.png

这里有几个很明显的提示:

1. 有个告警:warning: ignoring JAVA_HOME=/usr/local/java; using bundled JDK ,Elasticsearch 安装包本身绑定使用的是 OpenJDK 。

Elasticsearch 使用 Java 构建,在每个发行版中都包含 OpenJDK 捆绑版本。 ES 推荐使用默认的 OpenJDK 的 JVM,该 JDK 位于$ES_HOME 的 jdk 目录中。

image-20220820121458160.png

当然也可以改成使用自己的 Java 版本,设置一下 ES_JAVA_HOME 环境变量,指向自己的 JDK 即可。

建议还是使用 ES 默认的 JDK 进行构建,无需其他额外的配置。

2. can not run elasticsearch as root :不能使用 root 用户来运行 ES。

创建一个 elastic 用户,使用该用户启动。

 
sh
复制代码
# 为 Elasticsearch 添加用户
useradd elastic
# 设置用户密码
passwd elastic
(elA3T*c0)
# 设置 $ES_HOME 的拥有者为 elastic
chown -R elastic /usr/local/elasticsearch-8.3.3

切换到 elastic 用户启动:

 
sh
复制代码
su elastic
cd elasticsearch-8.3.3
./bin/elasticsearch

启动过程中,打印出了一大堆东西:

image-20220820123657438.png

这是关于几个密码安全设置的,先放这里后面有用。

控制台最后打印出了如下内容:

image-20220820123831496.png

这其实是一个 Bug,详见 issue:github.com/elastic/ela…

我们可以通过配置文件设置不使用 GeoIpDownloader 。

另外,当我访问的时候:

image-20220820124255417.png

连接不上,我们可以设置 conf/elasticsearch.yml 的 network.host 配置项解决访问问题。

修改配置项:

 
yaml
复制代码
# 修改 network.host
network.host: 0.0.0.0
# 添加如下配置项,禁用 GeoIpDownloader
ingest.geoip.downloader.enabled: false

然后再次启动:

image-20220820124853795.png

果然该来的还是回来(之前安装 elasticsearch 7.10 就遇到过此问题),报错了:

 
sh
复制代码
bootstrap check failure [1] of [3]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
bootstrap check failure [2] of [3]: max number of threads [3795] for user [elastic] is too low, increase to at least [4096]
bootstrap check failure [3] of [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

这几个问题我在 这些Elasticsearch 7.10部署的问题,你遇到过吗 这篇文章中也有提及,这里再补充一下解决方案。

解决 max file descriptors 和 max number of threads 不够的问题:

 
sh
复制代码
# 在root用户下操作
vim /etc/security/limits.conf
# 修改最大进程数和最大线程数
# 在文件末尾添加
elastic hard nofile 65536
elastic soft nofile 65536
elastic hard nproc 4096
elastic soft nproc 4096

解决 max virtual memory areas vm.max_map_count 不够的问题:

 
sh
复制代码
# 在root用户下操作
vi /etc/sysctl.conf

# 在文件末尾添加
vm.max_map_count = 655360

# 保存退出
# 使之生效
sysctl -p

然后再次使用 elastic 用户启动就可以了。

启动完成之后我们来访问一下:http://192.168.242.15:9200 ,竟然还是显示如下错误访问不了:

image-20220820160227649.png

莫慌,我们再来浏览一下看一下 config/elasticsearch.yml 配置文件,看到这样一段配置:

 
yaml
复制代码
# Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
  enabled: true
  keystore.path: certs/http.p12

可以看到,ES 8 默认开启了 SSL ,我们可以把 xpack.security.http.ssl.enabled 设置为 false,再启动后就可以访问了。

但这里我们不修改这个配置,直接使用 https 访问,也是可以的:

image-20220820160841916.png

点“高级”,继续前往,选择信任就可以了,然后我们看到和之前的 ES 版本不同的是,这里需要输入密码:

image-20220820160928654.png

还记得前面第一次启动 ES 的时候有一堆密码的提示吧,那其中就有 elastic 登录密码。不过我们已经重启过好几次了,也没有保存密码,怎么办呢?

我们进入到 $ES_HOME/bin 目录下找找看有没有特别的工具:

image-20220820161358495.png

使用 elasticsearch-reset-password 可以修改密码,通常有两种方式:

1. 为 elastic 账号自动生成新的随机密码,输出至控制台

 
sh
复制代码
./elasticsearch-reset-password -u elastic

image-20220820161711447.png

2. 为 elastic 账号设置自定义密码

 
sh
复制代码
./elasticsearch-reset-password -u elastic -i

image-20220820161929240.png

OK,万事俱备了,现在再访问那个熟悉的 9200 ,输入用户名 elastic 和刚才自己设置的密码:

image-20220820162329779.png

这样就成功的安装了 Elasticsearch 8.3.3 了。

安装 Kibana

下面来通过安装包安装 Elastic 三剑客之一的 Kibana 。

Kibana 版本选择和 Elasticsearch 的版本一致即可,官方提供了一致的版本。

在确定 ES 的版本后,Kibana 和 Logstash 以及其他的一些组件均可以和 ES 的版本一致,这一点真是太爽了,不用考虑太多版本 Elastic 各个组件之间的兼容问题。

下载地址:www.elastic.co/downloads/k…

和安装 ES 的步骤基本相同:

 
sh
复制代码
# 下载安装包
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.3.3-linux-x86_64.tar.gz
# 下载校验文件
wget https://artifacts.elastic.co/downloads/kibana/kibana-8.3.3-linux-x86_64.tar.gz.sha512
# 校验
shasum -a 512 -c kibana-8.3.3-linux-x86_64.tar.gz.sha512
# 解压
tar -xzf kibana-8.3.3-linux-x86_64.tar.gz

Kibana 安装包大小 257 M。

以上步骤完成之后,通过安装 ES 的经验,我们先来看一下 kibana 的配置文件 config/kibana.yml,修改其中的 server.host,使其能够外网访问:

 
yml
复制代码
server.host: "0.0.0.0"

启动:

 
shell
复制代码
[root@elk8 kibana-8.3.3]# ./bin/kibana
Kibana should not be run as root.  Use --allow-root to continue.

这个就和 ES 的套路一样了,提示不应该用 root 用户启动,当然 Kibana 可用通过 --allow-root 用 root 用户启动。

不使用 root 用户登录的话,可以新建一个 kibana 用户,并设置 kibana-8.3.3 目录的拥有者为 kibana。

再次启动:

 
sh
复制代码
./bin/kibana --allow-root

image-20220820173737832.png

提示 Kibana 还未配置,我们按照提示,访问 http://192.168.242.15:5601/?code=263850 :

image-20220820173904012.png

那么这个 token 从哪里来呢?

可以使用 ES 的 elasticsearch-create-enrollment-token 命令为 Elasticsearch 节点和 Kibana 实例创建注册令牌:

image-20220820174407148.png

执行命令:

 
sh
复制代码
./elasticsearch-create-enrollment-token

image-20220820174555896.png

提示 -s 为必填项,这里我们是要将 kibana 加入,所以可以这样创建 token:

 
sh
复制代码
# $ES_HOME/bin 目录下
./elasticsearch-create-enrollment-token -s kibana

image-20220820174811054.png

复制生成的 token,填写:

image-20220820174935538.png

然后就会自动配置:

image-20220820175006564.png

配置完了以后,他竟然让我输入用户名密码:

image-20220820175059083.png

输入在安装 ES 时设置的用户名密码,即可进入:

image-20220820175400563.png

找到我们熟悉的 Dev Tools:

image-20220820175553247.png

美滋滋啊有木有!

安装 Logstash

这个就简单了,直接下载安装包解压使用即可。

 
sh
复制代码
# 下载
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.3.3-linux-x86_64.tar.gz
# 解压
tar -zxvf logstash-8.3.3-linux-x86_64.tar.gz

不同的用途有不同的配置,如果我们使用 Elasticsearch + Logstash 进行日志采集,可以这样配置:

拷贝一份 $LOGSTASH_HOME/config/logstash-sample.conf 配置文件,命名为 logstash-app-search.conf ,修改其内容为:

 
ini
复制代码
input {
  tcp {
    # Logstash 作为服务
    mode => "server"
    host => "192.168.242.15"
    # 开放9001端口进行采集日志
    port => 9001
    # 编解码器
    codec => json_lines
  }
}

output {
  elasticsearch {
    # 配置ES的地址
    hosts => ["https://192.168.242.15:9200"]
    # 在ES里产生的index的名称
    index => "app-search-log-collection-%{+YYYY.MM.dd}"
    user => "elastic"
    password => "elastic"
  }
  stdout {
    codec => rubydebug
  }
}

启动 Logstash :

 
sh
复制代码
logstash -f $LOGSTASH_HOME/config/logstash-app-search.conf

# 后台启动
# nohup logstash -f $LOGSTASH_HOME/config/logstash-app-search.conf &

具体的使用方式可看我之前的这篇文章,

10分钟部署一个ELK日志采集系统

有 Spring Boot 中用 ELK 采集日志 的说明。

以上,本次导航结束。

点个赞再走吧~

与[转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash相似的内容:

[转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash

https://juejin.cn/post/7133907643386560519 携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情 Elastic 8 的新特性 Elastic 8.0 版号称 比快更快 ,其新特性可参考 Elastic 官方博客:

[转帖]TCP流量控制_(滑动窗口)

一、TCP vs. UDP TCP可提供可靠的数据传输而UDP无法做到,那我们为什么还用UDP? ·使用UDP传送单条消息的开销要比TCP小 ·响应式通信,UDP的速度要比TCP快。 DNS是应用UDP的绝好例子。 但使用UDP又需要可靠性保证的应用程序必须自行实现可靠性保障功能。 如果需要更高级的

[转帖]协程切换和线程切换

先说结论:协程切换比线程切换快主要有两点: (1)协程切换完全在用户空间进行,线程切换涉及特权模式切换,需要在内核空间完成;(2)协程切换相比线程切换做的事情更少。 协程切换只涉及基本的CPU上下文切换,所谓的 CPU 上下文,就是一堆寄存器,里面保存了 CPU运行任务所需要的信息:从哪里开始运行(

[转帖]比 Python 快 35000 倍!LLVM&Swift 之父宣布全新编程语言 Mojo:编程被颠覆了

https://www.infoq.cn/article/GFfVLVpkIGOcKYB85Opb “Mojo 可能是近几十年来最大的编程语言进步。” 近日,由 LLVM 和 Swift 编程语言的联合创始人 Chris Lattner 创办的新公司 Modular AI 发布了一种名为 Mojo

[转帖]金仓数据库KingbaseES V8R6 中unlogged表

KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged。和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中。在数据库异常关机或者异常崩溃后该表的数据会被truncate掉,但是在写入性能上会比普通表快几倍。 这个特性类似于or

[转帖]磁盘缓存和内存缓存的区别

内存缓存 高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。 原理 Cache一词来源于1967年的一篇电子工程期刊

[转帖]rsync参数详解

最近经常需要传送文件,学习到rsync这个非常好用的工具。rsync的传输方不像是scp复制粘贴,而是是创建一个镜像,所以在传输效率上比scp命令要快很多,缺点就是对文件的属性如权限、用户、组、时间戳等会忽略,但是加上相关参数就可以很好的使用。在scp传输的过程/mnt和/mnt/在传输之后都会存在

[转帖]Elasticsearch部署配置建议

1: 选择合理的硬件配置:尽可能使用 SSD Elasticsearch 最大的瓶颈往往是磁盘读写性能,尤其是随机读取性能。使用SSD(PCI-E接口SSD卡/SATA接口SSD盘)通常比机械硬盘(SATA盘/SAS盘)查询速度快5~10倍,写入性能提升不明显。 对于文档检索类查询性能要求较高的场景

[转帖]nginx源码编译及优化

Apache与nginx的区别 apache: 进程,稳定模块超多,基本想到的都可以找到少bug ,nginx 的bug 相对较多 nginx: 线程,快,不稳定。多线程是共享的,一个线程出问题,其他的也会受牵连。7层调度,反向代理能力强。CDN这块nginx也用的多轻量级,同样起web 服务,比a

【转帖】Linux性能优化(十四)——CPU Cache

一、CPU Cache 1、CPU Cache简介 CPU Cache是位于CPU与内存之间的临时存储器,容量比内存小但交换速度却比内存要快得多。Cache的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,会使CPU花费很长时间等待数据到来或把数