Elasticsearch là một công cụ tìm kiếm và phân tích dữ liệu phân tán, hỗ trợ RESTful, có khả năng giải quyết một số lượng ngày càng tăng các trường hợp sử dụng. Là trung tâm của Elastic Stack, nó lưu trữ dữ liệu của bạn tập trung để tìm kiếm nhanh chóng, tinh chỉnh độ liên quan, và phân tích mạnh mẽ có thể mở rộng dễ dàng.
Truy cập địa chỉ tải chính thức, chọn phiên bản cần thiết, tải và giải nén về máy của bạn.
(2) Chạy
Chạy bin/elasticsearch (Trên hệ thống Windows, chạy bin\elasticsearch.bat)
(3) Truy cập
Thực hiện curl http://localhost:9200/ để kiểm tra xem dịch vụ đã khởi động chưa
Lập kế hoạch cho Cluster Elasticsearch
Cluster Elasticsearch cần được lập kế hoạch một cách hợp lý dựa trên tình hình thực tế của doanh nghiệp.
Các điểm cần xem xét:
Cần triển khai bao nhiêu node trong cluster?
Có bao nhiêu index?
Mỗi index có bao nhiêu dữ liệu?
Mỗi index có bao nhiêu shard?
Một kế hoạch tham khảo:
3 máy, mỗi máy là 6-core 64G.
Tăng hàng ngày của cluster ES của chúng tôi là khoảng 20 triệu bản ghi, dữ liệu tăng hàng ngày là khoảng 500MB, dữ liệu tăng hàng tháng là khoảng 600 triệu, 15G. Hệ thống đã hoạt động trong vài tháng, và bây giờ tổng lượng dữ liệu trong cluster ES là khoảng 100G.
Hiện tại có 5 index trực tuyến (điều này được kết hợp với doanh nghiệp của bạn, xem dữ liệu nào của bạn có thể đặt trong ES), mỗi index có khối lượng dữ liệu là khoảng 20G, vì vậy trong khối lượng dữ liệu này, chúng tôi phân bổ 8 shard cho mỗi index, đó là 3 shard nhiều hơn mặc định là 5 shard.
Cấu hình Elasticsearch
Tệp cấu hình mặc định của ES là config/elasticsearch.yml
Dưới đây là một số thông tin cơ bản về cấu hình:
Elasticsearch FAQ
Elasticsearch không cho phép chạy với quyền root
Vấn đề: Trong môi trường Linux, Elasticsearch không cho phép chạy với quyền root.
Nếu bạn chạy Elasticsearch dưới quyền root, bạn sẽ nhận được lỗi sau:
can not run elasticsearch as root
Cách giải quyết: Chạy Elasticsearch dưới tài khoản không có quyền root
vm.max_map_count không thấp hơn 262144
Vấn đề:vm.max_map_count biểu thị kích thước bộ nhớ ảo, đây là một tham số kernel. Elasticsearch yêu cầu vm.max_map_count không thấp hơn 262144.
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
Cách giải quyết:
Bạn có thể thực hiện lệnh sau để đặt vm.max_map_count, nhưng sau khi khởi động lại, nó sẽ trở lại giá trị ban đầu.
sysctl -w vm.max_map_count=262144
Cách làm lâu dài là sửa đổi tham số vm.max_map_count trong tệp /etc/sysctl.conf:
Nếu môi trường chạy là docker container, có thể sẽ hạn chế việc thực hiện sysctl để sửa đổi tham số kernel.
Trong trường hợp này, bạn chỉ có thể chọn sửa đổi tham số trên máy chủ chủ.
nofile không thấp hơn 65536
Vấn đề:nofile biểu thị số lượng tệp tối đa mà một quá trình có thể mở. Quá trình Elasticsearch yêu cầu số lượng tệp tối đa có thể mở không thấp hơn 65536.
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
Cách giải quyết:
Sửa đổi tham số nofile trong tệp /etc/security/limits.conf: