Cài đặt Elasticsearch bằng docker trên CentOS

11th Mar 2022
Table of contents

Cài trực tiếp chưa dùng Docker

Ở đây chọn cài đặt phiên bản ES 7.x

Cài đặt Java do ES chạy trên nền tảng JAVA nên cần đảm bảo hệ thống có JAVA, kiểm tra bằng lệnh:

java -version

Nếu chưa có thì cần cài đặt bằng các lệnh sau:

sudo yum install java-1.8.0-openjdk-devel -y

Thiết lập PGP key cho ES (https://pgp.mit.edu) gõ lệnh sau:

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Thiết lập Repository

Tạo / mở file elasticsearch.repo

vi /etc/yum.repos.d/elasticsearch.repo

Chèn nội dung sau vào

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Dung cai dat ban 6.x

[elasticsearch-6.x]
name=Elasticsearch repository for 6.x packages
baseurl=https://artifacts.elastic.co/packages/6.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Gõ lệnh cài đặt

yum install elasticsearch

Kích hoạt dịch vụ ES

systemctl enable elasticsearch.service
systemctl start elasticsearch.service

Mở firewall nếu cần thiết

firewall-cmd --permanent --add-port=9200/tcp
firewall-cmd --permanent --add-port=9300/tcp
firewall-cmd --reload

Kiểm tra

curl -X  GET localhost:9200

{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "cy-pH1W2S2mb38smYQeoOA",
  "version" : {
    "number" : "7.1.0",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "606a173",
    "build_date" : "2019-05-16T00:43:15.323135Z",
    "build_snapshot" : false,
    "lucene_version" : "8.0.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Từ ngoại mạng có thể kiểm tra bằng truy vấn đến IP của server ES

curl -X  GET IP:9200

Cấu hình Elasticsearch trên CentOS Server

File cấu hình tại /etc/elasticsearch/elasticsearch.yml

Các loại thiết lập chỉnh ở trong file này, ví dụ như chỉnh lại cổng, ip network ..., có thể xem xét những cấu hình như:

network.host: 0.0.0.0
http.port: 9200

# thiết lập chỉ 1 server, hủy kiểm tra bootstrap

discovery.type: single-node

Sau khi chỉnh để khởi động lại gõ:

systemctl restart elasticsearch

Dùng Docker

Sau đây là file docker-compose.yml với nội dung tạo ra container Docker chạy Elasticsearch và Kibana với mục tiêu như sau:

Elasticsearch (elasticsearch:7.0.1) lắng nghe ở cổng 9200, một node tên là elasticsearch và khởi tạo là master node, đặt tên cluster là datasearch
Nơi lưu dữ liệu của node là ổ đĩa ánh xạ thư mục /Users/xuanthulab/Desktop/xdata/docker/elasticsearch/data (bạn thay bằng thư mục máy host Docker của bạn).

Container chạy kibana (kibana:7.0.1) lắng nghe ở cổng 5601

docker-compose.yml

version: '2.2'

services:

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
    container_name: elasticsearch
    environment:
      - node.name=elasticsearch
      - discovery.seed_hosts=elasticsearch
      - cluster.initial_master_nodes=elasticsearch
      - cluster.name=docker-cluster
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - esdata1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200

  kibana:
    image: docker.elastic.co/kibana/kibana:7.1.1
    container_name: kibana
    environment:
      ELASTICSEARCH_URL: "http://elasticsearch:9200"
    ports:
      - 5601:5601
    depends_on:
      - elasticsearch

volumes:
  esdata1:
    driver: local

Với file docker-compose.yml này, chạy Docker (xem thêm Sử dụng Docker-compose)vào thư mục lưu file này và gõ lệnh để chạy các dịch vụ trên:

docker-compose up

Sau lệnh này nó sẽ tải các image docker tương ứng về và khởi chạy 2 dịch vụ là Elasticsearch (http://localhost:9200) và Kibana (http://localhost:5601)

Và như vậy đã có ES để thực hành.

Bạn thấy bài viết này như thế nào?
0 reactions

Add new comment

Image CAPTCHA
Enter the characters shown in the image.
Câu nói tâm đắc: “Điều tuyệt với nhất trong cuộc sống là làm được những việc mà người khác tin là không thể!”

Related Articles

Trong blog CI-CD CHO DỰ ÁN CỦA BẠN mình đã giới thiệu về CI-CD và apply Gitlab CI vào dự án của bạn.

Xin chào các bạn, mình đã trở lại với bài viết chia sẻ đầu tiên về kiến thức lập trình. Như những chia sẻ ở phần giới thiệu bản thân, mình là một coder

Docker becomes more and more suitable for personal environments, especially with private servers, which can be migrated very often.

Now, I didn’t publish the service on any port. I will, in fact, add another service that will serve as our management interface of the database, phpmyadmin:

Docker provides a single command that will clean up any resources — images, containers, volumes, and networks — that are dangling (not tagged or associated with a container):