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
24/03/2025
Lượt xem

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

24/03/2025
12 phút đọc
Lượt xem

Đánh giá

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

Elasticsearch là một công cụ tìm kiếm và phân tích mã nguồn mở mạnh mẽ, được xây dựng trên nền tảng Apache Lucene. Việc cài đặt Elasticsearch trên Ubuntu 20.04 cho phép bạn tận dụng tối đa sức mạnh của công cụ này để xử lý và phân tích dữ liệu trong thời gian thực. Trong bài viết này, mình sẽ chia sẻ tới bạn cách thực hiện thao tác này chi tiết nhất.

Những điểm chính

  • Điều kiện cần đáp ứng: Để cài đặt Elasticsearch trên Ubuntu 20.04, bạn cần server cấu hình tối thiểu 4GB RAM + 2 CPU, user non-root và OpenJDK 11 cài đặt sẵn.
  • Các bước thực hiện: Bắt đầu từ việc cài đặt, cấu hình, bảo mật Elasticsearch, sau đó kiểm tra lại và bắt đầu sử dụng Elasticsearch.
  • Biết đến Vietnix cung cấp dịch vụ VPS an tâm về tốc độ, ổn định, hỗ trợ 24/7.

Đ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:

  • 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.
Đ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

Để quá trình cài đặt và cấu hình Elasticsearch hoạt động mượt mà, đặc biệt với khối lượng dữ liệu lớn và truy vấn phức tạp, bạn cần một môi trường server mạnh mẽ và linh hoạt. Đó là lý do tại sao bạn nên cân nhắc sử dụng dịch vụ VPS AMD của Vietnix. Với hiệu năng vượt trội từ CPU AMD EPYC, khả năng mở rộng tài nguyên linh hoạt và toàn quyền quản trị server, VPS AMD Vietnix sẽ giúp tối ưu hóa hiệu suất Elasticsearch, đảm bảo hệ thống hoạt động ổn định và đáp ứng mọi nhu cầu của bạn.

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

iconLưu ý

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, mình 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

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!"
  }
}

}

Chọn VPS Vietnix – An tâm về tốc độ, ổn định, hỗ trợ 24/7

Với hơn 80.000 khách hàng tin chọn, Vietnix là một trong những nhà cung cấp VPS hàng đầu tại Việt Nam, mang đến trải nghiệm vượt trội về tốc độ, sự ổn định và chất lượng dịch vụ. Vietnix mang đến hạ tầng VPS mạnh mẽ, được xây dựng trên công nghệ hiện đại, đảm bảo hiệu suất vượt trội và uptime 99.9%. Đội ngũ chuyên gia giàu kinh nghiệm của Vietnix luôn sẵn sàng hỗ trợ 24/7, đảm bảo mọi thắc mắc của bạn được giải đáp nhanh chóng để an tâm phát triển website, ứng dụng mà không lo lắng về vấn đề kỹ thuật.

Thông tin 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.
  • Email: sales@vietnix.com.vn.
  • Website: https://vietnix.vn/.

Trên đây là những hướng dẫn cài đặt Elasticsearch trên Ubuntu 20.04 mà mình muốn chia sẻ tới bạn. 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. Ngoài ra, để xem cách thiết lập các phần mềm, ứng dụng khác trên Linux, bạn có thể tham khảo một số bài viết dưới đây của mì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

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

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi cuối tháng 3
Nhanh tay, số lượng có hạn!
17/03/2025 - 31/03/2025
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