NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
12/05/2023
Lượt xem

Hướng dẫn cài đặt Elasticsearch trên Ubuntu 20.04 đơn giản và chi tiết

12/05/2023
12 phút đọc
Lượt xem

Đánh giá

5/5 - (102 bình chọn)

Elasticsearch là một nền tảng phục vụ tìm kiếm và phân tích dữ liệu phân tán trong thời gian thực. Nền tảng này nổi tiếng với hiệu năng, nhiều tính năng mạnh mẽ và khả năng mở rộng tốt. Bài viết này sẽ hướng dẫn cài đặt Elasticsearch trên Ubuntu 20.04 chi tiết.

Điều kiện cài đặt Elasticsearch trên Ubuntu 20.04

Trước khi bắt đầu, hãy đảm bảo bạn đáp ứng đủ các yêu cầu sau:

Điều kiện cài đặt Elasticsearch trên Ubuntu 20.04
Điều kiện cài đặt Elasticsearch trên Ubuntu 20.04
  • Có server Ubuntu 20.04, tối thiểu 4GB RAM và 2 CPU, ngoài ra cần có một user non-root trên hệ thống. Lượng CPU, RAM và dung lượng sẽ tùy thuộc vào lượng log cần đáp ứng trên server Elasticsearch.
  • Cài đặt sẵn OpenJDK 11.

Các bước cài đặt và cấu hình Elasticsearch trên Ubuntu 20.04

Bước 1 – Cài đặt Elasticsearch

Các thành phần của Elasticsearch chưa có sẵn trong repo mặc định của Ubuntu. Mọi package đều được ký bằng key của Elasticsearch để bảo vệ hệ thống không download nhầm gói độc hại. Do đó bước này sẽ import public key GPG của Elasticsearch rồi thêm danh sách nguồn của package Elastic để cài đặt.

Trước tiên, sử dụng curl – công cụ command-line dùng để truyền dữ liệu qua URL – để import public key GPG của Elasticsearch vào APT. Bạn sẽ sử dụng thêm đối số -fsSL để ẩn tiến trình và lỗi, đồng thời cho phép curl tạo request trên vị trí mới nếu được điều hướng. Sau đó output của lệnh sẽ được pipe vào chương trình apt-key để thêm public key GPG vào APT.

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Tiếp theo, thêm danh sách nguồn Elastic vào thư mục sources.list.d để APT tìm được các nguồn mới:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Sau đó cập nhật danh sách package để APT đọc được nguồn Elastic mới:

sudo apt update

Bây giờ bạn có thể cài đặt Elasticsearch:

sudo apt install elasticsearch

Bước 2 – Cấu hình Elasticsearch

Elasticsearch có thể được cấu hình bằng cách chỉnh sửa trực tiếp file config elasticsearch.yml nằm trong thư mục /etc/elasticsearch.

Trước tiên, mở file cấu hình bằng một text editor bất kỳ, ở đây sử dụng nano:

sudo nano /etc/elasticsearch/elasticsearch.yml

Lưu ý rằng file config của Elasticsearch nằm ở định dạng YAML. Vì vậy bạn phải giữ nguyên định dạng thụt lề, không được thêm bất kỳ khoảng trắng nào khi chỉnh sửa file.

File elasticsearch.yml cung cấp các tùy chọn cấu hình cho cluster, node, đường dẫn, bộ nhớ, mạng, discovery và gateway. Hầu hết các tùy chọn này đều được cấu hình trước trong file, nhưng vẫn có thể được thay đổi tùy theo nhu cầu. Trong hướng dẫn này, Vietnix sẽ chỉ thay đổi cài đặt cho host mạng.

Elasticsearch nghe lưu lượng trên port 9200. Bạn cần phải giới hạn các truy cập từ bên ngoài vào instance Elasticsearch để bảo vệ hệ thống và dữ liệu, đồng thời ngăn không cho hacker ngắt cluster Elasticsearch thông qua REST API của nó.

Để hạn chế truy cập và tăng tính bảo mật, tìm và uncomment dòng chỉ định network.host trong file, sau đó đổi giá trị thành localhost như sau:

. . .
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: localhost
. . .

Bây giờ Elasticsearch sẽ nghe trên mọi interface và các IP được ràng buộc. Nếu bạn muốn Elasticsearch chỉ nghe trên một interface cụ thể thì có thể chỉ định IP đó vào phần giá trị localhost.

