安装 Elasticsearch 和 Kibana

By | 2021年12月31日

1 自动安装

1.1 介绍

Elasticsearch 的 docker 镜像基于 centos:7,下载地址:https://www.docker.elastic.co

可用镜像:

  • elasticsearch 官网的:docker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.0
  • docker hub 里的:docker pull elasticsearch:6.8.0

1.2 部署ES前,请先设置宿主主机的 vm.max_map_count

vm.max_map_count 至少需要设置为 262144 才能用于生产环境。
切换到root用户,修改 /etc/sysctl.conf ,添加:
vm.max_map_count=655360
然后执行命令:sudo sysctl -p
注意:如果是 docker-compose部署,j改的是docker所在的宿主主机。

其他注意事项,可参考下面文章的“Notes for production use and defaults”一节:
https://www.elastic.co/guide/en/elasticsearch/reference/7.1/docker.html#docker-prod-cluster-composefile

1.3 docker用户

默认情况下,Elasticsearch容器使用的是 elasticsearch 用户,这个用户的 uid:gid 为 1000:1000。但 openshift 例外,openshift使用任意分配的用户ID。

1.4 docker-compose.yml

# ./docker-compose.yml

version: '3'

services:
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.0
    environment:
      - cluster.name=docker-cluster-elasticsearch
        # 为了提高性能和节点稳定性,禁用交换:https://www.elastic.co/guide/en/elasticsearch/reference/7.1/docker.html#docker
      - bootstrap.memory_lock=true
        # 设置堆大小,需要双引号
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    ports:
      - "9200:9200"
      - "9300:9300"
    volumes:
      - "esdata:/usr/share/elasticsearch/data"
# 映射出来配置有时候会报错:nosuchfileexception /usr/share/elasticsearch/config/jvm.options
#      - "esconfig:/usr/share/elasticsearch/config"
    networks:
      - esnet

  kibana:
    image: docker.elastic.co/kibana/kibana:6.8.0
    ports:
      - "5601:5601"
    networks:
      - esnet

volumes:
  esdata:
#  esconfig:

networks:
  esnet:
    driver: overlay

其他配置,可参考Demo:https://github.com/jakubhajek/elasticsearch-docker-swarm/blob/master/stack-elastic.yml

2 手动安装

2.1 下载并解压 elasticsearch-6.2.4.zip

(1)首先将Windows上的 elasticsearch-6.2.4.zip 拷贝到 Centos上(在windos上安装git,执行下面命令,请使用root用户:)
# scp “/C/Users/zeesec/Desktop/ElasticSearch/elasticsearch-6.2.4.zip” root@192.168.1.112:/opt

(2)由于一般我们不直接使用root用户,因此我们假设已经创建了一个admin用户,现在我们要用admin用户登录来安装这个 elasticsearch-6.2.4.zip,
但是这个文件的拥有者是root,因此首先要做的是将这个文件的拥有者改为 admin 用户:
# su root
# chown admin /opt/elasticsearch-6.2.4.zip
# chmod 777 /opt/elasticsearch-6.2.4.zip
# ll(结果:”drwxrwxrwx. 1 admin root 29095682 May 18 16:50 elasticsearch-6.2.4.zip”)

(3)通过ll命令,文件拥有者已改为admin了,但时执行”unzip elasticsearch-6.2.4.zip”发现还是报错,这是因为默认会把文件
解压到你当前所在的目录(opt所显示的目录),当你对该目录没有写权限时,就会出现了权限问题。那接来下就是修改opt目录的权限了
# chown admin /opt/
# chmod 777 /opt/
# ll(结果:”drwxrwxrwx. 5 admin root 4096 May 18 18:44 opt”)

(4)opt目录已有写入(w)权限,接着可以用 admin 解压了
# su admin
$ unzip elasticsearch-6.2.4.zip

2.2 运行 bin/elasticsearch

cd /opt/elasticsearch-6.2.4/
# 默认运行在端口9200,若要后台运行那么可以在后面添加参数 -d
./bin/elasticsearch ()
# 测试是否启动成功,可以打开另一个终端,执行这条命令
curl 'http://localhost:9200/?pretty'

注意:因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户(创建新用户这里不讲了,这里假设已创建了 admin 用户)。

2.3 elasticsearch 外网访问配置

修改 “config/elasticsearch.yml”,添加: network.host: 192.168.1.112
备注:修改后,运行 elasticsearch 会报”bootstrap checks failed”的错误,具体解决这里略,请看笔记。
重要:对于docker部署来说,值为:network.host: 0.0.0.0,因此不需要去改。还请确认???

2.4 安装 Kibana

Kibana 让您能够可视化 Elasticsearch 中的数据并操作 Elastic Stack。
Kibana 的安装过程和 elasticsearch-6.2.4.zip 差不多。解压后,如有必要,可以修改下 config 目录下的 kibana.yml 配置文件,添加如下配置:
#配置本机ip
将 server.host: “localhost” 改为 server.host: “192.168.1.112”
#配置es集群url
将 elasticsearch.url:”http://localhost:9200″ 改为 elasticsearch.url:”http://192.168.1.112:9200″
如果不改 server.host,除了localhost那台机器,其他机器无法访问Kibana站点。
$ bin/kibana(Kibana默认运行在端口 5601,启动后可以访问Kibana网站了:http://localhost:5601)

2.5 安装 Sense

Sense 是一个 Kibana 应用 它提供交互式的控制台,通过你的浏览器直接向 Elasticsearch 提交请求,
你不必安装 Sense,但是它允许你在本地的 Elasticsearch 集群上测试示例代码,从而使本书更具有交互性。
提示:目前我没有安装。

发表评论

您的电子邮箱地址不会被公开。