在线客服

保姆级-贴心教导Elasticsearch+Kibana 源码安装部署

adminadmin 报建百科 2024-04-24 119 15
保姆级-贴心教导Elasticsearch+Kibana 源码安装部署

Elasticsearch 一种开源的搜索和分析引擎,旨在处理大量数据并提供实时搜索、分析和可视化功能。它可以处理各种类型的数据,包括结构化、非结构化和半结构化数据,并支持多种数据源,包括数据库、日志文件和外部API。Elastic还提供了一些工具和插件,用于数据可视化、监控和安全等方面的功能。Elastic被广泛应用于企业搜索、日志分析、安全分析、商业智能等领域。

Kibana是一个开源的数据可视化和分析平台,用于查询、分析和可视化 Elasticsearch 中的数据。它可以帮助用户以更直观的方式理解 Elasticsearch 中的数据,并从中获得有价值的见解。Kibana提供了各种图表和可视化工具,包括柱状图、饼图、折线图、地图等,可以根据用户的需要进行自定义设置。Kibana还支持实时数据查询和过滤,可以帮助用户快速识别和解决问题。

一、部署Elasticsearch7.6.2

环境:

[root@serverc ~]# hostnamectl  
   Static hostname: serverc
   Pretty hostname: ServerC
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 220aa23d5ed54dbf983eaa0433c46097
           Boot ID: 5a362eba6b954cf38fdeedbbdd879dcf
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-1160.90.1.el7.x86_64
      Architecture: x86-64

1-2. 下载Elasticsearch7.6.2

官网链接:下载 Elastic 产品 | Elastic

1-3 环境要安装jdk11

(这个jdk安装是因为我们的elasticsearch是java编写,所以需要jdK环境,具体版本我们可以询问官网或者chatgpt)

1-3-下载官网历史版本:www.oracle.com/technetwork…

1-3-2.下载jdk

点击具体JDK版本后进入详细下载界面如下:根据Linux操作系统位数下载正确的安装包 但是现在下载JDK安装包需要注册Oracle账号,嫌麻烦?放心,小饼已经给各位准备好了jdk1.8的安装包,来,张嘴~

百度网盘下载:pan.baidu.com/s/1a5Io5FFP… 提取码:0915

1-3-3部署jdk

[root@serverc ~]# tar -xaf  jdk-8u371-linux-i586\ \(1\).tar.gz 
[root@serverc ~]# cd jdk1.8.0_371/

[root@serverc ~]# mkdir  -p /home/local/java
[root@serverc ~]# mv jdk-11.0.19 /home/local/java/
[root@serverc ~]# cd /home/local/java/
[root@serverc java]# ls
jdk-11.0.19
[root@serverc java]# vim  /etc/profile
点击键盘 `i` 进行编辑;

将下面内容粘贴到末尾;
export JAVA_HOME=/home/local/java/jdk-11.0.19
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

按:wq保存退出

1-3-4 验证

[root@serverc java]# source  /etc/profile
[root@serverc java]# java --version 
openjdk 11.0.19 2023-04-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.19.0.7-1.el7_9) (build 11.0.19+7-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.19.0.7-1.el7_9) (build 11.0.19+7-LTS, mixed mode, sharing)

1-4 部署elasticsearch

1-4-1创建用户并授权

[root@serverc ~]# useradd es [root@serverc ~]# echo "redhat" | passwd es -f --stdin 更改用户 es 的密码 。 passwd:所有的身份验证令牌已经成功更新。

[root@serverc ~]# useradd  es 
[root@serverc ~]# echo "redhat" | passwd es -f --stdin 
更改用户 es 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@serverc ~]# cd  /opt/module/es/
[root@serverc es]# ls
elasticsearch-7.6.2-linux-x86_64.tar.gz
[root@serverc es]# tar  -xaf  elasticsearch-7.6.2-linux-x86_64.tar.gz 
[root@serverc es]# ls
elasticsearch-7.6.2  elasticsearch-7.6.2-linux-x86_64.tar.gz
[root@serverc es]# cd ..
[root@serverc module]# cd 
[root@serverc ~]# chmod   -R  777  /opt/module/es/ 
[root@serverc ~]# chown  es:es   /opt/module/es/ 
[root@serverc ~]# chown  -R es:es   /opt/module/es/ 
确保自定义(/opt/module/es)下所有文件都修改了为es用户es组
[root@serverc elasticsearch-7.6.2]# ls
bin  config  jdk  lib  LICENSE.txt  logs  modules  NOTICE.txt  plugins  README.asciidoc
[root@serverc elasticsearch-7.6.2]# ll  -d ./*
drwxrwxrwx.  2 es es   4096 3月  26 2020 ./bin
drwxrwxrwx.  2 es es    148 3月  26 2020 ./config
drwxrwxrwx.  9 es es    107 3月  26 2020 ./jdk
drwxrwxrwx.  3 es es   4096 3月  26 2020 ./lib
-rwxrwxrwx.  1 es es  13675 3月  26 2020 ./LICENSE.txt
drwxrwxrwx.  2 es es      6 3月  26 2020 ./logs
drwxrwxrwx. 38 es es   4096 3月  26 2020 ./modules
-rwxrwxrwx.  1 es es 523209 3月  26 2020 ./NOTICE.txt
drwxrwxrwx.  2 es es      6 3月  26 2020 ./plugins
-rwxrwxrwx.  1 es es   8164 3月  26 2020 ./README.asciidoc

1-4-2: 这里我们提前把可能出现的报错都提前做好,以免我们启动的时候出现报错

这下面的报错解决方法,我们先启动程序后,再去看,找对应的报错。不用上来直接改,不过改了也没毛病,冲!!

  1. 使用root用户启动报错:

解决方法: 以刚才我们自定义的用户去启动
[root@xxx bin]# su es 
[elasticuser@xxx bin]$ ./elasticsearch
  1. 启动报错: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

解决方法:
最大虚拟内存太小,在/etc/sysctl.conf文件最后添加一行
vm.max_map_count=655360
执行/sbin/sysctl -p 立即生效
/sbin/sysctl  -p 
重新启动elasticsearch即可
ps -ef  | grep  elasticsearch
kill  -9  2876900                                 ##这个pid进程号大家每个都不一样哈,以上面命令查到的为主

3.jvm 内存不足报错: Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)

这里的情况我们自定义为主哈,如果没有报错,大家就不要去修改jvm的参数,这个参数和后期查询数据的速度有很大关系!!!

解决方法:
1、killed服务,释放内存
2、由于 elasticsearch7.12.1 默认分配 jvm 空间大小为4g,修改 jvm空间分配

   修改elasticsearch安装目录下的config里的jvm.options

   vim config/jvm.options?
   -Xms1g 
   -Xmx1g 
   #可根据自己服务器内存大小设置合适的内存值
   #Xms512m 
   #Xmx512m
   保存配置文件,重启即可
  1. 文件权限报错:

解决方法: 打开文件权限

[root@serverc ~]# chmod  -R  777  /opt/module/es/elasticsearch-7.6.2
[root@serverc ~]# chown -R  es:es   /opt/module/es/elasticsearch-7.6.2
  1. 搜索进程太低:

ERROR: [1] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

解决方法:

编辑 /etc/security/limits.conf  
vi /etc/security/limits.conf,添加下面内容:  
* soft nofile 65536  
* hard nofile 65536  
之后重新登录es用户才有效。(提一嘴,如果有的同学用户不是es,是自定义的其他用户,那就使用自己自定义的)

1-5启动elasticsearch

1-5-1.创建程序日志,和数据存储位置,方便后期维护。

[root@serverc ~]# mkdir  -p /home/es/logs
[root@serverc ~]# mkdir  -p /home/es/data
[root@serverc ~]# chmod  -R  777  /home/es/logs/
[root@serverc ~]# chown   -R  es:es   /home/es/logs/
[root@serverc ~]# chown   -R  es:es   /home/es/data/
[root@serverc ~]# chmod  -R  777  /home/es/data/

1-5-2. 程序启动前,我们先去改一下配置文件的基础参数哈

# ======================== Elasticsearch Configuration =========================
#配置elasticsearch的集群名称,默认是elasticsearch 
cluster.name: my-elasticsearch-name 

#节点名,elasticsearch会默认随机指定一个名字 
node.name: node-1 

#network.host:设置为0.0.0.0允许外网访问 
network.host: 0.0.0.0 

#Elasticsearch的http访问端口 
http.port: 19200 

#初始化新的集群时需要此配置来选举
master cluster.initial_master_nodes: node-1