Sau khi hoàn tắt, lưu rồi đóng file lại. Nếu sử dụng nano, hãy nhấn CTRL+X, nhấn Y ENTER.

Bây giờ bạn có thể khởi động dịch vụ Elasticsearch bằng lệnh sau:

sudo systemctl start elasticsearch

Sau đó chạy lệnh dưới đây cho cho phép Elasticsearch tự khởi động sau mỗi lần server boot:

sudo systemctl enable elasticsearch

Để quá trình cài đặt và cấu hình Elasticsearch diễn ra thuận lợi, không gặp trở ngại nào thì bạn cần tới một một máy chủ có khả năng mở rộng linh hoạt và toàn quyền quản trị. Trong đó, VPS Vietnix là một lựa chọn tuyệt vời cho việc này. Được thiết kế với công nghệ tiên tiến nhất, VPS Vietnix đem lại cho người dùng một trải nghiệm tuyệt vời:

  • Toàn quyền quản trị trong việc cài đặt, quản lý và sử dụng máy chủ. Nếu bạn gặp khó khăn trong việc cài đặt hệ thống hay các ứng dụng thì có thể gửi yêu cầu hỗ trợ tới đội ngũ Vietnix.
  • Khả năng mở rộng, tùy chỉnh tài nguyên dễ dàng, linh hoạt giúp bạn có thể thiết lập hệ thống máy chủ theo nhu cầu của mình.
  • Tiết kiệm chi phí với nhiều gói dịch vụ theo nhiều cấu hình khác nhau, từ VPS Giá Rẻ, VPS Cao Cấp, VPS Phổ Thông, VPS NVMe cho tới VPS GPU.

Liên hệ Vietnix để được tư vấn chi tiết các gói cấu hình tối ưu theo nhu cầu sử dụng của bạn.

Bước 3 – Bảo mật Elasticsearch

Theo mặc định thì Elasticsearch chỉ có thể được kiểm soát bởi những người dùng có quyền truy cập vào HTTP API. Đây thường không được gọi là lỗ hổng bảo mật vì Elasticsearch chỉ nghe trên interface loopback (127.0.0.1) và interface này chỉ có thể được truy cập cục bộ. Vì vậy miễn là không có bất kì khả năng truy cập từ bên ngoài thì mọi server đều đảm bảo tin cậy và vấn đề bảo mật sẽ không còn quá quan trọng.

Nếu bạn muốn cho phép các truy cập từ xa vào API HTTP thì có thể giới hạn mạng bằng tường lửa UFW của Ubuntu được bật theo mặc định.

Bây giờ bạn sẽ cấu hình tường lửa để cho phép các remote host được tin cậy truy cập đến port API HTTP mặc định của Elasticsearch (TCP 9200). Đây thường là server bạn đang sử dụng trong thiết lập server đơn, ví dụ như 192.51.100.0. Bạn có thể cho phép truy cập bằng lệnh sau:

sudo ufw allow from 198.51.100.0 to any port 9200

Sau đó enable UFW bằng lệnh:

sudo ufw enable

Bây giờ bạn có thể kiểm tra trạng thái của UFW:

sudo ufw status

Nếu đã chỉ định các quy tắc tường lửa chính xác thì output sẽ như dưới đây:

Output
Status: active

To                         Action      From
--                          ------          ----
9200                    ALLOW     198.51.100.0
22                        ALLOW     Anywhere
22 (v6)                 ALLOW     Anywhere (v6)

Bây giờ UFW đã được enable và bảo vệ Elasticsearch trên cổng 9200.

Bước 4 – Kiểm tra Elasticsearch

Đến bước này, Elasticsearch đã bắt đầu chạy trên cổng 9200. Bạn có thể kiểm tra bằng curl và request GET như sau:

