暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

elasticsearch和kibana的保姆级安装教程

Lexie的能量森林 2021-09-22
1091

目录导航

  • 为什么使用docker容器部署这些应用

    • 什么是docker

    • docker安装

  • elasticsearch安装

    • 什么是elasticseach

    • 安装步骤

  • 安装kibana

    • 什么是kibana

    • 安装步骤

  • 安装ik分词器插件

  • 安装elasticsearch-head插件

  • 参考文献


为什么使用docker容器部署这些应用

什么是docker

docker是一种容器技术,可对软件运行环境进行封装,docker容器和虚拟机模型类似,区别在于容器的运行不会独占操作系统,适应了云计算时代按需配置资源的模式。docker容器具有以下优势:

  • 节省系统资源:运行在同一宿主机上的容器共享一个操作系统,从而节省大量系统资源(CPU、RAM、存储等);
  • 轻量级、启动快、可移植:容器可以方便地在不同环境之间迁移,从本地迁移到云端,从物理机迁移到虚拟机等。

Linux平台是Docker原生支持平台,在Linux上使用Docker可以得到最佳的用户体验,本文的安装环境为 Ubuntu18.04虚拟机。

docker安装

1、首先对虚拟机做一些基本的配置。

  • 输入ifconfig
    查看虚拟机ip地址,我的ip是192.168.160.128

  • 在虚拟机内安装open-ssh服务,开启远程访问。输入如下命令:

sudo apt-get install openssh-server

  • 安装后就可以使用远程终端工具对虚拟机进行操作了,我这里使用的是WindTerm(https://github.com/kingToolbox/WindTerm/releases/tag/2.1),一个比Xshell更好用的工具,后面会继续出文章介绍如何使用WindTerm。

  • 关闭Ubuntu的防火墙

sudo ufw disable

2、接下来就可以进入docker的安装了。

  • 安装apt依赖包
sudo apt-get update
  
sudo apt-get install \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg-agent \
  software-properties-common

  • 添加 Docker 的官方 GPG 密钥,并设置稳定版仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"


  • 安装docker的三个包
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

  • 检查安装情况
  • 设置docker随系统自动启动
systemctl enable docker.service

elasticsearch安装

什么是elasticseach

elasticsearch是一款分布式的全文本搜索和分析引擎,可以在其基础上构建搜索和分析应用。现在越来越多的IT公司都采用Elasticsearch进行数据处理,包括GitHub,其代码搜索程序就是基于Elasticsearch。

安装步骤

  • 切换到管理员账户,这样可以省去每次输入命令时都需要输入sudo的麻烦,同时也避免后续配置容器挂载目录的权限问题。如果未配置过root密码,使用sudo passwd root
    设置密码,再通过su命令切换到root账户。
  • 下载Elasticsearch镜像,去官方镜像网站(https://www.docker.elastic.co/r/elasticsearch)选择需要的版本,我这里下的是7.13.4版本
docker pull elasticsearch:7.13.4

  • docker images 查看下载镜像
  • 创建一个自定义的网络,用于后续连接到该网络下的其他服务,比如kibana。
docker network create esnet

  • 运行elasticsearch容器,单节点版本,命令如下:
docker run -d --name es \
  -p 9200:9200 -p 9300:9300 \
  --net esnet \
  -e "discovery.type=single-node" \
  -e ES_JAVA_OPTS="-Xms256m -Xmx256m" \
  elasticsearch:7.13.4

其中es为容器名,-p指定web应用的访问端口,最后一行表示创建容器所使用的镜像版本。

  • 查看正在运行的容器状态,输入docker ps
  • 输入curl '127.0.0.1:9200',查看es容器是否启动成功。
  • 修改elasticsearch配置文件,设置成可通过局域网访问。首先进入es容器,输入
docker exec -it es /bin/bash

  • 再修改elasticsearch.yml文件
vi config/elasticsearch.yml

  • 在文件末尾添加两行内容,保存。
http.cors.enabled: true
http.cors.allow-origin: "*"

  • 输入exit
    退出容器,再输入docker restart es
    重启容器。打开宿主机浏览器页面,输入“虚拟机ip:9200”,比如我这里是192.168.160.128:9200,浏览器页面出现如下内容,表示安装成功。

安装kibana

什么是kibana

kibana是与elasticsearch协同工作的开源数据可视化分析平台,可以在各种统计图、表格和地图中执行高级数据分析和数据可视化。

安装步骤

kibana版本要保持和Elasticsearch一致,这里也采用7.13.4版本。

  • 拉取kibana镜像
docker pull kibana:7.13.4

  • 查看下载镜像
  • 运行kibana容器,容器名为kibana,通过刚刚创建的esnet网络连接到正在运行的es实例。
docker run -d --name kibana \
  --net esnet \
  -p 5601:5601 \
  kibana:7.13.4  

  • 复制docker容器内的配置kibana.yml文件到虚拟机主机
docker cp kibana:/usr/share/kibana/config/kibana.yml .

  • 修改kibana.yml文件,修改内容如下:
server.name: "kibana"
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: [ "http://192.168.160.128:9200" ]
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

其中,192.168.160.128是我的虚拟机ip,也就是elasticsearch的web端所在地址,用户在配置时需要根据自己的实际情况修改ip地址。

  • 将修改后的文件复制到kibana容器内的config文件夹
docker cp kibana.yml kibana:/usr/share/kibana/config/

  • 修改完成后,重启kibana容器docker restart kibana
    。等待30秒,打开浏览器页面,在网址栏输入“虚拟机ip:5601”(我这里是192.168.160.128:5601),若出现如下界面,表示kibana安装成功。

安装ik分词器插件

ik分词器插件集成于elasticsearch,可实现中文的职能分词。ik分析器的版本必须要和elasticsearch的版本保持一致,这里同样使用7.13.4,下载地址(https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.13.4),这里采用安装包安装的方式。

  • 将下载的安装包复制到Ubuntu虚拟机,再从虚拟机复制到es容器内/usr/share/elasticsearch/文件夹:
docker cp elasticsearch-analysis-ik-7.13.4.zip es:/usr/share/elasticsearch/

  • docker exec -it es /bin/bash
    进入es容器,进入到/usr/share/elasticsearch/plugins/目录,输入安装命令:
elasticsearch-plugin install file:/usr/share/elasticsearch/elasticsearch-analysis-ik-7.13.4.zip

  • elasticsearch-plugin list
    查看已安装插件。退出容器并重启es。

安装elasticsearch-head插件

elasticsearch-head是一款基于web端的elasticsearch集群管理工具,可以方便的实现数据可视化,以及对elasticsearch集群数据的增删改查。

  • 拉取head插件镜像,创建容器并运行,端口号设置为为9100。
docker pull mobz/elasticsearch-head:5

docker run -d --name es-head -p 9100:9100 --net esnet mobz/elasticsearch-head:5

  • 打开宿主机浏览器页面,输入“虚拟机ip:9100”,比如我这里是192.168.160.128:9100,打开后如果出现以下界面,无法连接到elasticsearch的地址,此时需要重新配置一下elasticsearch.yml文件。
  • 输入docker exec -it es /bin/bash
    进入es容器,vi config/elasticsearch.yml
    修改配置文件,追加两行内容:
http.cors.enabled: true
http.cors.allow-origin: "*"

  • 退出容器并重启,此时在浏览器中再次输入“虚拟机ip:9100”,出现如下界面,表示安装成功,可以查看集群健康值。
  • 同样可以在命令行中查看集群节点的健康情况,在命令行输入:
curl -X GET "localhost:9200/_cat/health?v"

绿色表示健康,由于安装的是单机版,只有1个节点。

参考文献

  1. 2020-02-29 ubuntu Docker 安装 ElasticSearch-简书(https://www.jianshu.com/p/f63440680ded)
  2. Docker 安装 ElasticSearch 和 Kibana (https://blog.csdn.net/qq_34814092/article/details/116211023)
  3. 《大数据搜索与挖掘及可视化管理方案 :Elastic Stack 5:Elasticsearch、Logstash、Kibana、X-Pack、Beats (第3版)》高凯


文章转载自Lexie的能量森林,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论