1.简介

这个章节主要介绍ElasticSearch+Kibana两个组件在linux环境的部署步骤,以及在部署过程中遇到问题解决,暂就不涉及集群部署知识点,后面章节再详细讲解这块。下面让我们来简单了解下Elasticsearch与Kibana。

1.1Elasticsearch简介

Elasticsearch是一个基于Lucene的搜索服务器,也是一个是一个分布式、高扩展、高实时的搜索与数据分析引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。
它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用Elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。Elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
Elasticsearch+Logstash(数据收集日志解析引擎)+Kibana(分析和可视化平台)这三个产品被设计成一个集成解决方案,称为“Elastic Stack”(以前称为“ELK stack”)。
Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。Elasticsearch是分布式的,这意味着索引可以被分成分片,每个分片可以有零个或多个副本。每个节点托管一个或多个分片,并充当协调器将操作委托给正确的分片。再平衡和路由是自动完成的。相关数据通常存储在同一个索引中,该索引由一个或多个主分片和零个或多个复制分片组成。一旦创建了索引,就不能更改主分片的数量。

1.2Kibana简介

Kibana是一个针对Elasticsearch而设计的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。
Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。

2.前期准备

2.1下载elasticsearch组件

到官网下载页https://www.elastic.co/cn/downloads/elasticsearch下载linux最新版本elasticsearch-7.8.0,如图所示:

2.2下载kibana组件

到官网下载页https://www.elastic.co/cn/downloads/kibana下载linux最新版本kibana-7.8.0,如图所示:

2.3下载并安装Xshell 6+Xftp 6

Xshell+Xftp下载安装使用,这里我就不多说了,度娘大把资料可以供大伙参考。下面简要解释下Xshell+Xftp用途:
Xshell是一个功能强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows平台的TELNET协议。Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而达到远程控制终端的目的。所以下面我都会使用Xshell在linux上编写脚本命令。
Xftp是一个功能强大的sftp、ftp文件传输软件。使用了Xftp以后,ms windows用户能安全地在unix/linux和windows pc之间传输文件。所以下面我都用Xftp做在linux和windows pc之间传输文件。

3.Elasticsearch部署

3.1创建安装包、Elasticsearch、kibana文件夹

在用户目录下创建安装包、Elasticsearch、kibana这三个文件夹的目的是为了方便管理,默认目录是/home/deng,创建文件夹命令如下:

//安装包文件夹
mkdir /home/deng/installpackage
//elasticsearch文件夹
mkdir /home/deng/elasticsearch
//kibana文件夹
mkdir /home/deng/kibana

执行完所有命令后,通过Xftp,我们会看到/home/deng目录下创建三个对应文件夹:

如果想删除文件夹,具体命令如下:

//删除文件夹
rm -rf /home/deng/installpackage

如果创建文件夹没操作权限,可以通过如下命令进行授权:

//修改文件权限
chmod -R 775 installpackage

再通过Xftp把之前下载好的elasticsearch-7.8.0-linux-x86_64.tar.gz、kibana-7.8.0-linux-x86_64.tar.gz安装包传输到installpackage中:

3.2解压Elasticsearch安装包

先切换到elasticsearch文件夹目录:

//切换elasticsearch文件夹
cd /home/deng/elasticsearch

把elasticsearch安装包解压到elasticsearch目录当中:

//解压elasticsearch安装包
tar -zxvf /home/deng/installpackage/elasticsearch-7.8.0-linux-x86_64.tar.gz

3.3修改elasticsearch配置指定ES服务主机

先切换到elasticsearch文件夹config目录:

//切换elasticsearch/config文件夹
cd /home/deng/elasticsearch/elasticsearch-7.8.0/config

使用vi文本编辑器修改elasticsearch.yml配置文件:

//vi文本编辑器打开elasticsearch.yml配置文件
vi elasticsearch.yml

输入修改命令:

//i修改
i

找到文件中这两项配置,把前面的#符号删除开放出来并修改为如下内容:

network.host: 192.168.112.xxx
http.port: 9200

修改完这两项配置之后,因为7.0以后版本还需要修改如下两个配置才能启动,所以找到这两项进行修改,如果bootstrap.system_call_filter属性没有就新增一行:

bootstrap.memory_lock: false
bootstrap.system_call_filter: false

把上面四项配置修改后点击Esc按钮退出编辑,输入命令保存退出:

//保存退出
:wq

3.4启动Elasticsearch服务

注意:ES启动有可能会多次报错,需要我们根据错误信息重新修改下相关配置文件。

3.4.1切换到bin目录启动Elasticsearch服务
//进入bin目录
cd /home/deng/elasticsearch/elasticsearch-7.8.0/bin
//启动Elasticsearch服务或者后台启动模式
./elasticsearch
or
./elasticsearch -d

当我们启动Elasticsearch服务时候,可能会遇到如下错误提示。

3.4.2root用户不能启动Elasticsearch服务
//无法以root用户身份运行elasticsearch服务。
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root

根据上述错误提示,我们要创建一个用户进行启动Elasticsearch服务。而因为我安装linux版本CentOS 7时候已经新建一个用户deng,所以下面演示我就该用户进行部署操作,如果你们在安装过程中没有新建,就使用以下命令新建一个用户再启动Elasticsearch服务:

//useradd 建立用户账号(默认在/home目录下)
useradd deng
//passwd设定账号的密码
passwd 123456
3.4.3虚拟内存过低
//最大虚拟内存区域vm.max_map_count [65530]太低,至少增加到[262144]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

根据上述错误提示,我们需要修改下sysctl.conf系统配置文件,但是如果当前用户没有root修改系统文件权限,那么就得先su root用户再进行如下操作:

vi /etc/sysctl.conf

输入修改命令i,在空白处添加一行文本:

vm.max_map_count=262144

输入:wq保存退出后,再通过su deng切换回来,然后启动Elasticsearch服务。

3.4.4elasticsearch进程的最大文件描述符太低与管理员最大线程数太低
//elasticsearch进程的最大文件描述符[4096]太低,请至少增加到[65535]
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]
//用户[admin]的最大线程数[3818]太低,请至少增加到[4096]
max number of threads [3818] for user [admin] is too low, increase to at least [4096]

根据上述错误提示,还是跟之前操作一样,如果当前用户没有root修改系统文件权限,那么就得先su root用户再进行如下操作:

vi /etc/security/limits.conf

输入修改命令i,在空白处添加四行文本:

* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096

输入:wq保存退出后,再通过su deng切换回来,然后启动Elasticsearch服务。

3.4.5默认discovery设置不适合生产使用
//默认discovery设置不适合生产使用;至少有一个[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]必须配置
the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

根据上述错误,输入命令进行如下操作:

vi elasticsearch.yml

输入修改命令i,找到文件中这项配置,把前面的#符号删除开放出来并修改为如下内容:

cluster.initial_master_nodes: ["node-1"]

输入:wq保存退出后启动Elasticsearch服务。

3.4.6无法获取节点锁
//无法获取节点锁
java.lang.IllegalStateException: failed to obtain node locks

这个错误原因是因为系统已经存在elasticsearch进程了,找出这个进程,把它kill掉重新启动就可以了,具体操作命令如下:

//查看elasticsearch进程
ps -ef | grep elasticsearch
//kill进程ID,格式(kill -9 1111)
kill -9 xxxx

然后重新启动Elasticsearch服务。

3.4.7Elasticsearch服务正常启动

如果还不能访问,把linux系统防火墙关闭,操作防火墙命令如下:

//查看防火状态
systemctl status firewalld
//暂时关闭防火墙
systemctl stop firewalld
//永久关闭防火墙
systemctl disable firewalld
//重启防火墙
systemctl enable firewalld

成功访问界面如下:

4.Kibana部署

因为之前已经创建好kibana文件夹,我们只需要把kibana安装包解压到对应文件夹中再启动服务就好了。

4.1解压Kibana安装包

先切换到kibana文件夹目录:

//切换kibana文件夹
cd /home/deng/kibana

把kibana安装包解压到kibana目录当中:

//解压kibana安装包
tar -zxvf /home/deng/installpackage/kibana-7.8.0-linux-x86_64.tar.gz

4.2修改kibana配置指定kibana服务主机

先切换到kibana文件夹config目录:

//切换kibana/config文件夹
cd /home/deng/kibana/kibana-7.8.0-linux-x86_64/config

使用vi文本编辑器修改kibana.yml配置文件:

//vi文本编辑器打开kibana.yml配置文件
vi kibana.yml

找到文件中这三项配置输入i修改,把前面的#符号删除开放出来并修改为如下内容:

server.port: 5601
server.host: "192.168.112.xxx"
elasticsearch.host: "http://192.168.112.xxx:9200"

如果需要修改为中文显示:

i18n.locale: "zh-CN"

再切换到kibana文件夹bin目录,启动kibana服务:

//切换kibana/bin目录
cd /home/deng/kibana/kibana-7.8.0-linux-x86_64/bin
//启动kibana服务
./kibana

成功访问界面如下:

5.Elasticsearch开启登录验证功能

先停止Elasticsearch服务,配置X-Pack打开安全配置功能:

//配置X-Pack打开安全配置功能
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true

重启Elasticsearch服务,执行设置用户名和密码的命令,为elastic、kibana、logstash_system、beats_system四个用户分别设置密码:

//切换elasticsearch/bin目录
cd /home/deng/elasticsearch/elasticsearch-7.8.0/bin
//执行设置用户名和密码的命令,为4个用户分别设置密码:elastic、kibana、logstash_system、beats_system
./elasticsearch-setup-passwords interactive

如图所示:

在浏览器上输入Elasticsearch链接地址会看到如下界面:

输入帐号elastic跟设置的密码即可登录成功!
Elasticsearch设置用户密码后,还需要在Kibana上设置对应的帐号跟密码,具体命令如下:

//切换kibana/config目录
cd /home/deng/kibana/kibana-7.8.0-linux-x86_64/config
//设置Kibana登录帐号跟密码
elasticsearch.username: "elastic"
elasticsearch.password: "xxx"

如图所示:

然后开启Kibana服务,在浏览器上输入Kibana地址会看到如下界面:

输入帐号elastic跟设置的密码即可登录成功!

参考文献:
Elasticsearch官网

(1)ElasticSearch搭配Kibana在linux环境的部署的更多相关文章

  1. Kibana在Linux上安装部署及使用说明

    Kibana安装及使用说明 Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索.查看交互存储在Elasticsearch索引中的数据. 官方地址:https://www. ...

  2. Linux环境下部署完JDK后运行一个简单的Java程序

    前言 前一篇文章详细讲解了如何在Windows环境下安装虚拟机+Linux系统,并且成功部署了JDK. 不过部署完JDK之后,我们判断部署是否成功的依据是看"java -version&qu ...

  3. ELK( ElasticSearch+ Logstash+ Kibana)分布式日志系统部署文档

    开始在公司实施的小应用,慢慢完善之~~~~~~~~文档制作 了好作运维同事之间的前期普及.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 软件下载地址: https://www.e ...

  4. Linux环境快速部署Zookeeper集群

    一.部署前准备: 1.下载ZooKeeper的安装包: http://zookeeper.apache.org/releases.html 我下载的版本是zookeeper-3.4.9. 2.将下载的 ...

  5. Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)

    本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...

  6. linux 环境下部署 Asp.Net Core 项目 访问 oralce 数据库

    1.ASP.NET Core 是一个跨平台的高性能开源框架,可以部署到Linux上,那项目部署在Linux上有哪些好处呢? 1.linux硬件需求小,大部分版本免费,成本低. 2.linux的用户管理 ...

  7. Rabbitmq~linux环境的部署

    之前写过在windows环境上部署rabbitmq,这回介绍在centos上对这个消息中间件进行部署的过程 一 下载和解压 wget  http://www.rabbitmq.com/releases ...

  8. Linux 环境Skywalking部署Elasticsearch

    一.环境准备 1.Java jdk 11+(安装教程可参考https://www.cnblogs.com/sportsky/p/15973713.html) 2.elasticsearch 二.环境搭 ...

  9. Elasticsearch、Kibana Windows下环境搭建

    Elasticsearch 簡介 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是 ...

随机推荐

  1. git克隆指定分支到本地

    我们每次使用命令 git clone https://xxx.com/android-app.git 默认 clone 的是这个仓库的 master 分支. 使用Git下载指定分支命令为:git cl ...

  2. Git 看这一篇就够了

    上一篇讲 Git 的文章发出来没想到效果特别好,很多读者都要求继续深入的写. 那今天齐姐简单讲下 Git 的实现原理,知其所以然才能知其然:并且梳理了日常最常用的 12 个命令,分为三大类分享给你. ...

  3. Python初学习:简单的练习题

    Python初学习 一些见到那的练习题: 初级难度 设计一重量转换器,输入以g为单位的数字后,返回换算结果以Kg为单位的结果 中级难度 设计一个求直角三角形斜边长的函数,(以两个直角边为参数,求最长边 ...

  4. 实验四  用PS制作横幅广告

    实验四  用PS制作横幅广告 [实验目的] ⑴.了解广告设计应用 ⑵.学会利用PS制作简单的横幅广告 [实验条件] ⑴.个人计算机一台 ⑵.个人计算机中预装Windows7操作系统和浏览器及Photo ...

  5. 多测师讲解自动化 _邮件发送_高级讲师肖sir

    第一步.进入如下网址申请163邮箱. https://mail.163.com/ 第二步.注册完之后登录.点击如下图设置­点击POP3/SMTP/IMAP. 第三步.右侧点击客户端授权密码. 第四步. ...

  6. MVC-WebApi配置 Swagger(Web Api可视化文档)

    一.从创建MVC WebApi开始 第一步创建MVC WebApi就创建好了,接下来就进入正题,上干货 ================================================ ...

  7. BASH提示符颜色、显示返回值,终端标题显示当前目录与正在执行的命令

    BASH的PS1变量控制提示符相关的东西,善用它可以让BASH用起来舒服很多 提示符颜色 提示符显示上一个命令的返回值(exit code),并根据是否0调整颜色 提示符生成的时间(这样就知道上一条命 ...

  8. property和setter装饰器

    # property装饰器 # 作用: 将一个get方法转换为对象的属性. 就是 调用方法改为调用对象 # 使用条件: 必须和属性名一样 # setter方法的装饰器: # 作用:将一个set方法转换 ...

  9. linux磁盘空间满的处理

    Java中运行SQL插入数据时报错: linux磁盘空间满处理: 1.df -h  查看磁盘空间占用,实际上是查看磁盘块占用的文件(block) 2.分别查看输入以下命令 (面对磁盘满了,通过下列命令 ...

  10. 选择SaaS平台的那些事

    将近一年多没有更新博客和自己的订阅号.除了本身有点懒之外,也有幸在上半年花了一些时间考出了CISSP.最近也在研究云平台相关的一些课题. 写这篇文章本身是因为在工作中经常有IT乃至业务的同事会问及企业 ...