#自定义日志存储目录
path.logs: /home/es/logs

# 自定义数据存储目录
path.data: /home/es/data

1-5-3.部署成功

1-5-4.如果有同学没有到上一步,但是启动elasticsearch 也没有报错。同学们要排查一下自己的防火墙,(firewalld/iptables)别问为啥我知道,不说了,呜呜呜呜,接着看下面的处理吧!

解决方法:

[root@serverc ~]# firewall-cmd   --add-service=elasticsearch   --permanent
[root@serverc ~]# firewall-cmd   --add-port=19200/tcp     --permanent
[root@serverc ~]# firewall-cmd  --reload 
firewall-cmd  --reload

1-6 把es 做成服务,用system 管理

[root@serverc ~]# vim  /usr/lib/systemd/system/elasticsearch.service
[Unit]
Description=elasticsearch
After=network.target

[Service]
Type=forking
User=es                      ##启动elasticsearch 的用户,如果你不一样,记得修改
ExecStart=/opt/module/es/elasticsearch-7.6.2/bin/elasticsearch -d  ##这里写你的绝对路径
PrivateTmp=true
# 指定此进程可以打开的最大文件数
LimitNOFILE=65535
# 指定此进程可以打开的最大进程数
LimitNPROC=65535
# 最大虚拟内存
LimitAS=infinity
# 最大文件大小
LimitFSIZE=infinity
# 超时设置 0-永不超时
TimeoutStopSec=0
# SIGTERM是停止java进程的信号
KillSignal=SIGTERM
# 信号只发送给给JVM
KillMode=process
# java进程不会被杀掉
SendSIGKILL=no
# 正常退出状态
SuccessExitStatus=143

[Install]
WantedBy=multi-user.target


[root@serverc ~]# systemctl enable elasticsearch.service    ##刷新配置
Created symlink from /etc/systemd/system/multi-user.target.wants/elasticsearch.service to /usr/lib/systemd/s
ystem/elasticsearch.service.    

1-7.设置elascsearch的用户名和密码

手动设置密码 ##推荐使用
在此之前我们要先修改配置文件并打开安全验证功能

/opt/module/es/elasticsearch-7.6.2/config
[es@serverc config]$ vim elasticsearch.yml
#开启xpack
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

#证书配置(先生成证书文件)
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

1-7-1. 生成节点证书

root@serverc bin]# ./elasticsearch-certutil ca -out config/certs/elastic-certificates.p12 -pass

root@serverc ~]# cd   /opt/module/es/elasticsearch-7.6.2/
[root@serverc elasticsearch-7.6.2]# cd config/
[root@serverc config]# ls
certs                   elasticsearch.yml  log4j2.properties  roles.yml  users_roles
elasticsearch.keystore  jvm.options        role_mapping.yml   users

[root@serverc config]# cd certs/
[root@serverc certs]# ll
总用量 4
-rwxrwxrwx. 1 es es 2527 5月  17 16:07 elastic-certificates.p12

这里建议先配置生成节点证书,一定要检查自己config目录里面是否存在“elastic-certificates.p12”,上面证书配置如果不存在改文件,启动会报错!!!!!!

手动配置密码:
./elasticsearch-setup-passwords interactive

Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,
remote_monitoring_user.You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y


Enter password for [elastic]:    ##设置elastic 的密码,(123456)自定义哈,我图方便!生产环境中建议写复杂点         
Reenter password for [elastic]:  ## 重新确认一下密码
Enter password for [apm_system]: ## 
Reenter password for [apm_system]: 
Enter password for [kibana]: 
Reenter password for [kibana]: 
Enter password for [logstash_system]: 
Reenter password for [logstash_system]: 
Enter password for [beats_system]: 
Reenter password for [beats_system]: 
Enter password for [remote_monitoring_user]: 
Reenter password for [remote_monitoring_user]: 
12Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]

这里用户密码设置我有比较重要的用户我提一嘴哈! elastic 账号:拥有 superuser 角色,是内置的超级用户。

kibana 账号:拥有 kibana_system 角色,用户 kibana 用来连接 elasticsearch 并与之通信。Kibana 服务器以该用户身份提交请求以访问集群监视 API 和 .kibana 索引。不能访问 index。

