NỘI DUNG
Elasticsearch là gì?
Elasticsearch là công cụ tìm kiếm và phân tích phân tán, RESTful mã nguồn mở, được xây dựng trên Apache Lucene. Kể từ khi phát hành năm 2010, Elasticsearch đã nhanh chóng trở thành công cụ tìm kiếm thông dụng nhất và được sử dụng rộng rãi cho các trường hợp sử dụng liên quan đến phân tích nhật ký, tìm kiếm toàn văn bản, thông tin bảo mật, phân tích nghiệp vụ và thông tin vận hành.
Khi nào nên sử dụng Elasticsearch?
Chúng ta nên sử dụng Elasticsearch trong những trường hợp sau
- Searching for pure text (textual search): tìm kiếm text thông thường.
- Searching text and structured data (product search by name + properties): tìm kiếm text và dữ liệu có cấu trúc.
- Data aggregation, security analytics, analysis of business data: tổng hợp dữ liệu, phân tích bảo mật, phân tích dữ liệu kinh doanh, lưu trữ số lượng dữ liệu lớn.
- Logging and log analytics: ghi lại quá trình hoạt động và phân tích nó.
- Application performance monitoring: giám sát hiệu năng ứng dụng.
- Infrastructure indicators and container monitoring.
- Geo Search: tìm kiếm theo tọa độ, phân tích và trực quan hóa dữ liệu không gian địa lý.
- JSON document storage: lưu trữ dữ liệu dạng JSON.
Elasticsearch hoạt động như thế nào?
Bạn có thể gửi dữ liệu dưới dạng tài liệu JSON lên Elasticsearch bằng cách sử dụng API hoặc công cụ thu thập như Logstash và Amazon Kinesis Firehose. Elasticsearch tự động lưu trữ văn bản gốc và thêm tham chiếu có thể tìm kiếm vào văn bản ở phần chỉ mục của cụm. Khi đó bạn có thể tìm và truy xuất văn bản bằng cách sử dụng Elasticsearch API. Bạn cũng có thể sử dụng Kibana, một công cụ trực quan hóa mã nguồn mở, cùng Elasticsearch để trực quan hóa dữ liệu và xây dựng bảng thông tin tương tác.
Và trong bài viết này mình sẽ Hướng dẫn cài đặt Elasticsearch trên CentOS 7 như sau.
Bước 1: Cài đặt Java 8
Đâu tiên bạn cần cài đặt vào Java 8 để làm môi trường. Mình sẽ sử dụng lệnh yum để cài đặt nhanh.
yum -y install java-1.8.0-openjdk.x86_64
Sau khi cài đặt xong bạn có thể kiểm tra phiên bản bằng lệnh sau.
[root@sv ~]# java -version openjdk version "1.8.0_292" OpenJDK Runtime Environment (build 1.8.0_292-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)
Bước 2: Cài đặt Elasticsearch trên CentOS 7
Mình sẽ cài đặt Elasticsearch bằng gói RPM. Bạn có thể truy cập link bên dưới để download các bản Elasticsearch với các OS tương ứng.
- Link download elasticsearch: https://www.elastic.co/downloads/elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.3-linux-x86_64.tar.gz rpm -ivh elasticsearch-7.13.3-x86_64.rpm
Sau đó chúng ta cần khởi động lại dịch vụ daemon-reload
bằng cách kích hoạt lệnh sau:
systemctl daemon-reload
Sau đó chúng ta khởi động Elasticsearch với lệnh sau:
systemctl start elasticsearch
Kiểm tra Elasticsearch với lệnh sau
[root@sv ~]# systemctl status elasticsearch ● elasticsearch.service - Elasticsearch Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2021-07-15 20:28:16 +07; 30s ago Docs: https://www.elastic.co Main PID: 30157 (java) CGroup: /system.slice/elasticsearch.service ├─30157 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX... └─30373 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
Đến đây là bạn có thể xác minh rằng Elasticsearch đang chạy bằng cách gửi yêu cầu HTTP đến cổng 9200 trên localhost bằng lệnh curl -X GET "localhost:9200/"
[root@sv ~]# curl -X GET "localhost:9200/" { "name" : "sv.rii.vn", "cluster_name" : "elasticsearch", "cluster_uuid" : "4GUD86oUQPuOPfpQxSEseQ", "version" : { "number" : "7.13.3", "build_flavor" : "default", "build_type" : "rpm", "build_hash" : "5d21bea28db1e89ecc1f66311ebdec9dc3aa7d64", "build_date" : "2021-07-02T12:06:10.804015202Z", "build_snapshot" : false, "lucene_version" : "8.8.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } [root@sv ~]#
Bước 3: Bật Remote Access Elasticsearch
Tuy nhiên đến đây chúng ta chỉ mới có thể sử dụng Elasticsearch ngay trên tính local mà thôi. Nếu bạn muốn người dùng bên ngoài kết nối với port 9200 thì bạn cần mở port 9200 và thực hiện thêm một số thao tác sau.
Tiến hành chỉnh sửa tập cấu hình của Elasticsearch với lệnh bên dưới:
vi /etc/elasticsearch/elasticsearch.yml
Di chuyển đến dòng 56 tiến hành bỏ #
dòng này và sửa thành nội dung bên dưới:
#network.host: 192.168.0.1 thành network.host: 0.0.0.0
Sau đó bỏ #
dòng 72
và tiến hành chỉnh sửa thành nội dung sau:
cluster.initial_master_nodes: node-1
Sau đó chúng ta sẽ cần khởi động lại Elasticsearch với lệnh sau:
systemctl start elasticsearch
Vậy là xong, bây giờ bạn hoàn toàn có thể kết nối từ xa đến máy chủ của bạn thông qua port 9200.
Chúc bạn thực hiện thành công.