curl -X GET 'http://localhost:9200'
Output
{
  "name" : "elasticsearch-ubuntu20-04",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "qqhFHPigQ9e2lk-a7AvLNQ",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "deb",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Nếu output hiển thị tương tự như ở trên thì Elasticsearch đang hoạt động bình thường.

Để xác thực mọi thiết lập hiện tại thì bạn có thể chạy lệnh sau:

curl -XGET 'http://localhost:9200/_nodes?pretty'

Sau khi có kết quả đầu ra thì người dùng có thể xác nhận các thông tin cài đặt gần nhất như về node, cluster, đường dẫn ứng dụng, các modules và nhiều mục khác.

Bước 5 – Bắt đầu sử dụng Elasticsearch

Để sử dụng Elasticsearch, trước tiên hãy bổ sung một số dữ liệu cho server. Elasticsearch sử dụng API RESTful phản hồi lại các lệnh CRUD thông thường, gồm có: create, read, update, và delete.

Bạn có thể thêm một entry ngẫu nhiên như sau:

curl -XPOST -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' '{ "message": "Hello World!" }'
Output
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":2,"result":"updated","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":1,"_primary_term":1}

Thông qua curl, bạn vừa gửi một request HTTP POST đến server Elasticsearch. URI của request này là /tutorial/helloworld/1 với một số tham số như sau:

  • tutorial là chỉ mục của dữ liệu trong Elasticsearch.
  • helloworld là loại dữ liệu.
  • 1 là ID của entry.

Bạn có thể lấy entry đầu tiên bằng request HTTP GET như sau:

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1' '{ "message": "Hello World!" }'
Output
{"_index":"tutorial","_type":"helloworld","_id":"1","_version":1,"found":true,"_source":{ "message": "Hello, World!" }}

Nếu muốn chỉnh sửa một entry có sẵn thì bạn có thể dùng request HTTP PUT:

curl -X PUT -H "Content-Type: application/json"  'localhost:9200/tutorial/helloworld/1?pretty' '
{
  "message": "Hello, People!"
}'

Thông báo cho biết chỉnh sửa thành công:

Output
{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "result" : "updated",
  "_shards" : {
    "total" : 2,
    "successful" : 1,
    "failed" : 0
  },
  "_seq_no" : 1,
  "_primary_term" : 1
}

Ở ví dụ trên, bạn đã đổi message của entry đầu tiên thành “Hello, People!”, khi đó số phiên bản cũng sẽ được tự động tăng thành 2.

Bên cạnh đó, request trên cũng có thêm đối số pretty cho phép hiển thị định dạng dễ đọc cho người dùng và giúp bạn có thể viết từng trường dữ liệu trên một hàng mới. Bạn cũng có thể dùng đối số prettify trong kết quả để có output dễ đọc hơn:

curl -X GET -H "Content-Type: application/json" 'http://localhost:9200/tutorial/helloworld/1?pretty'
Output
{
  "_index" : "tutorial",
  "_type" : "helloworld",
  "_id" : "1",
  "_version" : 2,
  "_seq_no" : 1,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "message" : "Hello, People!"
  }
}

}

Với kinh nghiệm hơn 10 năm trong lĩnh vực cung cấp giải pháp VPS tốc độ cao, Vietnix đã vinh dự cùng đồng hành với sự thành công của hơn 50.000 khách hàng cá nhân và doanh nghiệp. Vietnix đã kích hoạt hơn 100.000 dịch vụ và nhận được sự giới thiệu của 97% khách hàng sau khi trải nghiệm.

Vietnix luôn nỗ lực để cung cấp các giải pháp VPS tối ưu cho khách hàng của mình, đảm bảo rằng họ sẽ nhận được dịch vụ tốt nhất và chất lượng nhất. Ngoài ra, Vietnix còn hỗ trợ khách hàng hệ sinh thái các dịch vụ chuyên nghiệp khác như lưu trữ web hosting, tên miền, máy chủ, Firewall Anti DDoS,… Hãy liên hệ với Vietnix ngay hôm nay để biết thêm thông tin về các dịch vụ mà bạn đang có nhu cầu sử dụng.

Mọi vấn đề thắc mắc cần tư vấn, quý khách vui lòng liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093 – 07 088 44444
  • Email: sales@vietnix.com.vn

Lời kết

Trên đây là những hướng dẫn cài đặt Elasticsearch trên Ubuntu 20.04. Mong rằng bạn có thể thực hiện thành công theo quy trình cài đặt này trên hệ thống của mình. Nếu có bất kỳ thắc mắc nào khác, hãy để lại ở phần comment bên dưới để được Vietnix hỗ trợ nhanh nhất nhé.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Black Friday Hosting & VPS

Chương trình bắt đầu sau

Giảm giá 40% hosting VPS

50 coupon mỗi ngày

Gia hạn giá không đổi

NHẬN DEAL NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG