Elasticsearch là một công cụ tìm kiếm mạnh mẽ, sẵn sàng cho sản xuất được viết bằng Java. Nó có thể được sử dụng như một công cụ tìm kiếm độc lập cho web hoặc như một công cụ tìm kiếm cho các ứng dụng web thương mại điện tử.
eBay, Facebook và Netflix là một số công ty sử dụng nền tảng này. Elasticsearch rất phổ biến vì nó không chỉ là một công cụ tìm kiếm. Nó cũng là một công cụ phân tích mạnh mẽ và là một hệ thống quản lý và truy xuất nhật ký. Điểm tuyệt vời nhất về nó là nó là Nguồn mở và miễn phí sử dụng. Kibana là công cụ trực quan hóa được cung cấp bởi elastic.
Trong hướng dẫn này, chúng ta sẽ thực hiện các bước cài đặt Elasticsearch tiếp theo là cài đặt Kibana. Sau đó, chúng ta sẽ sử dụng Kibana để lưu trữ và truy xuất dữ liệu.
Hai lệnh này sẽ cài đặt open-jre và open-jdk mới nhất trên hệ thống của bạn. Tôi sẽ sử dụng JAVA 8 ở đây. Các hình ảnh sau đây cho thấy, đầu ra bạn sẽ nhận được khi bạn không cài đặt java và chạy các lệnh trên.
Với lệnh này, tệp .deb sẽ bắt đầu tải xuống. Nó sẽ trông giống như hình ảnh bên dưới:
Sau khi tải xuống thành công, chúng ta có thể cài đặt bằng cách chạy lệnh sau. Đầu ra của quá trình cài đặt thành công như sau.
Sau khi trình soạn thảo mở ra, bạn phải bỏ chú thích cho dòng:
và sau đó đổi IP thành localhost như trong hình bên dưới:
Bây giờ, chúng ta đã sẵn sàng để chạy quy trình. Sử dụng các lệnh sau:
Ba lệnh này thêm quy trình Elasticsearch vào daemon hệ thống để nó sẽ tự động khởi động khi hệ thống của bạn khởi động và sau đó nó khởi động lại chính quy trình đó. Để kiểm tra xem hệ thống có hoạt động và chạy hay không, hãy sử dụng lệnh sau. Đầu ra sẽ tương tự như hình ảnh hiển thị bên dưới.
khi chạy lệnh thứ hai, nếu lệnh yêu cầu bạn sửa đổi tệp cấu hình Kibana hiện có, bạn có thể nhấn enter để giữ nguyên mặc định và hoàn thành cuộc thi. Sau khi cài đặt, nó sẽ trông giống như hình ảnh bên dưới.
Sử dụng lệnh sau để mở tệp cấu hình. Tệp sau khi bạn thực hiện các thay đổi sẽ trông giống như hình ảnh bên dưới:
"server.name" có thể là bất kỳ tên nào, vì vậy bạn có thể thoải mái thay đổi. Sau khi thực hiện các thay đổi này, hãy lưu và đóng tệp. Việc cuối cùng cần làm là thêm quy trình Kibana vào danh sách quy trình hệ thống để nó tự động khởi động mỗi khi hệ thống khởi động. Chạy các lệnh sau:
Sau khi chạy các lệnh này, bạn có thể mở trình duyệt web và sử dụng URL sau để kiểm tra xem nó đã được cài đặt đúng chưa. Hình ảnh bên dưới cho thấy nó trông như thế nào:
Vậy là xong. Bây giờ bạn đã cài đặt thành công Kibana và Elasticsearch.
Đi đến "Dev Tools" bằng cách nhấp vào biểu tượng trên Bảng điều khiển bên trái. Bạn cũng có thể sử dụng URL sau:
Sau khi tải xong, bạn sẽ thấy phần giới thiệu "Welcome to Console" về UI. Bạn có thể đọc phần đó hoặc chỉ cần nhấp vào nút "Get To Work" ở cuối phần giới thiệu đó. Sau khi nhấp vào nút đó, UI sẽ trông giống như hình ảnh bên dưới:
Ở bên trái, chúng ta sẽ nhập các lệnh và ở bảng bên phải, chúng ta sẽ nhận được kết quả. Hãy thử gửi và lưu trữ một số dữ liệu đến công cụ tìm kiếm.
Bạn có thể nhập lệnh này vào "Dev Tools" và nhấn nút phát màu xanh lá cây bên cạnh để chạy lệnh. Đầu ra sẽ tương tự như hình ảnh bên dưới:
Trong lệnh trên, "course" chỉ ra loại dữ liệu đang được lập chỉ mục. Từ phản hồi, bạn có thể thấy rằng mục nhập này cũng có một id duy nhất. Trong lệnh bên dưới, bạn có thể thấy rằng có một tham số khác sau "course", đây là cách bạn có thể chỉ định id cho mục nhập sinh viên này. Theo cách này, elasticsearch sẽ không bận tâm tạo ID mà sử dụng ID này làm ID của bản ghi này.
Sau đây là các hình ảnh hiển thị phản hồi từ công cụ tìm kiếm khi cả hai lệnh được chạy:
Lệnh này tìm kiếm chỉ mục "student" để tìm các tài liệu thuộc loại "course" và cố gắng khớp một thuật ngữ với tên trường "name" có giá trị "James". Vì có một sinh viên tên là James trong chỉ mục, chúng ta nhận được phản hồi như trong hình ảnh bên dưới:
Đây chỉ là những điều cơ bản, Có rất nhiều thứ có thể thực hiện được với Elasticsearch và cần phải khám phá rất nhiều để nắm vững khuôn khổ này và sử dụng nó một cách tốt nhất có thể.
eBay, Facebook và Netflix là một số công ty sử dụng nền tảng này. Elasticsearch rất phổ biến vì nó không chỉ là một công cụ tìm kiếm. Nó cũng là một công cụ phân tích mạnh mẽ và là một hệ thống quản lý và truy xuất nhật ký. Điểm tuyệt vời nhất về nó là nó là Nguồn mở và miễn phí sử dụng. Kibana là công cụ trực quan hóa được cung cấp bởi elastic.
Trong hướng dẫn này, chúng ta sẽ thực hiện các bước cài đặt Elasticsearch tiếp theo là cài đặt Kibana. Sau đó, chúng ta sẽ sử dụng Kibana để lưu trữ và truy xuất dữ liệu.
1 Cài đặt Java
Vì Elasticsearch được viết bằng Java nên trước tiên phải cài đặt. Sử dụng các lệnh bên dưới để cài đặt các phiên bản mã nguồn mở của JRE và JDK:
Mã:
sudo apt-get install default-jre
sudo apt-get install default-jdk
2 Cài đặt Elasticsearch
Elasticsearch 5 đã được phát hành gần đây. Nó có một số thay đổi lớn so với các phiên bản trước đó của 2.x. Tại thời điểm viết bài viết này, phiên bản 5.2.2 là bản phát hành mới nhất và chúng tôi sẽ cài đặt phiên bản đó. Vì vậy, hãy làm theo các bước dưới đây để cài đặt.
Mã:
mkdir elasticsearch; cd elasticsearch
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.2.deb
Sau khi tải xuống thành công, chúng ta có thể cài đặt bằng cách chạy lệnh sau. Đầu ra của quá trình cài đặt thành công như sau.
Mã:
sudo dpkg -i elasticsearch-5.2.2.deb
3 Cấu hình và chạy Elasticsearch
Elasticsearch chạy như một quy trình nền. Nhưng trước khi bắt đầu, chúng ta phải chỉnh sửa tệp cấu hình để thêm hệ thống hiện tại làm máy chủ chạy công cụ. sử dụng lệnh sau để mở tệp cấu hình:
Mã:
sudo gedit /etc/elasticsearch/elasticsearch.yml
Mã:
#network.host: 192.168.0.1
Bây giờ, chúng ta đã sẵn sàng để chạy quy trình. Sử dụng các lệnh sau:
Mã:
sudo systemctl daemon-reload
Mã:
sudo systemctl enable elasticsearch
Mã:
sudo systemctl restart elasticsearch
Mã:
curl -XGET "http://localhost:9200"
4 Cài đặt Kibana
Tải xuống và cài đặt tệp deb bằng các lệnh sau:
Mã:
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.2.2-amd64.deb
Mã:
sudo dpkg -i kibana-5.2.2-amd64.deb
5 Cấu hình và chạy Kibana
Trong tệp cấu hình Kibana, bỏ chú thích các dòng sau:
Mã:
server.port:
server.host:
server.name:
elasticsearch.name:
kibana.index:
Mã:
sudo gedit /etc/kibana/kibana.yml
Mã:
sudo systemctl daemon-reload
Mã:
sudo systemctl enable kibana
Mã:
sudo systemctl start kibana
Mã:
[URL=http://localhost?utm_source=diendancongnghe.com]http://localhost:5601[/URL]
Vậy là xong. Bây giờ bạn đã cài đặt thành công Kibana và Elasticsearch.
6 Cách sử dụng cơ bản
Chúng ta có thể sử dụng tiện ích "Dev Tools" do Kibana cung cấp để giao tiếp với Elasticsearch. Nó cung cấp một giao diện sạch sẽ và đơn giản để thực thi các lệnh dưới dạng đối tượng JSON. Chúng ta sẽ tương tác với công cụ cốt lõi thông qua giao diện REST.Đi đến "Dev Tools" bằng cách nhấp vào biểu tượng trên Bảng điều khiển bên trái. Bạn cũng có thể sử dụng URL sau:
Mã:
[URL=http://localhost/app/kibana?utm_source=diendancongnghe.com#/dev_tools/]http://localhost:5601/app/kibana#/dev_tools/[/URL]
Ở bên trái, chúng ta sẽ nhập các lệnh và ở bảng bên phải, chúng ta sẽ nhận được kết quả. Hãy thử gửi và lưu trữ một số dữ liệu đến công cụ tìm kiếm.
6.1Tạo một Index
Dữ liệu được lưu trữ trong một index. Để tạo một index, chúng ta sử dụng lệnh PUT. Yêu cầu JSON sẽ chứa tên của chỉ mục và một số cài đặt tùy chọn mà chúng ta có thể cung cấp. Lệnh sau là một ví dụ để tạo chỉ mục có tên là "student".
Mã:
PUT student
{
"settings": {
"number_of_shards": 3
}
}
6.2 Chèn một số dữ liệu vào chỉ mục
Chúng ta sẽ sử dụng lệnh gọi POST để chèn dữ liệu vào chỉ mục. Dữ liệu cần chèn ở dạng JSON, vì vậy chúng ta hãy tiếp tục thêm students vào chỉ mục. Lệnh là:
Mã:
POST student/course
{
"name":"james",
"course": "mathematics"
}
Mã:
POST student/course/2
{
"name":"tina",
"course": "physics"
}
6.3 Lấy dữ liệu từ Index
Bạn cũng có thể lấy dữ liệu từ nhiều trường khác nhau từ bản ghi hoặc mục đã lưu trữ. Mỗi mục mà chúng ta đã lưu ở bước trước được gọi là một tài liệu trong Elasticsearch. Chúng ta sẽ sử dụng lệnh gọi GET để lấy tài liệu từ chỉ mục. Sau đây là cách bạn có thể lấy một tài liệu bằng cách sử dụng trường "name":
Mã:
GET student/course/_search
{
"query": {
"term": {
"name": {
"value": "james"
}
}
}
}
Đây chỉ là những điều cơ bản, Có rất nhiều thứ có thể thực hiện được với Elasticsearch và cần phải khám phá rất nhiều để nắm vững khuôn khổ này và sử dụng nó một cách tốt nhất có thể.