Elasticsearch安装(一)

119 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

开启 Elasticsearch 系列第一篇。在进入 Elasticsearch 前,首先需要先搭建 es 服务。就像《论语》所说,工欲善其事,必先利其器。本篇主要介绍 Elasticsearch搭建,使用 docker 搭建 Elasticsearch,kibana 服务的搭建。

ElasticSearch 安装

1、下载

Elasticsearch 一般会选择从官网下载,但由于官网在国外,国内访问速度巨慢。所以,推荐使用从【华为云】进行软件的下载。本次安装选择 7.13.4 版本。

wget https://mirrors.huaweicloud.com/elasticsearch/7.13.4/elasticsearch-7.13.4-linux-x86_64.tar.gz

2、 解压

 tar -zxvf elasticsearch-7.13.4-linux-x86_64.tar.gz

image.png

3、创建 es 用户

  • es不能以root启动,需要创建一个非 root 的用户

    1、 添加 es 用户
     useradd es
     2、更改 es 用户的密码
     passwd es
     3、为 es 用户赋权 操作 es 目录的权限
    chown -R es /opt/elasticsearch-7.13.4
    

4、 启动 es

到这单机部署已经完成,启动 es 服务。

#切换用户
su es
#启动es
./elasticsearch-7.13.4/bin/elasticsearch -d

启动可能存在的错误

1.elasticsearch用户拥有的内存权限太小,至少需要262144

ERROR: [2] bootstrap checks failed
[1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

image.png

  • 解决办法

    vim /etc/security/limits.conf
    * soft nofile 65536
    * hard nofile 65536
    
    
    sudo vi /etc/sysctl.conf
    vm.max_map_count=262144
    
    sysctl -p
    
  1. 开启 9200 和 9300 端口
[root@localhost es]# iptables -A INPUT -ptcp --dport 9200 -j ACCEPT
[root@localhost es]# iptables -A INPUT -ptcp --dport 9300 -j ACCEPT

 nc -lp 9200 &
netstat -an | grep 9200

image.png

  1. 配置初始化节点

    [1]: 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

  • 解决办法

    设置 discovery.seed_hosts

    sudo vi config/elasticsearch.yml
    
    discovery.seed_hosts: ["127.0.0.1"]
    cluster.initial_master_nodes: ["node-1"]
    

以上就是单机部署的过程,部署完成之后,就可以快乐的使用了。

kibana 的安装

kibana 是 ES 的可视化工具,可以使用 kibana 对 es 中的数据进行操作,编写 DSL 语句,配置可视化数据分析等各种各样的操作。相当于 mysql 中的 navicat 工具。

1、下载,解压

华为云下载 kibana 安装包

wget https://mirrors.huaweicloud.com/kibana/7.13.4/kibana-7.13.4-linux-x86_64.tar.gz

tar -zxvf kibana-7.13.4-linux-x86_64.tar.gz

2、修改kibana.yml配置

  • 设定kibana端口
  • 设定所在主机ip
  • 指定Elasticsearch连接地址
server.port: 5601
server.host: "172.17.0.17"
elasticsearch.hosts: ["http://172.17.0.17:9200"]
  1. 启动kibana

注意:不需要修改kibana的用户或者用户组权限。

nohup ./bin/kibana --allow-root & > /dev/null 2>&1

docker 部署 ES 集群

使用 docker 部署 ES 集群,在生产环境中,经常会使用容器化部署,以下内容通过 docker 部署 ES 集群(两个节点,es7_01,es7_02),一个kibana 服务,一个 cerebro(一个提供 es 的节点情况等内容展示的可视化平台 前提:有装 docker 环境

  • docker-compose.yml 内容如下:
version: '2.2'
services:
  cerebro:
    image: lmenezes/cerebro:0.8.4
    container_name: cerebro
    ports:
      - "9000:9000"
    command:
      - -Dhosts.0.host=http://elasticsearch:9200
    networks:
      - es7net
  kibana:
    image: kibana:7.13.1
    container_name: kibana7
    environment:
      - I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
    networks:
      - es7net
  elasticsearch:
    image: elasticsearch:7.13.1
    container_name: es7_01
    environment:
      - cluster.name=study
      - node.name=es7_01
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01
      - cluster.initial_master_nodes=es7_01,es7_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - es7net
  elasticsearch2:
    image: elasticsearch:7.13.1
    container_name: es7_02
    environment:
      - cluster.name=study
      - node.name=es7_02
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01
      - cluster.initial_master_nodes=es7_01,es7_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data2:/usr/share/elasticsearch/data
    networks:
      - es7net


volumes:
  es7data1:
    driver: local
  es7data2:
    driver: local

networks:
  es7net:
    driver: bridge

  • 启动

    进入脚本所在文件夹,执行 docker 命令 启动

docker-compose up

image.png

  • es 服务

image.png

  • kibana

image.png

总结

本篇主要阐述了 单机部署 Elasticsearch 服务 ,kibana 服务和使用 docker 部署 Elasticsearch ,kibana 的主要内容,部署完成后,后系我们就可以开始愉快的 使用 Elasticsearch。

更多

es官网