Cài đặt Elasticsearch trên Ubuntu 20.04

Elasticsearch là một công cụ phân tích mã nguồn mở, có sẵn miễn phí cho dữ liệu địa lý, số, văn bản, có cấu trúc và phi cấu trúc. Nó được phát hành vào năm 2010 bởi Elasticsearch N.V và dựa trên Apache Lucene. Nền tảng của Elastic Stack là Elasticsearch, là một tập hợp các công nghệ mã nguồn mở để trực quan hóa, phân tích, lưu trữ dữ liệu. Nó cũng được biết đến với các REST API tốc độ, khả năng mở rộng và bản chất phân tán.

Elasticsearch thu thập dữ liệu phi cấu trúc từ nhiều nguồn, tổ chức dữ liệu theo ánh xạ do người dùng xác định và lập chỉ mục dữ liệu trong thời gian thực. Nó là một công cụ tìm kiếm nổi tiếng được thiết kế cho các ứng dụng có yêu cầu tìm kiếm phức tạp. Bạn có thể sử dụng Elasticsearch để tạo một công cụ tìm kiếm phức tạp hoạt động tương tự như công cụ tìm kiếm Google.

Khả năng mở rộng và tốc độ của Elasticsearch, cũng như khả năng lập chỉ mục nhiều loại nội dung, làm cho nó phù hợp với nhiều mục đích khác nhau, bao gồm tìm kiếm trang web, tìm kiếm ứng dụng, tìm kiếm doanh nghiệp, giám sát hiệu suất của ứng dụng, phân tích kinh doanh, phân tích bảo mật, ghi log và ghi log phân tích, phân tích và trực quan hóa dữ liệu không gian địa lý.

Đảm bảo rằng máy chủ được cập nhật

Trước khi tiếp tục, hãy đảm bảo rằng máy chủ được cập nhật và tất cả các gói đều là phiên bản mới nhất. Sử dụng các lệnh sau để đạt được điều này:
sudo apt update
sudo apt upgrade -y
Nếu có các gói cần nâng cấp, lệnh trên có thể mất vài phút. Ta cũng cài đặt một số gói phổ biến mà chúng ta sẽ cần sau:
sudo apt install -y vim wget

Import Elasticsearch PGP Key

Tải xuống và cài đặt khóa ký công khai:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Cài đặt Elasticsearch từ kho lưu trữ APT

Lưu repository trong /etc/apt/sources.list.d/elastic-7.x.list:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Sau đó, bạn có thể cài đặt gói Elasticsearch với:
sudo apt-get update && sudo apt-get install elasticsearch

Khởi động và bật dịch vụ Elasticsearch

Để bắt đầu dịch vụ Elasticsearch, hãy sử dụng lệnh này:
sudo systemctl start elasticsearch
Xác nhận trạng thái bằng lệnh này:
$ sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
Active: active (running) since Tue 2022-01-04 08:43:50 UTC; 2min 17s ago
Docs: https://www.elastic.co
Main PID: 53053 (java)
Tasks: 64 (limit: 4631)
Memory: 2.3G
CGroup: /system.slice/elasticsearch.service
├─53053 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true >
└─53244 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

Jan 04 08:43:25 ubuntusrv.citizix.com systemd[1]: Starting Elasticsearch...
Jan 04 08:43:50 ubuntusrv.citizix.com systemd[1]: Started Elasticsearch.
Từ những điều trên, chúng ta có thể thấy rằng dịch vụ đang hoạt động. Để bật dịch vụ khi khởi động, hãy sử dụng lệnh sau:
sudo systemctl enable elasticsearch
Nếu Elasticsearch không khởi động được vì bất kỳ lý do gì, nó sẽ in ra lý do STDOUT. Các tệp nhật ký có thể được tìm thấy trong /var/log/elasticsearch/.

Xác minh Elasticsearch

Tại thời điểm này, ElasticSearch được khởi động và đang lắng nghe trên cổng 9200. Bạn có thể kiểm tra bằng lệnh sau:
$ ss -antpl | grep 9200
LISTEN 0 4096 [::ffff:127.0.0.1]:9200 *:*
LISTEN 0 4096 [::1]:9200 [::]:*
Bạn cũng có thể xác minh ElasticSearch bằng lệnh sau:
curl -X GET "localhost:9200/"

Output:
{
"name" : "ubuntusrv.citi.com",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "S9ojK5o5RCG7iVAMROtOBw",
"version" : {
"number" : "7.16.2",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "2b937c44140b6559905130a8650c64dbd0879cfb",
"build_date" : "2021-12-18T19:42:46.604893745Z",
"build_snapshot" : false,
"lucene_version" : "8.10.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}

Thực hiện các thao tác đơn giản với Elasticsearch

Bạn có thể sử dụng lệnh Curl để thêm dữ liệu vào ElasticSearch như hình dưới đây:
curl -H 'Content-Type: application/json' -X POST 'http://localhost:9200/todo/task/1' -d '{ "name": "Go to the mall." }'
Bạn sẽ thấy kết quả sau:
{"_index":"todo","_type":"task","_id":"1","_version":1,"result":"created","_shards":{"total":2,"successful":1,"failed":0},"_seq_no":0,"_primary_term":1}
Bây giờ bạn có thể truy xuất dữ liệu của mình bằng GET:
curl -X GET 'http://localhost:9200/todo/task/1'
Bạn sẽ thấy kết quả sau:
{"_index":"todo","_type":"task","_id":"1","_version":1,"_seq_no":0,"_primary_term":1,"found":true,"_source":{ "name": "Go to the mall." }}
Để truy xuất dữ liệu ở định dạng con người có thể đọc được, hãy chạy lệnh sau:
curl -X GET 'http://localhost:9200/todo/task/1?pretty'
Bạn sẽ nhận được kết quả sau:
{
"_index" : "todo",
"_type" : "task",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"name" : "Go to the mall."
}
}