草庐IT

Linux上搭建ElasticSearch-8.x集群以及安装Kibana(保姆级安装教程)

从现在开始壹并超 2023-10-21 原文

Linux上搭建ES-8.x版本集群+安装Kibana

Linux版本下载地址:ES-8.1.0-linux

1. 搭建ES集群

1. 解压ES

tar -zxvf elasticsearch-8.1.0-linux-x86_64.tar.gz -C 指定解压的目录

2. 新增用户es,其数据文件和证书目录,修改为ES文件的拥有者

useradd es
passwd es
# 创建数据文件目录
mkdir /opt/module/es-8.1.0/data/
# 创建证书目录
mkdir /opt/module/es-8.1.0/config/certs
# 修改文件拥有者
chown -R es:es /opt/module/es-8.1.0

3. 在第一台服务器节点es-node-1设置集群多节点的通信密钥

su es
# 签发ca证书 直接敲回车 不需要输入密码
bin/elasticsearch-certutil ca
# 用ca证书签发节点证书 敲三次回车
bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
# 将生成的证书文件移动到config/certs目录中
 mv elastic-certificates.p12 config/certs

4. 在第一台服务器节点上设置集群HTTP证书

# 签发Https证书
bin/elasticsearch-certutil http
# 这里获取证书的步骤有点多,只需要注意下面的重要环节,其余可以直接回车跳过
# (手动输入elastic-stack-ca.p12的路径,输入三个节点的hostname以及ip地址,过期时间设置为5y)
# 命令执行成功在es主目录下生成elasticsearch-ssl-http.zip压缩文件
# 解压生成的zip文件
unzip elasticsearch-ssl-http.zip
# 证书文件移动到指定目录下
mv elasticsearch/http.p12 kibana/elasticsearch-ca.pem config/certs

这里获取证书的一些关键步骤如何操作,如下图:


5. 配置文件(其余节点的配置文件只需要修改node.name和network.host即可)

# ES集群配置
cluster.name: cluster-es
node.name: es-node-1
#设置数据
path.data: /media/es-8.1.0/elasticsearch-8.1.0/data/
path.logs: /media/es-8.1.0/elasticsearch-8.1.0/logs/
# 网络访问节点名称
network.host: linux1
# Rest访问端口9200 ES集群内部端口为9300
http.port: 9200
# 初始节点
discovery.seed_hosts: ["linux1"]
# 安全认证
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
  enabled: true
  keystore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/http.p12
  truststore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/http.p12
xpack.security.transport.ssl:
  enabled: true
  verification_mode: certificate
  keystore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
  truststore.path: /media/es-8.1.0/elasticsearch-8.1.0/config/certs/elastic-certificates.p12
# 集群初始化的主节点
cluster.initial_master_nodes: ["es-node-1"]
http.host: [_local_, _site_]
ingest.geoip.downloader.enabled: false
xpack.security.http.ssl.client_authentication: none  

6. 启动ES

bin/elasticsearch

如果出现下面这种结果,表示已经启动成功了。
ps: 这里有可能会报bootstrap checks filed,具体可以看下面的第九步

最好是截图或者复制这里的登录密码,方便后面登录使用

7. 其他两个从节点的配置

不需要再重新获取证书,使用es-node-1中的即可(http.p12elastic-certificates.p12的路径最好是和es-node-1保持一致,方便操作)
在配置文件中只需要修改node.namenetwork.host

8. 依次启动集群的三台服务器节点

三台服务器依次bin/elasticsearch -d 后台启动
这里如果不进行密码重置或者修改的话,三台机器登录的账号是共享密码的
p06Yi689YAq1YekNLJjA 三台机器可共用该密码进行登录)


9. 部分报错原因的解决方案

  1. vim config/jvm.options 修改配置文件中的-Xms和-Xmx参数,用于解决空间不足的问题
  2. bin/elasticsearch-reset-password -u elastic 重置登录es的密码
  3. bootstrap checks filed报错解决
  • 修改系统配置文件/etc/security/limits.conf
# 设置每个进程可以打开的文件数的限制
es - nproc 4096        # 设置线程数为4096 
es soft nofile 65536
es hard nofile 65536
  • 修改/etc/security/limits.d/20-nproc.conf
# 设置每个进程可以打开的文件数的限制
es soft nofile 65536
es hard nofile 65536
  • 修改/etc/sysctl.conf
一个进程可以拥有的VMA数量设置为655360(默认为65536)
vm.max_map_count=655360

最后使用sysctl -p重新加载,再去启动ES应该就没问题了。

访问https://虚拟机IP地址(或主机名):9200,用户名为elastic和对应的密码(也就是第六步中图中的那一串数字字母),可以看到页面返回一串json数据反馈ES集群的信息


2. Kibana安装

最好是下载和ES相同版本的Kibana,避免在启动过程中报稀奇古怪的错。。

1. 解压(与ES解压一样)

2. 在es中给kibana生成证书

# 生成一个csr-bundle.zip文件
bin/elasticsearch-certutil csr -name kibana -dns linux1
# 解压
unzip csr-bundle.zip
#得到kibana文件,注意啊,是将该目录下的两个文件移动到kibana的config目录下,而不是ElasticSearch的config目录
mv kibana.csr kibana.key /media/kibana-8.1.0/config//config/
# 生成crt文件
openssl x509 -req -in kibana.csr -signkey kibana.key -out kibana.crt

3. 修改kibana的配置文件

vim kibana.yml

# 服务端口
server.port: 5601
# 服务主机名
server.host: "linux1"
# 国际化
i18n.locale: "zh-CN"
# ES服务器主机地址
elasticsearch.hosts: ["https://linux1:9200"]
# 访问ES服务器的账号 密码
elasticsearch.username: "kibana"
elasticsearch.password: "AYcyG-icexpqNCnzPXty"

elasticsearch.ssl.verificationMode: none
elasticsearch.ssl.certificationAuthorities: ["/media/es-8.1.0/elasticsearch-8.1.0/config/certs/elasticsearch-ca.pem"]

server.ssl.enabled: true
server.ssl.certificate: /media/kibana-8.1.0/kibana-8.1.0/config/kibana.crt
server.ssl.key: /media/kibana-8.1.0/kibana-8.1.0/config/kibana.key

4. 修改kibana的文件拥有者

chown -R es:es kibana的解压目录

5. 切换到es用户,启动kibana

bin/kibana 前台启动

在启动kibana的时候,有可能会报下面的错误,无法授权给用户kibana

kibana启动报错: unable to authenticate user [kibana] for REST request …

那么这里就需要重置kibana的密码了,使用
bin/elasticsearch-reset-password -u kibana
可以在控制台看到重置后的密码,复制它替换到kibana.yml中的elasticsearch.password

6. 测试

访问kibana的客户端,https://虚拟机ip地址:5601
登录账户 elastic (注意啊,不是kibana用户登录)
密码还是上面生成的elastic的密码

有关Linux上搭建ElasticSearch-8.x集群以及安装Kibana(保姆级安装教程)的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 什么是填充的 Base64 编码字符串以及如何在 ruby​​ 中生成它们? - 2

    我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%

  3. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  4. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  5. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  6. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  10. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

随机推荐