logstash_system 账号:拥有 logstash_system 角色。用户 Logstash 在 Elasticsearch 中存储监控信息时使用。

账号: elastic 密码: 123456(刚才你们自己设置的啊,账号一样密码可能你们自己定义的不一样。如果有同学自定义的密码输入自己的密码啊)

1-7-2: 自动设置密码

./elasticsearch-setup-passwords auto

这种情况需要自己记住密码,而且密码很烦人。我特别不喜欢,表示非常恶心! 我觉得总有勇者想这么干,还是把方法写出来大家自己把握!

官方文档链接:www.elastic.co/guide/en/el…

2、到这里我们的es算h是ok了,接着我们来装kibana

3、kibana下载

1、下载链接Download Kibana Free | Get Started Now | Elastic

2.部署安装

[root@serverc ~]# mkdir    /opt/module/kibana
[root@serverc ~]# cd /opt/module/kibana/
[root@serverc kibana]# ls
kibana-7.6.2-linux-x86_64.tar.gz
[root@serverc kibana]# tar  -xaf kibana-7.6.2-linux-x86_64.tar.gz
[root@serverc kibana]# cd kibana-7.6.2-linux-x86_64/

######设置为es 用户和权限
[root@serverc module]# chmod -R  777  /opt/module/kibana/kibana-7.6.2-linux-x86_64 
[root@serverc module]# chown  -R  es:es   /opt/module/kibana/kibana-7.6.2-linux-x86_64 

3.修改配置文件(使用es用户,如果你使用root用户修改后文件所有者会改变)

[es@serverc config]$ vim kibana.yml
按i 添加如下数据
server.port: 5601                                       ##服务端口
server.host: 0.0.0.0                                    ##可访问的ip
elasticsearch.hosts: ["http://172.17.55.170:19200"]     ##elasticearch服务器的地址
elasticsearch.username: "kibana"                        ## 刚才设置的用户
elasticsearch.password: "123456"                        ## 密码
i18n.locale: "zh-CN"                                    ##设置为中文

4.重启服务

[es@serverc bin]$ ./kibana

出现了这个,证明你的kibana已经起来了

5.如果你出现了

这里是使用elastic用户去登录 切记!!!!!!!!

6.注册kibana服务并设置开机自启动

[root@serverc ~]# vim /usr/lib/systemd/system/kibana.service      ##注册服务的时候使用root用户
Unit]
Description=kibana
After=network.target

[Service]
Type=simple
User=es
ExecStart=/opt/module/kibana/kibana-7.6.2-linux-x86_64/bin/kibana 
PrivateTmp=true

[Install]
WantedBy=multi-user.target


[root@serverc ~]# systemctl  enable  kibana.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/kibana.service to /usr/lib/systemd/system/k
ibana.service.            ##注册成功

7.写到这里基本可以收工了,这里我们再来看看可视化界面的东西

后期在可视化界面可以修改elaticsearch用户的密码!!!

各位大佬们多多点赞,收藏,评论啊。小饼很需要你们的支持和鼓励! 这几天相当高产,一下子发布了三篇帖子,各位请求一个收藏、点赞支持!

本网站是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 本网站还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 除此之外,本网站还拥有一个活跃的社区,您可以在社区中与其他前端开发者交流技术、分享经验、解决问题。我们相信,社区的力量可以帮助您更好地成长和进步。 在本网站中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!
代办报建

本公司承接江浙沪报建代办施工许可证。
联系人:张经理,18321657689(微信同号)。

喜欢0发布评论

15条评论

  • 游客 发表于 1个月前

    一口气看完了,我要下去回味回味了!http://dhjd.cqfyy.com

  • 心法口诀 发表于 4周前

    语言表达流畅,没有冗余,读起来很舒服。http://oy7.suduwl.com

  • 游客 发表于 3周前

    观点鲜明,立场坚定,作者态度明确。http://jg0.xaqrpj.com.cn

  • xn--vi-7h1gzd.cn 发表于 2周前

    今天是个特别的日子,值得纪念!http://uyr.bjerba.com

  • 游客 发表于 1周前

    楼主英明!http://h8ai.xaqrpj.com.cn

  • 游客 发表于 1天前

    今天是个特别的日子,值得纪念!http://www.guangcexing.net/voddetail/axUHzwbDns.html

发表评论

  • 昵称(必填)
  • 邮箱
  • 网址