Configuring BlackHole
Có hai loại cài đặt BlackHole: động (dynamic) và tĩnh (static).Dynamic settings
Dynamic index settings là cài đặt bạn có thể cập nhật bất cứ lúc nào. Bạn có thể cấu hình cài đặt BlackHole động thông qua API Cài đặt Cụm. Để biết chi tiết, hãy xem Cập nhật cài đặt cụm bằng API.Static settings
Một số thao tác là tĩnh và yêu cầu bạn phải sửa đổi tệp cấu hìnhblackhole.yml và khởi động lại cụm. Nhìn chung, các thiết lập này liên quan đến mạng, việc hình thành cụm và hệ thống tệp cục bộ. Để tìm hiểu thêm, hãy xem phần Hình thành cụm.
Chỉ định cài đặt cấu hình khi khởi động
Bạn có thể chỉ định cài đặt cấu hình theo những cách sau.Flags at startup
Bạn có thể truyền cấu hình trực tiếp tới tiến trình JVM khi khởi động bằng cách sử dụng cờ-E khi khởi chạy BlackHole:
Directly in the shell environment
Bạn có thể cấu hình các biến môi trường trực tiếp trong môi trường shell trước khi khởi động BlackHole, như thể hiện trong ví dụ sau:Systemd service file
Khi chạy BlackHole dưới dạng dịch vụ do systemd quản lý, bạn có thể chỉ định các biến môi trường trong tệp dịch vụ, như được hiển thị trong ví dụ sau:Docker environment variables
Khi chạy BlackHole trong Docker, bạn có thể chỉ định các biến môi trường bằng tùy chọn-e với lệnh docker run, như được hiển thị trong lệnh sau:
Updating cluster settings using the API
Bước đầu tiên để thay đổi cài đặt là xem cài đặt hiện tại bằng cách gửi yêu cầu sau:- Transient settings
- Persistent settings
- Settings from
blackhole.yml - Default settings
Configuration file
Bạn có thể tìm thấyblackhole.yml tại /usr/share/blackhole/config/blackhole.yml (Docker) hoặc /etc/blackhole/blackhole.yml (most Linux distributions) trên mỗi nút.
Bạn có thể chỉnh sửa BLACKHOLE_PATH_CONF=/etc/blackhole để thay đổi vị trí thư mục cấu hình. Biến này được lấy từ /etc/default/blackhole (gói Debian) và /etc/sysconfig/blackhole (gói RPM).
Bạn không đánh dấu cài đặt trong blackhole.yml là cố định hay tạm thời và cài đặt sử dụng dạng phẳng:
(Optional) Cấu hình tiêu đề CORS
Nếu bạn đang làm việc trên một ứng dụng khách chạy trên cụm BlackHole trên một miền khác, bạn có thể cấu hình tiêu đề trongblackhole.yml để cho phép phát triển ứng dụng cục bộ trên cùng một máy. Sử dụng Chia sẻ Tài nguyên Nguồn gốc chéo (Cross-Origin Resource Sharing) để ứng dụng của bạn có thể thực hiện lệnh gọi đến API BlackHole đang chạy cục bộ. Thêm các dòng sau vào tệp custom-blackhole.yml của bạn:
Cấu hình và cài đặt hệ thống
Để biết tổng quan về cách tạo cụm BlackHole và các ví dụ về cài đặt cấu hình, hãy xem mục Tạo cụm. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem mục Cấu hình BlackHole. BlackHole hỗ trợ các cài đặt hệ thống sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.name | Static, chuỗi | Tên cụm. Mặc định là blackhole. |
node.name | Static, chuỗi | Tên mô tả cho nút. Bắt buộc. |
node.roles | Static, danh sách | Xác định một hoặc nhiều vai trò cho một nút BlackHole. Các giá trị hợp lệ là cluster_manager, data, ingest, search, ml, remote_cluster_client và coordinating_only. Mặc định là cluster_manager,data,ingest,remote_cluster_client. |
path.data | Static, chuỗi | Đường dẫn đến thư mục lưu trữ dữ liệu của bạn. Phân tách nhiều vị trí bằng dấu phẩy. Mặc định là $BLACKHOLE_HOME/data. |
path.logs | Static, chuỗi | Đường dẫn đến các tệp nhật ký. Mặc định là $BLACKHOLE_HOME/logs. |
bootstrap.memory_lock | Static, Boolean | Khóa bộ nhớ khi khởi động. Chúng tôi khuyến nghị đặt kích thước heap khoảng một nửa bộ nhớ có sẵn trên hệ thống và chủ sở hữu tiến trình được phép sử dụng giới hạn này. BlackHole không hoạt động tốt khi hệ thống đang hoán đổi bộ nhớ. Mặc định là false. |
bootstrap.system_call_filter | Static, Boolean | Kiểm soát liệu BlackHole có bật bộ lọc lệnh gọi hệ thống (seccomp) để tăng cường bảo mật hay không. Khi được bật, bộ lọc lệnh gọi hệ thống ngăn chặn một số lệnh gọi hệ thống có khả năng nguy hiểm được thực thi, cung cấp một lớp bảo mật bổ sung. Nếu không thể cài đặt bộ lọc lệnh gọi hệ thống do vấn đề cấu hình hệ thống, có thể đặt cài đặt này thành false để tắt chúng, nhưng điều này làm giảm bảo mật. Mặc định là true. |
node.store.allow_mmap | Static, Boolean | Kiểm soát liệu có cho phép truy cập tệp ánh xạ bộ nhớ cho các hoạt động lưu trữ chỉ mục hay không. Khi được bật, BlackHole có thể sử dụng ánh xạ bộ nhớ (các loại lưu trữ mmapfs và hybridfs) để cải thiện hiệu suất I/O bằng cách ánh xạ tệp trực tiếp vào bộ nhớ ảo. Tắt cài đặt này buộc sử dụng các triển khai lưu trữ thay thế không yêu cầu ánh xạ bộ nhớ, điều này có thể cần thiết trong các môi trường có hạn chế ánh xạ bộ nhớ hoặc không gian địa chỉ ảo hạn chế. Mặc định là true. |
Network settings
BlackHole sử dụng cài đặt HTTP để cấu hình giao tiếp với máy khách bên ngoài thông qua REST API và cài đặt vận chuyển cho giao tiếp giữa các nút nội bộ trong BlackHole. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem phần Cấu hình BlackHole. BlackHole hỗ trợ các cài đặt mạng phổ biến sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
network.host | Static, danh sách | Liên kết một nút BlackHole với một địa chỉ. Sử dụng 0.0.0.0 để bao gồm tất cả các giao diện mạng có sẵn, hoặc chỉ định một địa chỉ IP được gán cho một giao diện cụ thể. Cài đặt network.host là sự kết hợp của network.bind_host và network.publish_host nếu chúng có cùng giá trị. Một cách thay thế cho network.host là cấu hình network.bind_host và network.publish_host riêng biệt khi cần. Xem Cài đặt mạng nâng cao. |
http.port | Static, giá trị đơn hoặc phạm vi | Liên kết một nút BlackHole với một cổng tùy chỉnh hoặc một phạm vi cổng cho giao tiếp HTTP. Bạn có thể chỉ định một địa chỉ hoặc một phạm vi địa chỉ. Mặc định là 9200-9300. |
transport.port | Static, giá trị đơn hoặc phạm vi | Liên kết một nút BlackHole với một cổng tùy chỉnh cho giao tiếp giữa các nút. Bạn có thể chỉ định một địa chỉ hoặc một phạm vi địa chỉ. Mặc định là 9300-9400. |
Cài đặt mạng nâng cao
BlackHole hỗ trợ các cài đặt mạng nâng cao sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
network.bind_host | Static, danh sách | Liên kết một nút BlackHole với một hoặc nhiều địa chỉ cho các kết nối đến. Mặc định là giá trị trong network.host. |
network.publish_host | Static, danh sách | Chỉ định một hoặc nhiều địa chỉ mà một nút BlackHole công bố cho các nút khác trong cụm để chúng có thể kết nối với nó. |
General TCP settings
BlackHole hỗ trợ các cài đặt TCP sau đây áp dụng cho tất cả các kết nối mạng, bao gồm cả lớp HTTP và lớp vận chuyển:| Cài đặt | Loại | Mô tả |
|---|---|---|
network.tcp.keep_alive | Static, Boolean | Bật hoặc tắt TCP keep-alive cho tất cả các kết nối TCP được BlackHole sử dụng, bao gồm cả lớp HTTP và lớp vận chuyển. Khi được bật, hệ điều hành sẽ gửi các gói keep-alive định kỳ để phát hiện các kết nối chết. Mặc định là true. |
network.tcp.no_delay | Static, Boolean | Bật hoặc tắt tùy chọn TCP_NODELAY cho tất cả các kết nối TCP. Khi được bật, tắt thuật toán Nagle, có thể giảm độ trễ cho các tin nhắn nhỏ nhưng tăng lưu lượng mạng. Điều này áp dụng cho cả kết nối HTTP và vận chuyển. Mặc định là true. |
network.tcp.receive_buffer_size | Static, đơn vị byte | Đặt kích thước bộ đệm nhận TCP cho tất cả các kết nối TCP được BlackHole sử dụng. Điều này ảnh hưởng đến cả kết nối HTTP và vận chuyển. Bộ đệm lớn hơn có thể cải thiện thông lượng cho các kết nối băng thông cao. Theo mặc định, giá trị này không được đặt rõ ràng và sử dụng mặc định của hệ điều hành. |
network.tcp.reuse_address | Static, Boolean | Kiểm soát liệu các địa chỉ TCP có thể được sử dụng lại cho tất cả các kết nối TCP hay không. Điều này ảnh hưởng đến hành vi liên kết socket cho cả kết nối HTTP và vận chuyển. Mặc định là true trên các máy không phải Windows và false trên Windows. |
network.tcp.send_buffer_size | Static, đơn vị byte | Đặt kích thước bộ đệm gửi TCP cho tất cả các kết nối TCP được BlackHole sử dụng. Điều này ảnh hưởng đến cả kết nối HTTP và vận chuyển. Bộ đệm lớn hơn có thể cải thiện thông lượng cho các kết nối băng thông cao. Theo mặc định, giá trị này không được đặt rõ ràng và sử dụng mặc định của hệ điều hành. |
Advanced HTTP settings
BlackHole hỗ trợ các cài đặt mạng nâng cao sau đây cho giao tiếp HTTP:| Cài đặt | Loại | Mô tả |
|---|---|---|
http.host | Static, danh sách | Đặt địa chỉ của một nút BlackHole cho giao tiếp HTTP. Cài đặt http.host là sự kết hợp của http.bind_host và http.publish_host nếu chúng có cùng giá trị. Một cách thay thế cho http.host là cấu hình http.bind_host và http.publish_host riêng biệt khi cần. |
http.bind_host | Static, danh sách | Chỉ định một hoặc nhiều địa chỉ mà một nút BlackHole liên kết để lắng nghe các kết nối HTTP đến. |
http.publish_host | Static, danh sách | Chỉ định một hoặc nhiều địa chỉ mà một nút BlackHole công bố cho các nút khác để giao tiếp HTTP. |
http.compression | Static, Boolean | Bật hỗ trợ nén bằng cách sử dụng Accept-Encoding khi có thể. Khi HTTPS được bật, mặc định là false, nếu không, mặc định là true. Tắt nén cho HTTPS giúp giảm thiểu các rủi ro bảo mật tiềm ẩn, như các cuộc tấn công BREACH. Để bật nén cho lưu lượng HTTPS, hãy đặt rõ ràng http.compression thành true. |
http.max_header_size | Static, chuỗi | Kích thước tổng hợp tối đa của tất cả các tiêu đề HTTP được phép trong một yêu cầu. Mặc định là 16KB. |
http.compression_level | Static, số nguyên | Xác định mức nén sử dụng cho các phản hồi HTTP khi nén được bật. Các giá trị hợp lệ nằm trong phạm vi từ 1 (nén tối thiểu) đến 9 (nén tối đa). Giá trị cao hơn cung cấp nén tốt hơn nhưng sử dụng nhiều tài nguyên CPU hơn. Mặc định là 3. |
http.max_content_length | Static, đơn vị byte | Đặt độ dài nội dung tối đa được phép cho các yêu cầu HTTP. Các yêu cầu vượt quá giới hạn này sẽ bị từ chối. Cài đặt này giúp ngăn ngừa các vấn đề về bộ nhớ do các yêu cầu cực lớn gây ra. Mặc định là 100mb. |
http.max_initial_line_length | Static, đơn vị byte | Đặt độ dài tối đa được phép cho các URL HTTP trong dòng yêu cầu ban đầu. Các URL vượt quá giới hạn này sẽ bị từ chối. Mặc định là 4kB. |
http.max_warning_header_count | Static, số nguyên | Đặt số lượng tiêu đề cảnh báo tối đa có thể được bao gồm trong các phản hồi HTTP cho máy khách. Các tiêu đề cảnh báo cung cấp thông tin bổ sung về quá trình xử lý yêu cầu. Mặc định là không giới hạn (không có giới hạn). |
http.max_warning_header_size | Static, đơn vị byte | Đặt tổng kích thước tối đa của tất cả các tiêu đề cảnh báo kết hợp trong các phản hồi HTTP cho máy khách. Điều này giúp ngăn các tiêu đề phản hồi trở nên quá lớn. Mặc định là không giới hạn (không có giới hạn). |
http.pipelining.max_events | Static, số nguyên | Đặt số lượng sự kiện tối đa có thể được xếp hàng trong bộ nhớ trước khi một kết nối HTTP bị đóng. Cài đặt này giúp quản lý việc sử dụng bộ nhớ cho HTTP pipelining. Mặc định là 10000. |
http.publish_port | Static, số nguyên | Chỉ định cổng mà máy khách HTTP nên sử dụng khi giao tiếp với nút này. Cài đặt này hữu ích khi một nút cụm nằm sau proxy hoặc tường lửa và http.port thực tế không thể truy cập trực tiếp từ bên ngoài mạng. Mặc định là cổng thực tế được gán qua http.port. |
http.tcp.no_delay | Static, Boolean | Kiểm soát tùy chọn TCP_NODELAY cho các kết nối HTTP. Khi được bật, tắt thuật toán Nagle, có thể giảm độ trễ cho các tin nhắn nhỏ nhưng tăng lưu lượng mạng. Mặc định là true. |
HTTP CORS settings
BlackHole hỗ trợ các thiết lập Chia sẻ tài nguyên nguồn gốc chéo (CORS) sau đây cho HTTP:| Cài đặt | Loại | Mô tả |
|---|---|---|
http.cors.enabled | Static, Boolean | Bật hoặc tắt CORS cho các yêu cầu HTTP. Khi được bật, BlackHole xử lý các yêu cầu preflight CORS và phản hồi với các tiêu đề Access-Control-Allow-Origin phù hợp nếu nguồn gốc yêu cầu được phép. Khi bị tắt, BlackHole bỏ qua tiêu đề yêu cầu Origin, thực tế là tắt CORS. Mặc định là false. |
http.cors.allow-origin | Static, danh sách | Chỉ định nguồn gốc nào được phép cho các yêu cầu CORS. Bạn có thể sử dụng ký tự đại diện (*) để cho phép tất cả các nguồn gốc, mặc dù điều này được coi là rủi ro bảo mật. Bạn cũng có thể sử dụng biểu thức chính quy bằng cách bao quanh giá trị bằng dấu gạch chéo (ví dụ: /https?:\/\/localhost(:[0-9]+)?/). Mặc định là không cho phép nguồn gốc nào. |
http.cors.allow-methods | Static, danh sách | Chỉ định các phương thức HTTP nào được phép cho các yêu cầu CORS. Mặc định là OPTIONS, HEAD, GET, POST, PUT, DELETE. |
http.cors.allow-headers | Static, danh sách | Chỉ định các tiêu đề HTTP nào được phép trong các yêu cầu CORS. Mặc định là X-Requested-With, Content-Type, Content-Length. |
http.cors.allow-credentials | Static, Boolean | Kiểm soát liệu tiêu đề Access-Control-Allow-Credentials có nên được bao gồm trong các phản hồi CORS hay không. Tiêu đề này chỉ được trả về khi cài đặt này là true. Mặc định là false. |
http.cors.max-age | Static, đơn vị thời gian | Xác định thời gian các trình duyệt nên lưu bộ nhớ đệm kết quả của các yêu cầu preflight OPTIONS CORS. Các trình duyệt gửi các yêu cầu preflight để xác định cài đặt CORS trước khi thực hiện các yêu cầu cross-origin thực tế. Mặc định là 1728000 giây (20 ngày). |
HTTP error handling settings
BlackHole hỗ trợ các cài đặt xử lý lỗi HTTP sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
http.detailed_errors.enabled | Static, Boolean | Kiểm soát liệu các thông báo lỗi chi tiết và stack trace có được bao gồm trong đầu ra phản hồi HTTP hay không. Khi được đặt thành false, chỉ các thông báo lỗi đơn giản được trả về trừ khi tham số yêu cầu error_trace được chỉ định (sẽ trả về lỗi khi lỗi chi tiết bị tắt). Mặc định là true. |
HTTP debugging settings
BlackHole hỗ trợ các cài đặt gỡ lỗi HTTP sau để theo dõi giao tiếp HTTP:| Cài đặt | Loại | Mô tả |
|---|---|---|
http.tracer.include | Dynamic, danh sách | Chỉ định danh sách các đường dẫn yêu cầu HTTP hoặc các mẫu ký tự đại diện phân tách bằng dấu phẩy để bao gồm trong truy vết HTTP. Khi được cấu hình, chỉ các yêu cầu HTTP khớp với các mẫu này được truy vết trong nhật ký. Cài đặt này hữu ích để gỡ lỗi các endpoint HTTP hoặc lệnh gọi API cụ thể. Mặc định là [] (danh sách trống, truy vết tất cả các yêu cầu khi truy vết HTTP được bật). |
http.tracer.exclude | Dynamic, danh sách | Chỉ định danh sách các đường dẫn yêu cầu HTTP hoặc các mẫu ký tự đại diện phân tách bằng dấu phẩy để loại trừ khỏi truy vết HTTP. Các yêu cầu HTTP khớp với các mẫu này không được truy vết trong nhật ký, ngay cả khi truy vết HTTP được bật. Cài đặt này hữu ích để giảm nhiễu từ các endpoint thường xuyên hoặc không quan trọng. Mặc định là [] (danh sách trống, không loại trừ khi truy vết HTTP được bật). |
Advanced transport settings
BlackHole hỗ trợ các thiết lập mạng nâng cao sau đây cho truyền thông vận tải:| Cài đặt | Loại | Mô tả |
|---|---|---|
transport.host | Static, danh sách | Đặt địa chỉ của một nút BlackHole cho giao tiếp vận chuyển. Cài đặt transport.host là sự kết hợp của transport.bind_host và transport.publish_host nếu chúng có cùng giá trị. Một cách thay thế cho transport.host là cấu hình transport.bind_host và transport.publish_host riêng biệt khi cần. |
transport.bind_host | Static, danh sách | Chỉ định một hoặc nhiều địa chỉ mà một nút BlackHole liên kết để lắng nghe các kết nối vận chuyển đến. |
transport.publish_host | Static, danh sách | Chỉ định một hoặc nhiều địa chỉ mà một nút BlackHole công bố cho các nút khác để giao tiếp vận chuyển. |
Transport debugging settings
BlackHole hỗ trợ các thiết lập gỡ lỗi vận chuyển sau đây để theo dõi liên lạc vận chuyển:| Cài đặt | Loại | Mô tả |
|---|---|---|
transport.tracer.include | Dynamic, danh sách | Chỉ định danh sách các hành động vận chuyển hoặc các mẫu phân tách bằng dấu phẩy để bao gồm trong truy vết vận chuyển. Khi được cấu hình, chỉ các giao tiếp vận chuyển khớp với các mẫu này được truy vết trong nhật ký. Cài đặt này hữu ích để gỡ lỗi các hoạt động nội bộ BlackHole cụ thể. Mặc định là [] (danh sách trống, truy vết tất cả các hành động khi truy vết vận chuyển được bật). |
transport.tracer.exclude | Dynamic, danh sách | Chỉ định danh sách các hành động vận chuyển hoặc các mẫu phân tách bằng dấu phẩy để loại trừ khỏi truy vết vận chuyển. Các giao tiếp vận chuyển khớp với các mẫu này không được truy vết trong nhật ký, ngay cả khi truy vết vận chuyển được bật. Cài đặt này hữu ích để giảm nhiễu từ các hoạt động thường xuyên hoặc không quan trọng. Mặc định là [] (danh sách trống, không loại trừ khi truy vết vận chuyển được bật). |
Transport profile settings
BlackHole hỗ trợ các thiết lập cấu hình vận chuyển sau đây cho phép cấu hình nhiều cấu hình vận chuyển cho các loại kết nối khác nhau. Cấu hình vận chuyển cho phép bạn liên kết với nhiều cổng trên các giao diện khác nhau cho các loại kết nối khác nhau. Cấu hình mặc định đóng vai trò dự phòng cho các cấu hình khác và kiểm soát cách nút này kết nối với các nút khác trong cụm. Các thiết lập sau có thể được cấu hình cho từng cấu hình vận chuyển:| Cài đặt | Loại | Mô tả |
|---|---|---|
transport.profiles.<profile_name>.port | Dynamic, giá trị đơn hoặc phạm vi | Đặt cổng hoặc phạm vi cổng để liên kết cho cấu hình vận chuyển này. Các cấu hình khác nhau có thể sử dụng các cổng khác nhau để phân tách các loại lưu lượng. |
transport.profiles.<profile_name>.bind_host | Dynamic, danh sách | Chỉ định các giao diện mạng mà cấu hình vận chuyển này nên liên kết cho các kết nối đến. Các cấu hình khác nhau có thể liên kết với các giao diện mạng khác nhau. |
transport.profiles.<profile_name>.publish_host | Dynamic, danh sách | Chỉ định địa chỉ mà cấu hình vận chuyển này công bố cho các nút khác để chúng có thể kết nối với nó. Điều này hữu ích khi địa chỉ liên kết khác với địa chỉ có thể truy cập từ bên ngoài. |
transport.profiles.<profile_name>.tcp.no_delay | Dynamic, Boolean | Kiểm soát tùy chọn TCP_NODELAY cho các kết nối trên cấu hình vận chuyển này. Khi được bật, tắt thuật toán Nagle để giảm độ trễ cho các tin nhắn nhỏ. |
transport.profiles.<profile_name>.tcp.keep_alive | Dynamic, Boolean | Kiểm soát tùy chọn SO_KEEPALIVE cho các kết nối trên cấu hình vận chuyển này. Khi được bật, hệ điều hành gửi các gói keep-alive định kỳ để phát hiện các kết nối chết. |
transport.profiles.<profile_name>.tcp.keep_idle | Dynamic, đơn vị thời gian | Đặt khoảng thời gian một kết nối phải nhàn rỗi trước khi bắt đầu gửi các probe keepalive TCP. Chỉ có sẵn trên Linux và Mac với JDK 11 trở lên. Mặc định là -1 (sử dụng mặc định hệ thống). |
transport.profiles.<profile_name>.tcp.keep_interval | Dynamic, đơn vị thời gian | Đặt khoảng thời gian giữa các probe keepalive TCP cho các kết nối trên cấu hình vận chuyển này. Chỉ có sẵn trên Linux và Mac với JDK 11 trở lên. Mặc định là -1 (sử dụng mặc định hệ thống). |
transport.profiles.<profile_name>.tcp.keep_count | Dynamic, số nguyên | Đặt số lượng probe keepalive TCP có thể không được xác nhận trước khi kết nối bị ngắt. Chỉ có sẵn trên Linux và Mac với JDK 11 trở lên. Mặc định là -1 (sử dụng mặc định hệ thống). |
transport.profiles.<profile_name>.tcp.reuse_address | Dynamic, Boolean | Kiểm soát tùy chọn SO_REUSEADDR cho các socket trên cấu hình vận chuyển này, cho phép tái sử dụng địa chỉ sau khi socket đóng. |
transport.profiles.<profile_name>.tcp.send_buffer_size | Dynamic, đơn vị byte | Đặt kích thước bộ đệm gửi TCP cho các kết nối trên cấu hình vận chuyển này. Bộ đệm lớn hơn có thể cải thiện thông lượng cho các kết nối băng thông cao. |
transport.profiles.<profile_name>.tcp.receive_buffer_size | Dynamic, đơn vị byte | Đặt kích thước bộ đệm nhận TCP cho các kết nối trên cấu hình vận chuyển này. Bộ đệm lớn hơn có thể cải thiện thông lượng cho các kết nối băng thông cao. |
Advanced transport settings (continued)
| Cài đặt | Loại | Mô tả |
|---|---|---|
transport.compress | Static, Boolean | Bật nén DEFLATE cho tất cả giao tiếp vận chuyển giữa các nút. Khi được bật, dữ liệu truyền giữa các nút được nén để giảm sử dụng băng thông mạng, điều này có thể có lợi cho các cụm kết nối qua các liên kết mạng chậm hơn. Tuy nhiên, nén thêm chi phí CPU cho các hoạt động nén và giải nén. Mặc định là false. |
transport.connect_timeout | Static, đơn vị thời gian | Đặt khoảng thời gian chờ để thiết lập các kết nối vận chuyển mới giữa các nút. Nếu một nỗ lực kết nối không hoàn thành trong giới hạn thời gian này, nó được coi là thất bại. Cài đặt này giúp ngăn các nút bị treo vô thời hạn khi cố gắng kết nối với các nút không phản hồi hoặc không thể truy cập. Mặc định là 30s. |
transport.ping_schedule | Static, đơn vị thời gian | Cấu hình khoảng thời gian để gửi các tin nhắn ping cấp ứng dụng nhằm duy trì các kết nối vận chuyển giữa các nút. Khi được đặt thành giá trị dương, các nút sẽ gửi các tin nhắn ping định kỳ để phát hiện và ngăn chặn thời gian chờ kết nối nhàn rỗi. Đặt giá trị này thành -1 sẽ tắt ping cấp ứng dụng. Thường khuyến nghị sử dụng cài đặt TCP keep-alive thay thế vì chúng cung cấp giám sát kết nối toàn diện hơn cho tất cả các loại kết nối. Mặc định là -1 (tắt). |
transport.publish_port | Static, số nguyên | Chỉ định cổng mà các nút khác nên sử dụng khi kết nối với nút này cho giao tiếp vận chuyển. Cài đặt này đặc biệt hữu ích khi các nút nằm sau proxy, tường lửa hoặc cấu hình NAT nơi cổng liên kết thực tế khác với cổng có thể truy cập từ bên ngoài. Nếu không được chỉ định, các nút khác sẽ sử dụng cổng được xác định bởi cài đặt transport.port. Mặc định là cổng thực tế được gán qua transport.port. |
Selecting the transport
Giao thức vận chuyển BlackHole mặc định được cung cấp bởi mô-đuntransport-netty4 và sử dụng công cụ Netty 4 cho cả giao tiếp nội bộ dựa trên TCP giữa các nút trong cụm và giao tiếp bên ngoài dựa trên HTTP với máy khách. Giao tiếp này hoàn toàn không đồng bộ và không chặn.
Bảng sau liệt kê các plugin giao tiếp khác có sẵn có thể được sử dụng thay thế cho nhau:
| Plugin | Mô tả |
|---|---|
transport-reactor-netty4 | Giao thức HTTP BlackHole dựa trên Project Reactor và Netty 4 (thử nghiệm). Cài đặt: ./bin/blackhole-plugin install transport-reactor-netty4. Cấu hình (sử dụng blackhole.yml): http.type: reactor-netty4 hoặc http.type: reactor-netty4-secure |
Discovery and gateway settings
Sau đây là các thiết lập liên quan đến khám phá và cổng cục bộ. Để tìm hiểu thêm về thiết lập tĩnh và động, hãy xem phần Cấu hình BlackHole.Discovery settings
Quá trình khám phá được sử dụng khi một cụm được hình thành. Nó bao gồm việc khám phá các nút và bầu chọn một nút quản lý cụm.Static discovery settings
Các thiết lập khám phá tĩnh sau phải được cấu hình trước khi cụm khởi động:| Cài đặt | Loại | Mô tả |
|---|---|---|
discovery.seed_hosts | Static, danh sách | Cung cấp danh sách các địa chỉ của các nút đủ điều kiện làm quản lý cụm trong cụm. Mỗi địa chỉ có định dạng host:port hoặc host. Nếu một tên máy chủ phân giải thành nhiều địa chỉ qua DNS, BlackHole sử dụng tất cả chúng. Cài đặt này là cần thiết để các nút tìm thấy nhau trong quá trình hình thành cụm. Mặc định là ["127.0.0.1", "[::1]"]. |
discovery.seed_providers | Static, danh sách | Chỉ định loại nhà cung cấp máy chủ seed nào sử dụng để lấy địa chỉ của các nút seed được sử dụng để bắt đầu quá trình khám phá. Theo mặc định, sử dụng nhà cung cấp máy chủ seed dựa trên cài đặt, lấy địa chỉ nút seed từ cài đặt discovery.seed_hosts. |
discovery.type | Static, chuỗi | Chỉ định liệu BlackHole nên hình thành cụm nhiều nút hay hoạt động như một nút đơn. Khi được đặt thành single-node, BlackHole hình thành cụm một nút và bỏ qua một số thời gian chờ. Cài đặt này hữu ích cho môi trường phát triển và thử nghiệm. Các giá trị hợp lệ là multi-node (mặc định) và single-node. |
cluster.initial_cluster_manager_nodes | Static, danh sách | Thiết lập tập hợp ban đầu các nút đủ điều kiện làm quản lý cụm trong một cụm mới. Cài đặt này là bắt buộc khi khởi động cụm lần đầu tiên và phải chứa tên nút (như được xác định bởi node.name) của các nút đủ điều kiện làm quản lý cụm ban đầu. Danh sách này nên trống cho các nút tham gia cụm hiện có. Mặc định là [] (danh sách trống). |
Dynamic discovery settings
Các thiết lập khám phá động sau đây có thể được cập nhật trong khi cụm đang chạy:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.join.timeout | Static, đơn vị thời gian | Khoảng thời gian một nút chờ sau khi gửi yêu cầu tham gia cụm trước khi coi yêu cầu là thất bại và thử lại. Thời gian chờ này không áp dụng khi discovery.type được đặt thành single-node. Mặc định là 60s. |
cluster.publish.info_timeout | Static, đơn vị thời gian | Khoảng thời gian nút quản lý cụm chờ mỗi bản cập nhật trạng thái cụm được xuất bản hoàn toàn cho tất cả các nút trước khi ghi nhật ký thông báo cho biết một số nút đang phản hồi chậm. Cài đặt này giúp xác định các nút phản hồi chậm trong quá trình cập nhật trạng thái cụm. Mặc định là 10s. |
Cluster election settings
Các thiết lập sau đây kiểm soát hành vi bầu chọn trình quản lý cụm:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.election.back_off_time | Static, đơn vị thời gian | Đặt độ trễ tăng dần được thêm vào các lần thử lại bầu cử sau mỗi lần thất bại. Sử dụng backoff tuyến tính, trong đó mỗi lần bầu cử thất bại tăng thời gian chờ thêm giá trị này trước lần thử tiếp theo. Mặc định là 100ms. |
cluster.election.duration | Static, đơn vị thời gian | Đặt thời gian tối đa cho mỗi cuộc bầu cử trước khi một nút coi nó là thất bại và lên lịch thử lại. Điều này kiểm soát thời lượng tối đa của quá trình bầu cử. Mặc định là 500ms. |
cluster.election.initial_timeout | Static, đơn vị thời gian | Đặt giới hạn trên cho thời gian một nút sẽ chờ ban đầu, hoặc sau khi nút quản lý cụm được bầu thất bại, trước khi thử bầu cử đầu tiên. Điều này kiểm soát độ trễ bầu cử ban đầu. Mặc định là 100ms. |
cluster.election.max_timeout | Static, đơn vị thời gian | Đặt giới hạn trên tối đa cho thời gian một nút sẽ chờ trước khi thử bầu cử, ngăn chặn các cuộc bầu cử quá thưa thớt trong các phân vùng mạng dài. Điều này giới hạn độ trễ bầu cử tối đa. Mặc định là 10s. |
Expert-level discovery settings
| Cài đặt | Loại | Mô tả |
|---|---|---|
discovery.cluster_formation_warning_timeout | Static, đơn vị thời gian | Đặt thời gian một nút sẽ cố gắng hình thành cụm trước khi ghi nhật ký cảnh báo rằng cụm không được hình thành. Nếu cụm không được hình thành sau khi thời gian chờ này đã hết, nút sẽ ghi thông báo cảnh báo bắt đầu bằng cụm từ “cluster manager not discovered” và mô tả trạng thái hiện tại của quá trình khám phá. Mặc định là 10s. |
discovery.find_peers_interval | Static, đơn vị thời gian | Đặt thời gian một nút sẽ chờ trước khi thử một vòng khám phá khác. Điều này kiểm soát tần suất các nỗ lực khám phá ngang hàng trong quá trình hình thành cụm. Mặc định là 1s. |
discovery.probe.connect_timeout | Static, đơn vị thời gian | Đặt thời gian chờ khi cố gắng kết nối với mỗi địa chỉ trong quá trình khám phá nút. Thời gian chờ này áp dụng cho nỗ lực kết nối ban đầu đến các thành viên cụm tiềm năng. Mặc định là 3s. |
discovery.probe.handshake_timeout | Static, đơn vị thời gian | Đặt thời gian chờ khi cố gắng xác định nút từ xa thông qua bắt tay trong quá trình khám phá. Thời gian chờ này áp dụng cho giai đoạn xác định nút sau khi kết nối thành công. Mặc định là 1s. |
discovery.request_peers_timeout | Static, đơn vị thời gian | Đặt thời gian một nút sẽ chờ sau khi hỏi các nút ngang hàng để lấy thông tin trước khi coi yêu cầu là thất bại. Thời gian chờ này áp dụng cho các yêu cầu thông tin ngang hàng trong quá trình khám phá. Mặc định là 3s. |
discovery.seed_resolver.max_concurrent_resolvers | Static, số nguyên | Chỉ định số lượng tra cứu DNS đồng thời để thực hiện khi phân giải địa chỉ của các nút seed trong quá trình khám phá cụm. Cài đặt này kiểm soát tính song song của phân giải DNS cho các máy chủ seed. Mặc định là 10. |
discovery.seed_resolver.timeout | Static, đơn vị thời gian | Chỉ định thời gian chờ cho mỗi tra cứu DNS được thực hiện khi phân giải địa chỉ của các nút seed. Thời gian chờ này áp dụng cho các hoạt động phân giải DNS riêng lẻ trong quá trình khám phá cụm. Mặc định là 5s. |
Gateway settings
Cổng cục bộ lưu trữ trạng thái cụm trên đĩa và dữ liệu phân mảnh được sử dụng khi cụm được khởi động lại. Các thiết lập cổng cục bộ sau được hỗ trợ:| Cài đặt | Loại | Mô tả | Mặc định | Khuyến nghị |
|---|---|---|---|---|
gateway.recover_after_nodes | Static, số nguyên | Số lượng tối thiểu tổng số nút cho bất kỳ vai trò nào phải đang chạy sau khi khởi động lại cụm hoàn toàn trước khi phục hồi có thể bắt đầu. | 0 (tắt) - phục hồi có thể bắt đầu ngay khi cụm được hình thành. | Đặt cao hơn một chút so với một nửa số lượng tất cả các nút dự kiến để cụm không bắt đầu phục hồi với quá ít nút. |
gateway.recover_after_data_nodes | Static, số nguyên | Số lượng tối thiểu các nút dữ liệu phải đang chạy sau khi khởi động lại cụm hoàn toàn trước khi phục hồi có thể bắt đầu. | 0 | Đặt thành một phần đáng kể của các nút dữ liệu - khoảng 50-70% tổng số nút dữ liệu - để tránh phục hồi sớm. |
gateway.expected_data_nodes | Static, số nguyên | Số lượng nút dữ liệu dự kiến trong cụm. Khi tất cả đều có mặt, việc phục hồi các phân đoạn cục bộ có thể bắt đầu ngay lập tức. | 0 | Đặt giá trị này bằng số lượng thực tế của các nút dữ liệu trong cụm của bạn để phục hồi có thể bắt đầu ngay khi tất cả các nút dữ liệu đang chạy. |
gateway.recover_after_time | Static, đơn vị thời gian | Khoảng thời gian tối đa để chờ phục hồi nếu số lượng nút dữ liệu dự kiến chưa đạt được. Sau thời gian này, phục hồi tiến hành. | 5m nếu expected_data_nodes hoặc recover_after_nodes được đặt. Nếu không thì tắt. | Đặt cao hơn một chút so với thời gian tham gia nút điển hình của bạn; các cụm lớn hơn thường cần thời gian phục hồi lâu hơn và được điều chỉnh dựa trên hành vi khởi động quan sát được. |
Security settings
Plugin Bảo mật cung cấp một số tệp cấu hình YAML được sử dụng để lưu trữ các thiết lập cần thiết, xác định cách plugin Bảo mật quản lý người dùng, vai trò và hoạt động trong cụm. Để biết danh sách đầy đủ các tệp cấu hình của plugin Bảo mật, hãy xem mục Sửa đổi tệp YAML. Các phần sau đây mô tả các thiết lập liên quan đến bảo mật trongblackhole.yml. Bạn có thể tìm thấy blackhole.yml trong <BLACKHOLE_HOME>/config/blackhole.yml. Để tìm hiểu thêm về thiết lập tĩnh và động, hãy xem phần Cấu hình BlackHole.
Common settings
The Security plugin hỗ trợ các common setting sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.nodes_dn | Static | Chỉ định danh sách các tên phân biệt (DN) đại diện cho các nút khác trong cụm. Cài đặt này hỗ trợ ký tự đại diện và biểu thức chính quy. Danh sách DN cũng được đọc từ chỉ mục bảo mật ngoài cấu hình YAML khi plugins.security.nodes_dn_dynamic_config_enabled được đặt thành true. Nếu cài đặt này không được cấu hình đúng, cụm sẽ không thể hình thành vì các nút không thể tin tưởng lẫn nhau và sẽ dẫn đến lỗi: Transport client authentication no longer supported. |
plugins.security.nodes_dn_dynamic_config_enabled | Static | Liên quan đến các trường hợp sử dụng cross_cluster khi cần quản lý danh sách nodes_dn được phép mà không phải khởi động lại các nút mỗi khi cấu hình cross_cluster remote mới. Đặt nodes_dn_dynamic_config_enabled thành true cho phép API Distinguished Names có thể gọi bởi super-admin, cung cấp phương tiện để cập nhật hoặc truy xuất nodes_dn động. Cài đặt này chỉ có hiệu lực nếu plugins.security.cert.intercluster_request_evaluator_class không được đặt. Mặc định là false. |
plugins.security.authcz.admin_dn | Static | Xác định các DN của chứng chỉ được gán quyền quản trị. Bắt buộc. |
plugins.security.roles_mapping_resolution | Static | Xác định cách các backend role được ánh xạ tới Security role. Giá trị hợp lệ: MAPPING_ONLY (Mặc định) - Ánh xạ phải được cấu hình rõ ràng trong roles_mapping.yml; BACKENDROLES_ONLY - Backend role được ánh xạ trực tiếp tới security role; BOTH - Backend role được ánh xạ tới security role cả trực tiếp và thông qua roles_mapping.yml. |
plugins.security.dls.mode | Static | Đặt chế độ đánh giá bảo mật cấp tài liệu (DLS). Mặc định là adaptive. Xem Cách đặt chế độ đánh giá DLS. |
plugins.security.compliance.salt | Static | Salt sử dụng khi tạo giá trị băm cho việc che giấu trường. Phải có ít nhất 32 ký tự. Chỉ cho phép ký tự ASCII. Tùy chọn. |
plugins.security.compliance.immutable_indices | Static | Tài liệu trong các chỉ mục được đánh dấu là bất biến tuân theo mô hình ghi-một-lần, đọc-nhiều-lần. Tài liệu được tạo trong các chỉ mục này không thể thay đổi và do đó là bất biến. |
config.dynamic.http.anonymous_auth_enabled | Static | Bật xác thực ẩn danh. Điều này sẽ khiến tất cả các trình xác thực HTTP không yêu cầu xác thực. Mặc định là false. |
http.detailed_errors.enabled | Static | Bật thông báo lỗi chi tiết cho các lệnh gọi REST được thực hiện đối với cụm BlackHole. Nếu được đặt thành true, cung cấp root_cause cùng với mã lỗi. Mặc định là true. |
REST management API settings
| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.restapi.roles_enabled | Static | Bật quyền truy cập dựa trên vai trò vào REST management API cho các vai trò được liệt kê. Các vai trò được phân tách bằng dấu phẩy. Mặc định là danh sách trống (không vai trò nào được phép truy cập REST management API). Xem Kiểm soát truy cập cho API. |
plugins.security.restapi.endpoints_disabled.<role>.<endpoint> | Static | Vô hiệu hóa các endpoint cụ thể và phương thức HTTP của chúng cho các vai trò. Giá trị cho cài đặt này tạo thành một mảng các phương thức HTTP. Ví dụ: plugins.security.restapi.endpoints_disabled.all_access.ACTIONGROUPS: ["PUT","POST","DELETE"]. Theo mặc định, tất cả các endpoint và phương thức đều được phép. Các endpoint hiện có bao gồm ACTIONGROUPS, CACHE, CONFIG, ROLES, ROLESMAPPING, INTERNALUSERS, SYSTEMINFO, PERMISSIONSINFO và LICENSE. Xem Kiểm soát truy cập cho API. |
plugins.security.restapi.password_validation_regex | Static | Chỉ định biểu thức chính quy để đặt tiêu chí cho mật khẩu đăng nhập. Để biết thêm thông tin, xem Cài đặt mật khẩu. |
plugins.security.restapi.password_validation_error_message | Static | Chỉ định thông báo lỗi hiển thị khi mật khẩu không vượt qua xác thực. Cài đặt này được sử dụng kết hợp với plugins.security.restapi.password_validation_regex. |
plugins.security.restapi.password_min_length | Static | Đặt số ký tự tối thiểu cho độ dài mật khẩu khi sử dụng công cụ ước tính độ mạnh mật khẩu dựa trên điểm. Mặc định là 8. Đây cũng là giá trị tối thiểu. Để biết thêm thông tin, xem Cài đặt mật khẩu. |
plugins.security.restapi.password_score_based_validation_strength | Static | Đặt ngưỡng để xác định mật khẩu mạnh hay yếu. Giá trị hợp lệ là fair, good, strong và very_strong. Cài đặt này được sử dụng kết hợp với plugins.security.restapi.password_min_length. |
plugins.security.unsupported.restapi.allow_securityconfig_modification | Static | Cho phép sử dụng các phương thức PUT và PATCH cho các API cấu hình. |
Advanced settings
Plugin Bảo mật hỗ trợ các cài đặt nâng cao sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.authcz.impersonation_dn | Static | Bật mạo danh ở lớp vận chuyển. Điều này cho phép các DN mạo danh như người dùng khác. Xem Mạo danh người dùng. |
plugins.security.authcz.rest_impersonation_user | Static | Bật mạo danh ở lớp REST. Điều này cho phép người dùng mạo danh như người dùng khác. Xem Mạo danh người dùng. |
plugins.security.allow_default_init_securityindex | Static | Khi được đặt thành true, BlackHole Security sẽ tự động khởi tạo chỉ mục cấu hình với các tệp trong thư mục /config nếu chỉ mục không tồn tại. |
plugins.security.allow_unsafe_democertificates | Static | Khi được đặt thành true, BlackHole khởi động với chứng chỉ demo. Các chứng chỉ này chỉ được cấp cho mục đích demo. |
plugins.security.system_indices.permission.enabled | Static | Bật tính năng quyền chỉ mục hệ thống. Khi được đặt thành true, tính năng được bật và người dùng có quyền sửa đổi vai trò có thể tạo vai trò bao gồm quyền cấp quyền truy cập vào chỉ mục hệ thống. Khi được đặt thành false, quyền bị tắt và chỉ quản trị viên có chứng chỉ admin mới có thể thay đổi chỉ mục hệ thống. Theo mặc định, quyền được đặt thành false trong cụm mới. |
Expert-level settings
Plugin Bảo mật hỗ trợ các cài đặt cấp chuyên gia sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.config_index_name | Tĩnh | Tên của chỉ mục nơi .opendistro_security lưu trữ cấu hình của nó. |
plugins.security.cert.oid | Tĩnh | Xác định Object Identifier (OID) của chứng chỉ nút máy chủ. |
plugins.security.cert.intercluster_request_evaluator_class | Tĩnh | Chỉ định triển khai của org.blackhole.security.transport.InterClusterRequestEvaluator được sử dụng để đánh giá các yêu cầu liên cụm. Các instance phải triển khai constructor một tham số nhận đối tượng org.blackhole.common.settings.Settings. |
plugins.security.enable_snapshot_restore_privilege | Tĩnh | Khi được đặt thành false, cài đặt này vô hiệu hóa khôi phục snapshot cho người dùng thông thường. Trong trường hợp này, chỉ các yêu cầu khôi phục snapshot được ký bằng chứng chỉ TLS admin mới được chấp nhận. Khi được đặt thành true (mặc định), người dùng thông thường có thể khôi phục snapshot nếu họ có đủ quyền. |
plugins.security.check_snapshot_restore_write_privileges | Tĩnh | Khi được đặt thành false, các kiểm tra chỉ mục bổ sung được bỏ qua. Khi được đặt thành mặc định true, các nỗ lực khôi phục snapshot được đánh giá cho indices:admin/create và indices:data/write/index. |
plugins.security.cache.ttl_minutes | Tĩnh | Xác định thời gian để bộ nhớ đệm xác thực hết hạn. Bộ nhớ đệm xác thực giúp tăng tốc xác thực bằng cách tạm thời lưu trữ các đối tượng người dùng được trả về từ backend. Đặt giá trị theo phút. Mặc định là 60. Tắt bộ nhớ đệm bằng cách đặt giá trị thành 0. |
plugins.security.disabled | Tĩnh | Tắt BlackHole Security. Cảnh báo: Việc tắt plugin này có thể làm lộ cấu hình của bạn (bao gồm mật khẩu) ra công chúng. |
plugins.security.protected_indices.enabled | Tĩnh | Nếu được đặt thành true, bật các chỉ mục được bảo vệ. Các chỉ mục được bảo vệ còn an toàn hơn các chỉ mục thông thường. Các chỉ mục này yêu cầu vai trò để truy cập như bất kỳ chỉ mục truyền thống nào khác và yêu cầu vai trò bổ sung để hiển thị. |
plugins.security.protected_indices.roles | Tĩnh | Chỉ định danh sách các vai trò mà người dùng phải được ánh xạ để truy cập các chỉ mục được bảo vệ. |
plugins.security.protected_indices.indices | Tĩnh | Chỉ định danh sách các chỉ mục để đánh dấu là được bảo vệ. Các chỉ mục này chỉ hiển thị cho người dùng được ánh xạ tới các vai trò được chỉ định trong plugins.security.protected_indices.roles. |
plugins.security.system_indices.enabled | Tĩnh | Nếu được đặt thành true, bật các chỉ mục hệ thống. Các chỉ mục hệ thống tương tự như chỉ mục bảo mật, ngoại trừ nội dung không được mã hóa. |
plugins.security.system_indices.indices | Tĩnh | Danh sách các chỉ mục được sử dụng làm chỉ mục hệ thống. Cài đặt này được kiểm soát bởi cài đặt plugins.security.system_indices.enabled. |
Nếu bạn thay đổi bất kỳ thuộc tính băm mật khẩu nào sau đây, bạn phải băm lại
tất cả mật khẩu nội bộ để đảm bảo tính tương thích và bảo mật.
| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.password.hashing.algorithm | Tĩnh | Chỉ định thuật toán băm mật khẩu để sử dụng. Giá trị hợp lệ: BCrypt (Mặc định), PBKDF2, Argon2. |
plugins.security.password.hashing.bcrypt.rounds | Tĩnh | Chỉ định số vòng sử dụng cho việc băm mật khẩu với BCrypt. Giá trị hợp lệ nằm trong khoảng từ 4 đến 31, bao gồm cả hai. Mặc định là 12. |
plugins.security.password.hashing.bcrypt.minor | Tĩnh | Chỉ định phiên bản minor của thuật toán BCrypt. Giá trị hợp lệ: A, B, Y (Mặc định). |
plugins.security.password.hashing.pbkdf2.function | Tĩnh | Chỉ định hàm giả ngẫu nhiên được áp dụng cho mật khẩu. Giá trị hợp lệ: SHA1, SHA224, SHA256 (Mặc định), SHA384, SHA512. |
plugins.security.password.hashing.pbkdf2.iterations | Tĩnh | Chỉ định số lần hàm giả ngẫu nhiên được áp dụng cho mật khẩu. Mặc định là 600000. |
plugins.security.password.hashing.pbkdf2.length | Tĩnh | Chỉ định độ dài mong muốn của khóa dẫn xuất cuối cùng. Mặc định là 256. |
plugins.security.password.hashing.argon2.iterations | Tĩnh | Chỉ định số lần duyệt qua bộ nhớ mà thuật toán thực hiện. Tăng giá trị này làm tăng thời gian tính toán CPU và cải thiện khả năng chống lại các cuộc tấn công brute-force. Mặc định: 3. |
plugins.security.password.hashing.argon2.memory | Tĩnh | Chỉ định lượng bộ nhớ (tính bằng kibibyte) được sử dụng trong quá trình băm. Mặc định: 65536 (64 MiB). |
plugins.security.password.hashing.argon2.parallelism | Tĩnh | Chỉ định số luồng song song được sử dụng cho tính toán. Mặc định: 1. |
plugins.security.password.hashing.argon2.length | Tĩnh | Chỉ định độ dài (tính bằng byte) của đầu ra băm kết quả. Mặc định: 32. |
plugins.security.password.hashing.argon2.type | Tĩnh | Chỉ định biến thể Argon2 nào sử dụng. Giá trị hợp lệ: Argon2i, Argon2d, Argon2id (mặc định). |
plugins.security.password.hashing.argon2.version | Tĩnh | Chỉ định phiên bản Argon2 nào sử dụng. Giá trị hợp lệ: 16, 19 (mặc định). |
Audit log settings
Plugin Bảo mật hỗ trợ các cài đặt nhật ký kiểm toán sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.audit.enable_rest | Động | Bật hoặc tắt ghi nhật ký yêu cầu REST. Mặc định là true (bật). |
plugins.security.audit.enable_transport | Động | Bật hoặc tắt ghi nhật ký yêu cầu cấp vận chuyển. Mặc định là false (tắt). |
plugins.security.audit.resolve_bulk_requests | Động | Bật hoặc tắt ghi nhật ký yêu cầu bulk. Khi được bật, tất cả các yêu cầu con trong các yêu cầu bulk cũng được ghi nhật ký. Mặc định là false (tắt). |
plugins.security.audit.config.disabled_categories | Động | Tắt các danh mục sự kiện được chỉ định. |
plugins.security.audit.ignore_requests | Động | Loại trừ các yêu cầu được chỉ định khỏi việc ghi nhật ký. Cho phép ký tự đại diện và biểu thức chính quy chứa các hành động hoặc đường dẫn yêu cầu REST. |
plugins.security.audit.threadpool.size | Tĩnh | Xác định số lượng luồng trong nhóm luồng được sử dụng để ghi nhật ký sự kiện. Mặc định là 10. Đặt giá trị này thành 0 sẽ tắt nhóm luồng, nghĩa là plugin ghi nhật ký sự kiện đồng bộ. |
plugins.security.audit.threadpool.max_queue_len | Tĩnh | Đặt độ dài hàng đợi tối đa cho mỗi luồng. Mặc định là 100000. |
plugins.security.audit.ignore_users | Động | Một mảng người dùng. Các yêu cầu kiểm toán từ những người dùng trong danh sách sẽ không được ghi nhật ký. |
plugins.security.audit.type | Tĩnh | Điểm đến của các sự kiện nhật ký kiểm toán. Giá trị hợp lệ là internal_blackhole, external_blackhole, debug và webhook. |
plugins.security.audit.config.http_endpoints | Tĩnh | Danh sách các endpoint cho localhost. |
plugins.security.audit.config.index | Tĩnh | Chỉ mục nhật ký kiểm toán. Mặc định là auditlog6. Chỉ mục có thể là tĩnh hoặc bao gồm ngày để xoay vòng hàng ngày, ví dụ: "'auditlog6-'YYYY.MM.dd". |
plugins.security.audit.config.type | Tĩnh | Chỉ định loại nhật ký kiểm toán là auditlog. |
plugins.security.audit.config.username | Tĩnh | Tên người dùng cho cấu hình nhật ký kiểm toán. |
plugins.security.audit.config.password | Tĩnh | Mật khẩu cho cấu hình nhật ký kiểm toán. |
plugins.security.audit.config.enable_ssl | Tĩnh | Bật hoặc tắt SSL cho ghi nhật ký kiểm toán. |
plugins.security.audit.config.verify_hostnames | Tĩnh | Bật hoặc tắt xác minh tên máy chủ cho chứng chỉ SSL/TLS. Mặc định là true (bật). |
plugins.security.audit.config.enable_ssl_client_auth | Tĩnh | Bật hoặc tắt xác thực máy khách SSL/TLS. Mặc định là false (tắt). |
plugins.security.audit.config.cert_alias | Tĩnh | Bí danh cho chứng chỉ được sử dụng để truy cập nhật ký kiểm toán. |
plugins.security.audit.config.pemkey_filepath | Tĩnh | Đường dẫn tệp tương đối /config đến khóa Privacy Enhanced Mail (PEM) được sử dụng cho ghi nhật ký kiểm toán. |
plugins.security.audit.config.pemkey_content | Tĩnh | Nội dung được mã hóa base64 của khóa PEM được sử dụng cho ghi nhật ký kiểm toán. Thay thế cho pemkey_filepath. |
plugins.security.audit.config.pemkey_password | Tĩnh | Mật khẩu cho khóa riêng định dạng PEM được sử dụng bởi máy khách. |
plugins.security.audit.config.pemcert_filepath | Tĩnh | Đường dẫn tệp tương đối /config đến chứng chỉ PEM được sử dụng cho ghi nhật ký kiểm toán. |
plugins.security.audit.config.pemcert_content | Tĩnh | Nội dung được mã hóa base64 của chứng chỉ PEM được sử dụng cho ghi nhật ký kiểm toán. Thay thế cho pemcert_filepath. |
plugins.security.audit.config.pemtrustedcas_filepath | Tĩnh | Đường dẫn tệp tương đối /config đến cơ quan chứng nhận gốc tin cậy. |
plugins.security.audit.config.pemtrustedcas_content | Tĩnh | Nội dung được mã hóa base64 của cơ quan chứng nhận gốc. Thay thế cho pemtrustedcas_filepath. |
plugins.security.audit.config.webhook.url | Tĩnh | URL webhook. |
plugins.security.audit.config.webhook.format | Tĩnh | Định dạng được sử dụng cho webhook. Giá trị hợp lệ là URL_PARAMETER_GET, URL_PARAMETER_POST, TEXT, JSON và SLACK. |
plugins.security.audit.config.webhook.ssl.verify | Tĩnh | Bật hoặc tắt xác minh bất kỳ chứng chỉ SSL/TLS nào được gửi cùng với bất kỳ yêu cầu webhook nào. Mặc định là true (bật). |
plugins.security.audit.config.webhook.ssl.pemtrustedcas_filepath | Tĩnh | Đường dẫn tệp tương đối /config đến cơ quan chứng nhận tin cậy mà các yêu cầu webhook được xác minh. |
plugins.security.audit.config.webhook.ssl.pemtrustedcas_content | Tĩnh | Nội dung được mã hóa base64 của cơ quan chứng nhận được sử dụng để xác minh các yêu cầu webhook. Thay thế cho pemtrustedcas_filepath. |
plugins.security.audit.config.log4j.logger_name | Tĩnh | Tên tùy chỉnh cho Log4j logger. |
plugins.security.audit.config.log4j.level | Tĩnh | Cung cấp mức nhật ký mặc định cho Log4j logger. Giá trị hợp lệ là OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE và ALL. Mặc định là INFO. |
opendistro_security.audit.config.disabled_rest_categories | Động | Danh sách các danh mục REST bị bỏ qua bởi logger. Giá trị hợp lệ là AUTHENTICATED và GRANTED_PRIVILEGES. |
opendistro_security.audit.config.disabled_transport_categories | Động | Danh sách các danh mục lớp vận chuyển bị bỏ qua bởi logger. Giá trị hợp lệ là AUTHENTICATED và GRANTED_PRIVILEGES. |
Hostname verification and DNS lookup settings
Plugin Bảo mật hỗ trợ các cài đặt xác minh tên máy chủ và tra cứu DNS sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
transport.ssl.enforce_hostname_verification | Tĩnh | Có xác minh tên máy chủ ở lớp vận chuyển hay không. Tùy chọn. Mặc định là true. |
transport.ssl.resolve_hostname | Tĩnh | Có phân giải tên máy chủ với DNS ở lớp vận chuyển hay không. Tùy chọn. Mặc định là true. Chỉ hoạt động nếu xác minh tên máy chủ được bật. |
Client authentication settings
Plugin Bảo mật hỗ trợ cài đặt xác thực máy khách sau:| Setting | Type | Description |
|---|---|---|
plugins.security.ssl.http.clientauth_mode | Static | The TLS client authentication mode to use. Valid values are OPTIONAL (default), REQUIRE, and NONE. Optional. |
Enabled cipher and protocol settings
Plugin Bảo mật hỗ trợ các cài đặt mã hóa và giao thức sau. Mỗi cài đặt phải được thể hiện trong một mảng:| Setting | Type | Description |
|---|---|---|
plugins.security.ssl.http.enabled_ciphers | Static | Enabled TLS cipher suites for the REST layer. Only Java format is supported. |
plugins.security.ssl.http.enabled_protocols | Static | Enabled TLS protocols for the REST layer. Only Java format is supported. |
plugins.security.ssl.transport.enabled_ciphers | Static | Enabled TLS cipher suites for the transport layer. Only Java format is supported. |
plugins.security.ssl.transport.enabled_protocols | Static | Enabled TLS protocols for the transport layer. Only Java format is supported. |
Key store and trust store files—transport layer TLS settings
Plugin Bảo mật hỗ trợ các thiết lập kho lưu trữ khóa TLS và kho lưu trữ tin cậy ở lớp vận chuyển sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.ssl.transport.keystore_type | Tĩnh | Loại tệp kho lưu trữ khóa. Tùy chọn. Giá trị hợp lệ là JKS hoặc PKCS12/PFX. Mặc định là JKS. |
plugins.security.ssl.transport.keystore_filepath | Tĩnh | Đường dẫn đến tệp kho lưu trữ khóa, phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.transport.keystore_alias | Tĩnh | Tên bí danh kho lưu trữ khóa. Tùy chọn. Mặc định là bí danh đầu tiên. |
plugins.security.ssl.transport.keystore_password | Tĩnh | Mật khẩu kho lưu trữ khóa. Mặc định là changeit. |
plugins.security.ssl.transport.truststore_type | Tĩnh | Loại tệp kho lưu trữ tin cậy. Tùy chọn. Giá trị hợp lệ là JKS hoặc PKCS12/PFX. Mặc định là JKS. |
plugins.security.ssl.transport.truststore_filepath | Tĩnh | Đường dẫn đến tệp kho lưu trữ tin cậy, phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.transport.truststore_alias | Tĩnh | Tên bí danh kho lưu trữ tin cậy. Tùy chọn. Mặc định là tất cả các chứng chỉ. |
plugins.security.ssl.transport.truststore_password | Tĩnh | Mật khẩu kho lưu trữ tin cậy. Mặc định là changeit. |
Key store and trust store files—REST layer TLS settings
Plugin Bảo mật hỗ trợ các cài đặt kho lưu trữ khóa TLS lớp REST và kho lưu trữ tin cậy sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.ssl.http.enabled | Tĩnh | Có bật TLS trên lớp REST hay không. Nếu được bật, chỉ HTTPS được cho phép. Tùy chọn. Mặc định là false. |
plugins.security.ssl.http.keystore_type | Tĩnh | Loại tệp kho lưu trữ khóa. Tùy chọn. Giá trị hợp lệ là JKS hoặc PKCS12/PFX. Mặc định là JKS. |
plugins.security.ssl.http.keystore_filepath | Tĩnh | Đường dẫn đến tệp kho lưu trữ khóa, phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.http.keystore_alias | Tĩnh | Tên bí danh kho lưu trữ khóa. Tùy chọn. Mặc định là bí danh đầu tiên. |
plugins.security.ssl.http.keystore_password | Tĩnh | Mật khẩu kho lưu trữ khóa. Mặc định là changeit. |
plugins.security.ssl.http.truststore_type | Tĩnh | Loại tệp kho lưu trữ tin cậy. Tùy chọn. Giá trị hợp lệ là JKS hoặc PKCS12/PFX. Mặc định là JKS. |
plugins.security.ssl.http.truststore_filepath | Tĩnh | Đường dẫn đến tệp kho lưu trữ tin cậy, phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.http.truststore_alias | Tĩnh | Tên bí danh kho lưu trữ tin cậy. Tùy chọn. Mặc định là tất cả các chứng chỉ. |
plugins.security.ssl.http.truststore_password | Tĩnh | Mật khẩu kho lưu trữ tin cậy. Mặc định là changeit. |
X.509 PEM certificates and PKCS #8 keys—transport layer TLS settings
Plugin Bảo mật hỗ trợ các thiết lập TLS lớp truyền tải sau đây liên quan đến chứng chỉ X.509 PEM và khóa PKCS #8:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.ssl.transport.pemkey_filepath | Tĩnh | Đường dẫn đến tệp khóa của chứng chỉ (PKCS #8), phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.transport.pemkey_password | Tĩnh | Mật khẩu khóa. Bỏ qua cài đặt này nếu khóa không có mật khẩu. Tùy chọn. |
plugins.security.ssl.transport.pemcert_filepath | Tĩnh | Đường dẫn đến chuỗi chứng chỉ nút X.509 (định dạng PEM), phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.transport.pemtrustedcas_filepath | Tĩnh | Đường dẫn đến các cơ quan chứng nhận gốc (định dạng PEM), phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
X.509 PEM certificates and PKCS #8 keys—REST layer TLS settings
Plugin Bảo mật hỗ trợ các cài đặt TLS lớp REST sau đây liên quan đến chứng chỉ X.509 PEM và khóa PKCS #8:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.ssl.http.enabled | Tĩnh | Có bật TLS trên lớp REST hay không. Nếu được bật, chỉ HTTPS được cho phép. Tùy chọn. Mặc định là false. |
plugins.security.ssl.http.pemkey_filepath | Tĩnh | Đường dẫn đến tệp khóa của chứng chỉ (PKCS #8), phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.http.pemkey_password | Tĩnh | Mật khẩu khóa. Bỏ qua cài đặt này nếu khóa không có mật khẩu. Tùy chọn. |
plugins.security.ssl.http.pemcert_filepath | Tĩnh | Đường dẫn đến chuỗi chứng chỉ nút X.509 (định dạng PEM), phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
plugins.security.ssl.http.pemtrustedcas_filepath | Tĩnh | Đường dẫn đến các cơ quan chứng nhận gốc (định dạng PEM), phải nằm trong thư mục config, được chỉ định bằng đường dẫn tương đối. Bắt buộc. |
Transport layer security settings
Plugin Bảo mật hỗ trợ các thiết lập bảo mật lớp truyền tải sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
plugins.security.ssl.transport.enabled | Tĩnh | Có bật TLS trên lớp REST hay không. |
plugins.security.ssl.transport.client.pemkey_password | Tĩnh | Mật khẩu cho khóa riêng định dạng PEM được sử dụng bởi máy khách vận chuyển. |
plugins.security.ssl.transport.keystore_keypassword | Tĩnh | Mật khẩu cho khóa bên trong kho lưu trữ khóa. |
plugins.security.ssl.transport.server.keystore_keypassword | Tĩnh | Mật khẩu cho khóa bên trong kho lưu trữ khóa máy chủ. |
plugins.security.ssl.transport.server.keystore_alias | Tĩnh | Tên bí danh cho kho lưu trữ khóa của máy chủ. |
plugins.security.ssl.transport.client.keystore_alias | Tĩnh | Tên bí danh cho kho lưu trữ khóa của máy khách. |
plugins.security.ssl.transport.server.truststore_alias | Tĩnh | Tên bí danh cho kho lưu trữ tin cậy của máy chủ. |
plugins.security.ssl.transport.client.truststore_alias | Tĩnh | Tên bí danh cho kho lưu trữ tin cậy của máy khách. |
plugins.security.ssl.client.external_context_id | Tĩnh | Cung cấp cho máy khách vận chuyển một ID để sử dụng cho ngữ cảnh SSL bên ngoài. |
plugins.security.ssl.transport.principal_extractor_class | Tĩnh | Chỉ định một lớp triển khai bộ trích xuất để một phần tùy chỉnh của chứng chỉ được sử dụng làm principal. |
plugins.security.ssl.http.crl.file_path | Tĩnh | Đường dẫn tệp đến tệp danh sách thu hồi chứng chỉ. |
plugins.security.ssl.http.crl.validate | Tĩnh | Bật xác thực danh sách thu hồi chứng chỉ (CRL). Mặc định là false (tắt). |
plugins.security.ssl.http.crl.prefer_crlfile_over_ocsp | Tĩnh | Có ưu tiên mục nhập chứng chỉ CRL hơn mục nhập Online Certificate Status Protocol (OCSP) hay không nếu chứng chỉ chứa cả hai. Tùy chọn. Mặc định là false. |
plugins.security.ssl.http.crl.check_only_end_entities | Tĩnh | Khi true, chỉ các chứng chỉ lá được xác thực. Mặc định là true. |
plugins.security.ssl.http.crl.disable_ocsp | Tĩnh | Tắt OCSP. Mặc định là false (OCSP được bật). |
plugins.security.ssl.http.crl.disable_crldp | Tĩnh | Tắt các endpoint CRL trong chứng chỉ. Mặc định là false (các endpoint CRL được bật). |
plugins.security.ssl.allow_client_initiated_renegotiation | Tĩnh | Bật hoặc tắt tái thương lượng máy khách. Mặc định là false (tái thương lượng do máy khách khởi tạo không được phép). |
Security plugin settings examples
Cluster settings
Các thiết lập sau đây liên quan đến cụm BlackHole. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem phần Cấu hình BlackHole.Cluster-level routing and allocation settings
BlackHole hỗ trợ các thiết lập định tuyến và phân bổ phân đoạn cấp cụm sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.routing.allocation.enable | Động, chuỗi | Bật hoặc tắt phân bổ cho các loại phân đoạn cụ thể. Giá trị hợp lệ: all (mặc định), primaries, new_primaries, none. |
cluster.routing.allocation.node_concurrent_incoming_recoveries | Động, số nguyên | Cấu hình số lượng phục hồi phân đoạn đến đồng thời được phép xảy ra trên một nút. Mặc định là 2. |
cluster.routing.allocation.node_concurrent_outgoing_recoveries | Động, số nguyên | Cấu hình số lượng phục hồi phân đoạn đi đồng thời được phép xảy ra trên một nút. Mặc định là 2. |
cluster.routing.allocation.node_concurrent_recoveries | Động, chuỗi | Được sử dụng để đặt cả node_concurrent_incoming_recoveries và node_concurrent_outgoing_recoveries thành cùng một giá trị. |
cluster.routing.allocation.node_initial_primaries_recoveries | Động, số nguyên | Đặt số lượng phục hồi cho các phân đoạn chính chưa được gán sau khi khởi động lại nút. Mặc định là 4. |
cluster.routing.allocation.same_shard.host | Động, Boolean | Khi được đặt thành true, nhiều bản sao của một phân đoạn được ngăn không cho phân bổ đến các nút riêng biệt trên cùng một máy chủ. Mặc định là false. |
cluster.routing.rebalance.enable | Động, chuỗi | Bật hoặc tắt cân bằng lại cho các loại phân đoạn cụ thể. Giá trị hợp lệ: all (mặc định), primaries, replicas, none. |
cluster.routing.allocation.allow_rebalance | Động, chuỗi | Chỉ định khi nào cân bằng lại phân đoạn được phép. Giá trị hợp lệ: always, indices_primaries_active, indices_all_active (mặc định). |
cluster.routing.allocation.cluster_concurrent_rebalance | Động, số nguyên | Cho phép bạn kiểm soát số lượng cân bằng lại phân đoạn đồng thời được phép trên toàn cụm. Mặc định là 2. |
cluster.routing.allocation.balance.shard | Động, số thực | Xác định hệ số trọng số cho tổng số phân đoạn được phân bổ cho mỗi nút. Mặc định là 0.45. |
cluster.routing.allocation.balance.index | Động, số thực | Xác định hệ số trọng số cho số phân đoạn trên mỗi chỉ mục được phân bổ trên một nút. Mặc định là 0.55. |
cluster.routing.allocation.balance.threshold | Động, số thực | Giá trị tối ưu hóa tối thiểu của các hoạt động cần thực hiện. Mặc định là 1.0. |
cluster.routing.allocation.balance.prefer_primary | Động, Boolean | Khi được đặt thành true, BlackHole cố gắng phân phối đều các phân đoạn chính giữa các nút cụm. Mặc định là false. |
cluster.routing.allocation.rebalance.primary.enable | Động, Boolean | Khi được đặt thành true, BlackHole cố gắng cân bằng lại các phân đoạn chính giữa các nút cụm. Mặc định là false. |
cluster.routing.allocation.rebalance.primary.buffer | Động, số thực | Xác định bộ đệm tối đa được phép của các phân đoạn chính giữa các nút. Mặc định là 0.1. |
cluster.routing.allocation.disk.threshold_enabled | Động, Boolean | Khi được đặt thành false, tắt bộ quyết định phân bổ đĩa. Mặc định là true. |
cluster.routing.allocation.disk.watermark.low | Động, chuỗi | Kiểm soát ngưỡng thấp cho việc sử dụng đĩa. Mặc định là 85%. |
cluster.routing.allocation.disk.watermark.high | Động, chuỗi | Kiểm soát ngưỡng cao. BlackHole sẽ cố gắng di chuyển các phân đoạn ra khỏi nút có mức sử dụng đĩa vượt quá tỷ lệ phần trăm được xác định. Mặc định là 90%. |
cluster.routing.allocation.disk.watermark.flood_stage | Động, chuỗi | Kiểm soát ngưỡng giai đoạn tràn. Đây là biện pháp cuối cùng để ngăn các nút hết dung lượng đĩa. Mặc định là 95%. |
cluster.info.update.interval | Động, đơn vị thời gian | Đặt tần suất BlackHole kiểm tra mức sử dụng đĩa cho mỗi nút trong cụm. Mặc định là 30s. |
cluster.routing.allocation.awareness.attributes | Động, danh sách | Xem Nhận thức phân bổ phân đoạn. |
cluster.routing.allocation.include.<attribute> | Động, enum | Phân bổ phân đoạn cho nút có thuộc tính chứa ít nhất một trong các giá trị phân tách bằng dấu phẩy được bao gồm. |
cluster.routing.allocation.require.<attribute> | Động, enum | Chỉ phân bổ phân đoạn cho nút có thuộc tính chứa tất cả các giá trị phân tách bằng dấu phẩy được bao gồm. |
cluster.routing.allocation.exclude.<attribute> | Động, enum | Không phân bổ phân đoạn cho nút có thuộc tính chứa bất kỳ giá trị phân tách bằng dấu phẩy nào được bao gồm. Các thuộc tính tích hợp hợp lệ: _name, _host_ip, _publish_ip, _ip, _host, _id, _tier. |
cluster.routing.allocation.awareness.force.<attribute>.values | Động, danh sách | Xem Nhận thức bắt buộc. |
cluster.routing.allocation.shard_movement_strategy | Động, enum | Xác định thứ tự các phân đoạn được di chuyển từ các nút đi đến các nút đến. |
cluster.routing.allocation.shard_movement_strategy hỗ trợ các chiến lược sau:
PRIMARY_FIRST- Primary shards được di dời trước, trước các phân đoạn bản sao. Việc ưu tiên này có thể giúp ngăn tình trạng sức khỏe của cụm chuyển sang màu đỏ nếu các nút di dời bị lỗi trong quá trình này.REPLICA_FIRST- Các mảnh bản sao được di dời trước, trước các mảnh chính. Việc ưu tiên này có thể giúp ngăn tình trạng sức khỏe của cụm chuyển sang màu đỏ khi thực hiện di dời mảnh trong cụm BlackHole phiên bản hỗn hợp, hỗ trợ sao chép phân đoạn.NO_PREFERENCE- Hành vi mặc định trong đó thứ tự di chuyển phân đoạn không quan trọng.
| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.routing.search_replica.strict | Động, Boolean | Kiểm soát cách các yêu cầu tìm kiếm được định tuyến khi có phân đoạn bản sao tìm kiếm cho một chỉ mục. Khi được đặt thành true, tất cả các yêu cầu tìm kiếm sẽ chỉ được định tuyến đến các phân đoạn bản sao tìm kiếm. Mặc định là true. |
cluster.allocator.gateway.batch_size | Động, số nguyên | Giới hạn số lượng phân mảnh được gửi đến các nút dữ liệu trong một lô để lấy bất kỳ siêu dữ liệu phân mảnh nào chưa được gán. Mặc định là 2000. |
cluster.allocator.existing_shards_allocator.batch_enabled | Tĩnh, Boolean | Cho phép phân bổ hàng loạt các phân đoạn chưa được gán nhưng đã tồn tại trên đĩa. Mặc định là false. |
cluster.routing.allocation.total_shards_per_node | Động, số nguyên | Tổng số phân mảnh chính và phân mảnh bản sao tối đa có thể được phân bổ cho một nút duy nhất. Mặc định là -1 (không giới hạn). |
cluster.routing.allocation.total_primary_shards_per_node | Động, số nguyên | Số lượng phân mảnh chính tối đa có thể được phân bổ cho một nút duy nhất. Mặc định là -1 (Không giới hạn). |
Cluster-level shard, block, and task settings
BlackHole hỗ trợ các thiết lập phân đoạn, khối và tác vụ cấp cụm sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
action.search.shard_count.limit | Số nguyên | Giới hạn số lượng phân đoạn tối đa bị truy cập trong quá trình tìm kiếm. Các yêu cầu vượt quá giới hạn này sẽ bị từ chối. |
cluster.blocks.read_only | Boolean | Đặt toàn bộ cụm thành chỉ đọc. Mặc định là false. |
cluster.blocks.read_only_allow_delete | Boolean | Tương tự như cluster.blocks.read_only, nhưng cho phép bạn xóa chỉ mục. |
cluster.no_cluster_manager_block | Chuỗi | Cấu hình các hoạt động bị từ chối khi không có trình quản lý cụm nào đang hoạt động. Giá trị hợp lệ: all, write, metadata_write. |
cluster.max_shards_per_node | Số nguyên | Giới hạn tổng số phân đoạn chính và bản sao cho cụm. Giới hạn được tính như sau: cluster.max_shards_per_node × số lượng nút dữ liệu không đóng băng. Mặc định là 1000. |
cluster.persistent_tasks.allocation.enable | Chuỗi | Bật hoặc tắt phân bổ cho các tác vụ liên tục. Giá trị hợp lệ: all (mặc định), none. |
cluster.persistent_tasks.allocation.recheck_interval | Đơn vị thời gian | Xác định tần suất các kiểm tra phân công được thực hiện cho các tác vụ liên tục. Mặc định là 30s, với yêu cầu tối thiểu là 10s. |
Cluster-level search settings
BlackHole hỗ trợ các thiết lập tìm kiếm theo cụm sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.search.ignore_awareness_attributes | Boolean | Kiểm soát liệu các thuộc tính nhận thức có được xem xét trong quá trình định tuyến truy vấn phân đoạn hay không. Nếu true (mặc định), cụm bỏ qua các thuộc tính nhận thức và sử dụng Chọn lọc Bản sao Thích ứng (ARS) để chọn bản sao phân đoạn tối ưu, giảm độ trễ phản hồi truy vấn. Đặt thành false để các quyết định định tuyến ưu tiên các thuộc tính nhận thức thay vì lựa chọn dựa trên hiệu suất. |
Cluster-level slow log settings
Để biết thêm thông tin, hãy xem Tìm kiếm nhật ký yêu cầu chậm.| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.search.request.slowlog.threshold.warn | Đơn vị thời gian | Đặt ngưỡng nhật ký chậm WARN cấp yêu cầu. Mặc định là -1. |
cluster.search.request.slowlog.threshold.info | Đơn vị thời gian | Đặt ngưỡng nhật ký chậm INFO cấp yêu cầu. Mặc định là -1. |
cluster.search.request.slowlog.threshold.debug | Đơn vị thời gian | Đặt ngưỡng nhật ký chậm DEBUG cấp yêu cầu. Mặc định là -1. |
cluster.search.request.slowlog.threshold.trace | Đơn vị thời gian | Đặt ngưỡng nhật ký chậm TRACE cấp yêu cầu. Mặc định là -1. |
cluster.search.request.slowlog.level | Chuỗi | Đặt mức nhật ký chậm tối thiểu để ghi: WARN, INFO, DEBUG và TRACE. Mặc định là TRACE. |
Cluster-level index settings
Để biết thông tin về cài đặt chỉ mục cấp chỉ mục, hãy xem Cluster-level index settings.Cluster-level coordination settings
BlackHole hỗ trợ các thiết lập phối hợp cấp cụm sau. Tất cả các thiết lập trong danh sách này đều là thiết lập động:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.fault_detection.leader_check.timeout | Đơn vị thời gian | Khoảng thời gian một nút chờ phản hồi từ trình quản lý cụm được bầu trong quá trình kiểm tra leader trước khi coi việc kiểm tra là thất bại. Giá trị hợp lệ từ 1ms đến 60s, bao gồm cả hai. Mặc định là 10s. |
cluster.fault_detection.follower_check.interval | Đơn vị thời gian | Khoảng thời gian trình quản lý cụm được bầu chờ giữa các lần gửi kiểm tra follower đến các nút khác trong cụm. Giá trị hợp lệ là 100ms trở lên. Mặc định là 1000ms. |
cluster.follower_lag.timeout | Đơn vị thời gian | Khoảng thời gian trình quản lý cụm được bầu chờ để nhận xác nhận cho các bản cập nhật trạng thái cụm từ các nút bị chậm. Mặc định là 90s. Nếu một nút không áp dụng thành công bản cập nhật trạng thái cụm trong khoảng thời gian này, nó được coi là đã thất bại và bị loại khỏi cụm. |
cluster.publish.timeout | Đơn vị thời gian | Khoảng thời gian trình quản lý cụm chờ mỗi bản cập nhật trạng thái cụm được xuất bản hoàn toàn cho tất cả các nút, trừ khi discovery.type được đặt thành single-node. Mặc định là 30s. |
Cluster-level fault detection settings
BlackHole hỗ trợ các thiết lập phát hiện lỗi cấp cụm sau đây để kiểm soát cách các nút phát hiện và phản hồi lỗi:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.fault_detection.follower_check.retry_count | Tĩnh, số nguyên | Đặt số lần kiểm tra follower thất bại liên tiếp phải xảy ra trước khi trình quản lý cụm được bầu coi một nút là bị lỗi và loại bỏ nó khỏi cụm. Mặc định là 3. |
cluster.fault_detection.leader_check.interval | Tĩnh, đơn vị thời gian | Đặt thời gian mỗi nút chờ giữa các lần kiểm tra trình quản lý cụm được bầu. Điều này kiểm soát tần suất kiểm tra sức khỏe leader được thực hiện bởi các nút follower. Mặc định là 1s. |
cluster.fault_detection.leader_check.retry_count | Tĩnh, số nguyên | Đặt số lần kiểm tra leader thất bại liên tiếp phải xảy ra trước khi một nút coi trình quản lý cụm được bầu là bị lỗi và cố gắng tìm hoặc bầu trình quản lý cụm mới. Mặc định là 3. |
cluster.indices.tombstones.size | Tĩnh, số nguyên | Đặt số lượng tối đa các tombstone xóa chỉ mục để giữ trong trạng thái cụm. Các tombstone chỉ mục ngăn các nút không phải là thành viên của cụm khi xảy ra xóa tham gia cụm và nhập lại chỉ mục. Mặc định là 500. |
Cluster-level CAT response limit settings
BlackHole hỗ trợ các cài đặt giới hạn phản hồi API CAT cấp cụm sau, tất cả đều là cài đặt động:| Cài đặt | Loại | Mô tả |
|---|---|---|
cat.indices.response.limit.number_of_indices | Số nguyên | Đặt giới hạn về số lượng chỉ mục được trả về bởi API CAT Indices. Giá trị mặc định là -1 (không giới hạn). Nếu số lượng chỉ mục trong phản hồi vượt quá giới hạn này, API trả về lỗi 429. |
cat.shards.response.limit.number_of_shards | Số nguyên | Đặt giới hạn về số lượng phân đoạn được trả về bởi API CAT Shards. Giá trị mặc định là -1 (không giới hạn). Nếu số lượng phân đoạn trong phản hồi vượt quá giới hạn này, API trả về lỗi 429. |
cat.segments.response.limit.number_of_indices | Số nguyên | Đặt giới hạn về số lượng chỉ mục được trả về bởi API CAT Segments. Giá trị mặc định là -1 (không giới hạn). Nếu số lượng chỉ mục trong phản hồi vượt quá giới hạn này, API trả về lỗi 429. |
Cluster-level metadata settings
BlackHole hỗ trợ các thiết lập siêu dữ liệu cấp cụm sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.metadata.<key> | Động, khác nhau | Thêm siêu dữ liệu cụm ở định dạng "cluster.metadata.key": "value". Cài đặt này hữu ích để lưu trữ thông tin tùy ý, ít thay đổi về cụm, chẳng hạn như chi tiết liên hệ hoặc ghi chú, mà không cần tạo một chỉ mục riêng. |
Siêu dữ liệu cụm do người dùng xác định không nhằm mục đích lưu trữ thông tin
nhạy cảm hoặc bí mật. Các giá trị có thể nhìn thấy bởi bất kỳ ai có quyền truy
cập vào API Get Cluster Settings và được ghi lại trong nhật ký.
Cluster-level remote cluster settings
BlackHole hỗ trợ các thiết lập cụm từ xa sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
cluster.remote.initial_connect_timeout | Động, đơn vị thời gian | Đặt khoảng thời gian chờ để thiết lập các kết nối ban đầu đến các cụm từ xa khi nút khởi động. Mặc định là 30s. |
cluster.remote.<cluster_alias>.mode | Động, chuỗi | Chỉ định chế độ kết nối cho một cụm từ xa cụ thể. Giá trị hợp lệ là sniff (mặc định) và proxy. |
node.remote_cluster_client | Tĩnh, Boolean | Kiểm soát liệu một nút có thể hoạt động như một máy khách liên cụm và kết nối với các cụm từ xa hay không. Mặc định là true. |
cluster.remote.<cluster_alias>.skip_unavailable | Động, Boolean | Kiểm soát liệu các hoạt động liên cụm có nên tiếp tục khi cụm từ xa cụ thể này không khả dụng hay không. Mặc định là false. |
cluster.remote.<cluster_alias>.transport.compress | Động, Boolean | Bật nén cho các giao tiếp vận chuyển với một cụm từ xa cụ thể. Mặc định là false. |
cluster.remote.<cluster_alias>.transport.ping_schedule | Động, đơn vị thời gian | Đặt khoảng thời gian để gửi các tin nhắn ping cấp ứng dụng nhằm duy trì kết nối với một cụm từ xa cụ thể. Mặc định là -1 (tắt). |
cluster.remote.<cluster_alias>.seeds | Động, danh sách | Chỉ chế độ Sniff. Chỉ định danh sách các nút seed được sử dụng để khám phá cấu trúc cụm từ xa. |
cluster.remote.<cluster_alias>.node_connections | Động, số nguyên | Chỉ chế độ Sniff. Đặt số lượng nút gateway để duy trì các kết nối hoạt động trong cụm từ xa. Mặc định là 3. |
cluster.remote.node.attr | Tĩnh, chuỗi | Chỉ chế độ Sniff. Chỉ định một thuộc tính nút để lọc các nút đủ điều kiện làm nút gateway trong các cụm từ xa. |
cluster.remote.<cluster_alias>.proxy_address | Động, chuỗi | Chỉ chế độ Proxy. Chỉ định địa chỉ máy chủ proxy để kết nối với cụm từ xa. |
cluster.remote.<cluster_alias>.proxy_socket_connections | Động, số nguyên | Chỉ chế độ Proxy. Đặt số lượng kết nối socket để mở đến máy chủ proxy. Mặc định là 18. |
cluster.remote.<cluster_alias>.server_name | Động, chuỗi | Chỉ chế độ Proxy. Chỉ định tên máy chủ được gửi trong phần mở rộng TLS Server Name Indication (SNI). |
Index settings
Cài đặt chỉ mục có thể có hai loại: cài đặt cấp cụm ảnh hưởng đến tất cả chỉ mục trong cụm và cài đặt cấp chỉ mục ảnh hưởng đến từng chỉ mục. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem phần Cấu hình BlackHole.Cluster-level index settings
Có hai loại thiết lập cụm:- Static cluster-level index settings là cài đặt bạn không thể cập nhật khi cụm đang chạy. Để cập nhật cài đặt tĩnh, bạn phải dừng cụm, cập nhật cài đặt và sau đó khởi động lại cụm.
- Dynamic cluster-level index settings là những thiết lập mà bạn có thể cập nhật bất cứ lúc nào.
Static cluster-level index settings
BlackHole hỗ trợ các thiết lập static cluster-level index:| Cài đặt | Loại | Mô tả |
|---|---|---|
indices.cache.cleanup_interval | Đơn vị thời gian | Lên lịch một tác vụ nền định kỳ để dọn dẹp các mục nhập đã hết hạn khỏi bộ nhớ đệm theo khoảng thời gian được chỉ định. Mặc định là 1m (1 phút). |
indices.requests.cache.size | Chuỗi | Kích thước bộ nhớ đệm dưới dạng phần trăm của kích thước heap. Mặc định là 1%. |
indices.analysis.hunspell.dictionary.ignore_case | Tĩnh, Boolean | Kiểm soát liệu việc khớp từ điển Hunspell có bỏ qua phân biệt chữ hoa chữ thường trên toàn cầu cho tất cả các ngôn ngữ hay không. |
indices.analysis.hunspell.dictionary.lazy | Tĩnh, Boolean | Kiểm soát khi nào các từ điển Hunspell được tải. Nếu true, việc tải từ điển được hoãn lại cho đến khi một từ điển thực sự được sử dụng. Mặc định là false. |
indices.memory.index_buffer_size | Tĩnh, chuỗi | Kiểm soát lượng bộ nhớ heap được phân bổ cho các hoạt động lập chỉ mục trên tất cả các phân đoạn trên một nút. Chấp nhận phần trăm (như 10%) hoặc giá trị kích thước byte (như 512mb). Mặc định là 10% của tổng heap. |
indices.memory.min_index_buffer_size | Tĩnh, đơn vị byte | Đặt kích thước tối thiểu tuyệt đối cho bộ đệm lập chỉ mục. Mặc định là 48mb. |
indices.memory.max_index_buffer_size | Tĩnh, đơn vị byte | Đặt kích thước tối đa tuyệt đối cho bộ đệm lập chỉ mục. Mặc định là không giới hạn (không có giới hạn). |
indices.queries.cache.size | Tĩnh, chuỗi | Kiểm soát kích thước bộ nhớ được phân bổ cho bộ nhớ đệm truy vấn (bộ nhớ đệm bộ lọc) trên mỗi nút dữ liệu. Mặc định là 10% của bộ nhớ heap. |
Dynamic cluster-level index settings
BlackHole hỗ trợ các thiết lập chỉ mục cấp cụm động sau:| Cài đặt | Loại | Mô tả |
|---|---|---|
action.auto_create_index | Boolean | Tự động tạo chỉ mục nếu chỉ mục chưa tồn tại. Cũng áp dụng bất kỳ mẫu chỉ mục nào được cấu hình. Mặc định là true. |
action.destructive_requires_name | Boolean | Khi true, bạn phải chỉ định tên chỉ mục để xóa chỉ mục. Bạn không thể xóa tất cả các chỉ mục hoặc sử dụng ký tự đại diện. Mặc định là false. |
cluster.default.index.refresh_interval | Đơn vị thời gian | Đặt khoảng thời gian làm mới khi cài đặt index.refresh_interval không được cung cấp. |
cluster.minimum.index.refresh_interval | Đơn vị thời gian | Đặt khoảng thời gian làm mới tối thiểu và áp dụng cho tất cả các chỉ mục trong cụm. |
cluster.indices.close.enable | Boolean | Cho phép đóng các chỉ mục đang mở trong BlackHole. Mặc định là true. |
indices.recovery.max_bytes_per_sec | Chuỗi | Giới hạn tổng lưu lượng phục hồi đến và đi cho mỗi nút. Mặc định là 40mb. |
indices.recovery.max_concurrent_file_chunks | Số nguyên | Số lượng khối tệp được gửi song song cho mỗi hoạt động phục hồi. Mặc định là 2. |
indices.recovery.max_concurrent_remote_store_streams | Số nguyên | Số lượng luồng đến kho lưu trữ từ xa có thể được mở song song khi phục hồi chỉ mục kho lưu trữ từ xa. Mặc định là 20. |
indices.replication.max_bytes_per_sec | Chuỗi | Giới hạn tổng lưu lượng sao chép đến và đi cho mỗi nút. Mặc định là 40mb. |
indices.fielddata.cache.size | Chuỗi | Kích thước tối đa của bộ nhớ đệm dữ liệu trường. Có thể được chỉ định dưới dạng giá trị tuyệt đối (ví dụ: 8GB) hoặc phần trăm của heap nút (ví dụ: 50%). Mặc định là 35%. |
indices.query.bool.max_clause_count | Số nguyên | Xác định tích tối đa của các trường và thuật ngữ có thể truy vấn đồng thời. Mặc định là 1024. |
cluster.remote_store.index.path.type | Chuỗi | Chiến lược đường dẫn cho dữ liệu được lưu trữ trong kho lưu trữ từ xa. Giá trị hợp lệ: fixed (mặc định), hashed_prefix, hashed_infix. |
cluster.remote_store.index.path.hash_algorithm | Chuỗi | Hàm băm được sử dụng để tạo giá trị băm. Giá trị hợp lệ: fnv_1a_base64, fnv_1a_composite_1 (mặc định). |
cluster.remote_store.translog.transfer_timeout | Đơn vị thời gian | Kiểm soát giá trị thời gian chờ khi tải lên các tệp translog và checkpoint. Mặc định là 30s. |
cluster.remote_store.index.segment_metadata.retention.max_count | Số nguyên | Kiểm soát số lượng tối thiểu các tệp siêu dữ liệu cần giữ trong kho lưu trữ phân đoạn. Mặc định là 10. |
cluster.remote_store.segment.transfer_timeout | Đơn vị thời gian | Kiểm soát khoảng thời gian tối đa để chờ tất cả các phân đoạn mới cập nhật sau khi làm mới. Mặc định là 30m. |
cluster.remote_store.translog.path.prefix | Chuỗi | Kiểm soát tiền tố đường dẫn cố định cho dữ liệu translog. Mặc định là "". |
cluster.remote_store.segments.path.prefix | Chuỗi | Kiểm soát tiền tố đường dẫn cố định cho dữ liệu phân đoạn. Mặc định là "". |
cluster.snapshot.shard.path.prefix | Chuỗi | Kiểm soát tiền tố đường dẫn cố định cho các blob cấp phân đoạn snapshot. Mặc định là "". |
cluster.default_number_of_replicas | Số nguyên | Kiểm soát số lượng bản sao mặc định cho các chỉ mục trong cụm. Mặc định là 1. |
cluster.thread_pool.<fixed-threadpool>.size | Số nguyên | Kiểm soát kích thước của cả nhóm luồng hàng đợi cố định và có thể thay đổi kích thước. |
cluster.thread_pool.<scaling-threadpool>.max | Số nguyên | Đặt kích thước tối đa của nhóm luồng mở rộng. |
cluster.thread_pool.<scaling-threadpool>.core | Số nguyên | Chỉ định kích thước lõi của nhóm luồng mở rộng. |
Updating dynamic cluster settings
Để tìm hiểu cách cập nhật cài đặt động, hãy xem Cập nhật cluster settings using the API.Index-level index settings
Bạn có thể chỉ định cài đặt chỉ mục khi tạo chỉ mục. Có hai loại cài đặt chỉ mục:- Static index-level index settings là cài đặt bạn không thể cập nhật khi chỉ mục đang mở. Để cập nhật cài đặt tĩnh, bạn phải đóng chỉ mục, cập nhật cài đặt, rồi mở lại chỉ mục.
- Dynamic index-level index settings là cài đặt bạn có thể cập nhật bất cứ lúc nào.
Specifying a setting when creating an index
Khi tạo chỉ mục, bạn có thể chỉ định cài đặt tĩnh hoặc động như sau:Static index-level index settings
BlackHole hỗ trợ các thiết lập chỉ mục cấp độ tĩnh sau:- index.number_of_shards (Số nguyên): Số lượng phân đoạn chính trong index. Mặc định là 1.
- index.number_of_routing_shards (Số nguyên): Số lượng phân đoạn định tuyến được sử dụng để chia một chỉ mục.
- index.shard.check_on_startup (Boolean): Có nên kiểm tra các phân đoạn của chỉ mục xem có bị hỏng không. Các tùy chọn có sẵn là false (không kiểm tra hỏng), checksum (kiểm tra hỏng vật lý) và true (kiểm tra hỏng cả vật lý và logic). Mặc định là false.
- index.codec (Chuỗi): Xác định cách các trường được lưu trữ của chỉ mục được nén và lưu trên đĩa. Cài đặt này ảnh hưởng đến kích thước của các phân đoạn chỉ mục và hiệu suất của các hoạt động chỉ mục. Các giá trị hợp lệ là: - default - best_compression - zstd (BlackHole 2.9 trở lên) - zstd_no_dict (BlackHole 2.9 trở lên) - qat_lz4 (BlackHole 2.14 trở lên, trên các hệ thống được hỗ trợ) - qat_deflate (BlackHole 2.14 trở lên, trên các hệ thống được hỗ trợ) Đối với zstd, zstd_no_dict, qat_lz4 và qat_deflate, bạn có thể chỉ định mức nén trong thiết lập index.codec.compression_level. Để biết thêm thông tin, hãy xem Thiết lập codec Index. Tùy chọn. Mặc định là mặc định. - index.codec.compression_level (Số nguyên): Thiết lập mức nén cung cấp sự cân bằng giữa tỷ lệ nén và tốc độ. Mức nén cao hơn dẫn đến tỷ lệ nén cao hơn (dung lượng lưu trữ nhỏ hơn), nhưng tốc độ nén và giải nén chậm hơn dẫn đến độ trễ lập chỉ mục và tìm kiếm cao hơn. Thiết lập này chỉ có thể được chỉ định nếu index.codec được đặt thành zstd và zstd_no_dict trong BlackHole 2.9 trở lên hoặc qat_lz4 và qat_deflate trong BlackHole 2.14 trở lên. Các giá trị hợp lệ là các số nguyên trong phạm vi [1, 6]. Để biết thêm thông tin, hãy xem Thiết lập codec Chỉ mục. Tùy chọn. Mặc định là 3. - index.codec.qatmode (Chuỗi): Chế độ tăng tốc phần cứng được sử dụng cho codec nén qat_lz4 và qat_deflate. Các giá trị hợp lệ là auto và hardware. Để biết thêm thông tin, hãy xem Cài đặt codec Index. Tùy chọn. Mặc định là auto. - index.routing_partition_size (Số nguyên): Số lượng phân đoạn mà một giá trị định tuyến tùy chỉnh có thể đến. Định tuyến giúp cân bằng cụm bằng cách phân bổ giá trị đến một tập hợp con các phân đoạn thay vì một phân đoạn duy nhất. Để bật định tuyến, đặt giá trị này lớn hơn 1 nhưng nhỏ hơn index.number_of_shards. Mặc định là 1. - index.soft_deletes.retention_lease.period (Đơn vị thời gian): Khoảng thời gian tối đa để lưu giữ lịch sử hoạt động của một phân đoạn. Mặc định là 12 giờ. - index.sort.field (Chuỗi): Chỉ định trường được sử dụng để sắp xếp tài liệu tại thời điểm lập chỉ mục. Thứ tự sắp xếp mặc định là asc (tăng dần). Để thay đổi thứ tự, hãy đặt tham số index.sort.order - index.sort.order (Chuỗi): Chỉ định thứ tự sắp xếp tài liệu tại thời điểm lập chỉ mục. Các giá trị hợp lệ là asc (tăng dần) và desc (giảm dần). Mặc định là asc. Thiết lập này yêu cầu index.sort.field cũng phải được thiết lập. - index.sort.mode (Chuỗi): Kiểm soát cách xử lý các trường đa giá trị trong quá trình sắp xếp. Các giá trị hợp lệ là min (sử dụng giá trị thấp nhất) và max (sử dụng giá trị cao nhất). - index.sort.missing (Chuỗi): Xác định cách xử lý các tài liệu không có trường sắp xếp. Các giá trị hợp lệ là _last (đặt các tài liệu không có trường sắp xếp ở cuối) và _first (đặt các tài liệu không có trường sắp xếp ở đầu). - index.load_fixed_bitset_filters_eagerly (Boolean): Liệu BlackHole có nên tải trước các bộ lọc được lưu trong bộ nhớ đệm hay không. Các tùy chọn khả dụng là đúng (true) và sai (false). Mặc định là đúng (true). - index.hidden (Boolean): Có nên ẩn chỉ mục hay không. Chỉ mục ẩn không được trả về trong các truy vấn có ký tự đại diện. Các tùy chọn có sẵn là true và false. Mặc định là false. - index.merge.policy (Chuỗi): Thiết lập này kiểm soát chính sách hợp nhất cho các phân đoạn Lucene. Các tùy chọn khả dụng là tiered và log_byte_size. Mặc định là tiered, nhưng đối với dữ liệu chuỗi thời gian, chẳng hạn như sự kiện nhật ký, chúng tôi khuyên bạn nên sử dụng chính sách hợp nhất log_byte_size, điều này có thể cải thiện hiệu suất truy vấn khi thực hiện truy vấn phạm vi trên trường @timestamp. Chúng tôi khuyên bạn không nên thay đổi chính sách hợp nhất của chỉ mục hiện có. Thay vào đó, hãy cấu hình thiết lập này khi tạo chỉ mục mới. - index.merge_on_flush.enabled (Boolean): Thiết lập này kiểm soát tính năng hợp nhất khi làm mới của Apache Lucene nhằm mục đích giảm số lượng phân đoạn bằng cách thực hiện hợp nhất khi làm mới (hoặc theo thuật ngữ của BlackHole, khi xả). Mặc định là đúng. - index.merge_on_flush.max_full_flush_merge_wait_time (Đơn vị thời gian): Thiết lập này đặt khoảng thời gian chờ hợp nhất khi index.merge_on_flush.enabled được bật. Mặc định là 10 giây. - index.merge_on_flush.policy (mặc định | merge-on-flush): Cài đặt này kiểm soát chính sách hợp nhất nào sẽ được sử dụng khi index.merge_on_flush.enabled được bật. Mặc định là default. - index.check_pending_flush.enabled (Boolean): Thiết lập này kiểm soát thiết lập trình ghi chỉ mục checkPendingFlushOnUpdate của Apache Lucene, thiết lập này chỉ định liệu một luồng lập chỉ mục có nên kiểm tra các lệnh xóa đang chờ xử lý khi cập nhật hay không để xóa bộ đệm lập chỉ mục vào đĩa. Mặc định là đúng. - index.use_compound_file (Boolean): Thiết lập này kiểm soát các thiết lập của trình ghi chỉ mục useCompoundFile của Apache Lucene, thiết lập này chỉ định liệu các tệp phân đoạn mới ghi có được đóng gói vào một tệp hợp nhất hay không. Mặc định là đúng. - index.append_only.enabled (Boolean): Đặt thành true để ngăn chặn mọi cập nhật cho tài liệu trong chỉ mục. Mặc định là false - index.derived_source.enabled (Boolean): Đặt thành true để tạo nguồn động mà không lưu trữ rõ ràng trường _source, điều này có thể tối ưu hóa lưu trữ. Mặc định là false. Để biết thêm thông tin, hãy xem Nguồn phái sinh.
Updating a static index setting
Bạn chỉ có thể cập nhật cài đặt chỉ mục tĩnh trên một chỉ mục đã đóng. Ví dụ sau minh họa cách cập nhật cài đặt index codec. Đầu tiên, đóng một index:_settings:
- index.blocks.write (Boolean): Chỉ định liệu chỉ mục có phải là chỉ đọc hay không. Đặt thành true sẽ chặn tất cả các yêu cầu ghi và chuyển chỉ mục sang chế độ chỉ đọc. Mặc định là false
- index.search.idle.after (Đơn vị thời gian): Khoảng thời gian một phân đoạn phải chờ để tìm kiếm hoặc nhận yêu cầu cho đến khi nó trở nên nhàn rỗi. Mặc định là 30 giây.
- index.search.default_pipeline (Chuỗi): Tên của đường ống tìm kiếm được sử dụng nếu không có đường ống nào được thiết lập rõ ràng khi tìm kiếm chỉ mục. Nếu đường ống mặc định được thiết lập và đường ống đó không tồn tại, các yêu cầu chỉ mục sẽ không thành công. Sử dụng tên đường ống _none để chỉ định không có đường ống tìm kiếm mặc định. Để biết thêm thông tin, hãy xem Đường ống tìm kiếm mặc định.
- index.refresh_interval (Đơn vị thời gian): Tần suất làm mới chỉ mục, giúp xuất bản các thay đổi gần đây nhất và cho phép tìm kiếm. Có thể đặt thành -1 để tắt tính năng làm mới. Mặc định là 1s.
- index.refresh_interval (Đơn vị thời gian): Tần suất làm mới chỉ mục, giúp xuất bản các thay đổi gần đây nhất và cho phép tìm kiếm. Có thể đặt thành -1 để tắt tính năng làm mới. Mặc định là 1 giây.
- index.max_inner_result_window (Số nguyên): Giá trị tối đa của from + size, chỉ định số lượng kết quả tìm kiếm lồng nhau được trả về và tài liệu có liên quan nhất được tổng hợp trong quá trình truy vấn. from là chỉ mục bắt đầu để tìm kiếm, và size là số lượng kết quả hàng đầu được trả về. Mặc định là 100.
- index.max_inner_result_window (Số nguyên): Giá trị tối đa của from + size, chỉ định số lượng kết quả tìm kiếm lồng nhau được trả về và tài liệu có liên quan nhất được tổng hợp trong quá trình truy vấn. from là chỉ mục bắt đầu để tìm kiếm, và size là số lượng kết quả hàng đầu được trả về. Mặc định là 100.
- index.max_docvalue_fields_search (Số nguyên): Số lượng docvalue_fields tối đa được phép trong một truy vấn. Mặc định là 100.
- index.max_docvalue_fields_search (Số nguyên): Số lượng docvalue_field tối đa được phép trong một truy vấn. Mặc định là 100.
- index.max_ngram_diff (Số nguyên): Chênh lệch tối đa giữa giá trị min_gram và max_gram của NGramTokenizer và NGramTokenFilter. Mặc định là 1.
- index.max_shingle_diff (Số nguyên): Chênh lệch tối đa giữa max_shingle_size và min_shingle_size để đưa vào bộ lọc mã thông báo shingle. Mặc định là 3.
- index.max_refresh_listeners (Số nguyên): Số lượng trình lắng nghe làm mới tối đa mà mỗi phân đoạn được phép có.
- index.analyze.max_token_count (Số nguyên): Số lượng token tối đa có thể được trả về từ thao tác API _analyze. Mặc định là 10000.
- index.highlight.max_analyzed_offset (Số nguyên): Số ký tự mà yêu cầu tô sáng có thể phân tích. Mặc định là 1000000.
- index.max_terms_count (Số nguyên): Số lượng thuật ngữ tối đa mà truy vấn thuật ngữ có thể chấp nhận. Mặc định là 65536.
- index.max_regex_length (Số nguyên): Độ dài ký tự tối đa của regex có thể có trong một truy vấn regexp. Mặc định là 1000.
- index.query.default_field (Danh sách): Một trường hoặc danh sách các trường mà BlackHole sử dụng trong các truy vấn trong trường hợp một trường không được chỉ định trong các tham số.
- index.query.max_nested_depth (Số nguyên): Số lượng cấp độ lồng nhau tối đa cho các truy vấn lồng nhau. Mặc định là 20. Tối thiểu là 1 (truy vấn lồng nhau đơn).
- index.requests.cache.enable (Boolean): Bật hoặc tắt bộ đệm yêu cầu chỉ mục. Mặc định là đúng. Để biết thêm thông tin, hãy xem mục Bộ đệm yêu cầu chỉ mục.
- index.routing.allocation.enable (Chuỗi): Chỉ định các tùy chọn cho việc phân bổ phân mảnh của chỉ mục. Các tùy chọn khả dụng là all (cho phép phân bổ cho tất cả các phân mảnh), primary (chỉ cho phép phân bổ cho các phân mảnh chính), new_primaries (chỉ cho phép phân bổ cho các phân mảnh chính mới) và none (không cho phép phân bổ). Mặc định là all.
- index.routing.rebalance.enable (Chuỗi): Cho phép cân bằng lại phân mảnh cho chỉ mục. Các tùy chọn khả dụng là all (cho phép cân bằng lại tất cả các phân mảnh), primary (chỉ cho phép cân bằng lại các phân mảnh chính), replicas (chỉ cho phép cân bằng lại các bản sao) và none (không cho phép cân bằng lại). Mặc định là all.
- index.gc_deletes (Đơn vị thời gian): Khoảng thời gian lưu giữ số phiên bản của tài liệu đã xóa. Mặc định là 60 giây.
- index.default_pipeline (Chuỗi): Đường ống nút ingest mặc định cho chỉ mục. Nếu đường ống mặc định được đặt và đường ống không tồn tại, các yêu cầu chỉ mục sẽ không thành công. Tên đường ống _none chỉ định rằng chỉ mục không có đường ống ingest.
- index.final_pipeline (Chuỗi): Đường ống nút ingest cuối cùng cho chỉ mục. Nếu đường ống cuối cùng được thiết lập và đường ống không tồn tại, các yêu cầu chỉ mục sẽ không thành công. Tên đường ống _none chỉ định rằng chỉ mục không có đường ống ingest.
- index.optimize_doc_id_lookup.fuzzy_set.enabled (Boolean): Thiết lập này kiểm soát việc có nên bật fuzzy_set hay không để tối ưu hóa việc tra cứu ID tài liệu trong các lệnh lập chỉ mục hoặc tìm kiếm bằng cách sử dụng một cấu trúc dữ liệu bổ sung, trong trường hợp này là cấu trúc dữ liệu bộ lọc Bloom. Việc bật thiết lập này sẽ cải thiện hiệu suất cho các thao tác upsert và tìm kiếm dựa trên ID tài liệu bằng cách tạo một cấu trúc dữ liệu mới (bộ lọc Bloom). Bộ lọc Bloom cho phép xử lý các trường hợp tiêu cực (tức là ID không có trong chỉ mục hiện tại) thông qua việc tra cứu ngoài heap nhanh hơn. Lưu ý rằng việc tạo bộ lọc Bloom yêu cầu sử dụng heap bổ sung trong thời gian lập chỉ mục. Mặc định là false.
- index.optimize_doc_id_lookup.fuzzy_set.false_positive_probability (Double): Thiết lập xác suất dương tính giả cho fuzzy_set cơ sở (tức là bộ lọc Bloom). Xác suất dương tính giả thấp hơn đảm bảo thông lượng cao hơn cho các thao tác upsert và get, nhưng lại làm tăng dung lượng lưu trữ và sử dụng bộ nhớ. Giá trị được phép nằm trong khoảng từ 0,01 đến 0,50. Mặc định là 0,20.
- index.routing.allocation.total_shards_per_node (Số nguyên): Tổng số phân mảnh chính và phân mảnh bản sao tối đa từ một chỉ mục duy nhất có thể được phân bổ cho một nút duy nhất. Mặc định là -1 (không giới hạn). Giúp kiểm soát việc phân phối phân mảnh theo chỉ mục trên các nút bằng cách giới hạn số lượng phân mảnh trên mỗi nút. Hãy cẩn thận khi sử dụng vì các phân mảnh từ chỉ mục này có thể vẫn chưa được phân bổ nếu các nút đạt đến giới hạn đã cấu hình.
- index.routing.allocation.total_primary_shards_per_node (Số nguyên): Số lượng phân mảnh chính tối đa từ một chỉ mục duy nhất có thể được phân bổ cho một nút duy nhất. Thiết lập này chỉ áp dụng cho các cụm được hỗ trợ từ xa. Mặc định là -1 (không giới hạn). Giúp kiểm soát việc phân bổ phân mảnh chính theo chỉ mục trên các nút bằng cách giới hạn số lượng phân mảnh chính trên mỗi nút. Hãy cẩn thận khi sử dụng vì các phân mảnh chính từ chỉ mục này có thể vẫn chưa được phân bổ nếu các nút đạt đến giới hạn đã cấu hình.
- index.derived_source.translog.enabled (Boolean): Kiểm soát cách tài liệu được đọc từ translog cho một chỉ mục có bật nguồn dẫn xuất. Giá trị mặc định là index.derived_source.enabled. Để biết thêm thông tin, xem Nguồn dẫn xuất.
Updating a dynamic index setting
Bạn có thể cập nhật cài đặt chỉ mục động bất kỳ lúc nào thông qua API. Ví dụ: để cập nhật khoảng thời gian làm mới, hãy sử dụng yêu cầu sau:Search settings
BlackHole hỗ trợ các cài đặt tìm kiếm sau:- search.max_buckets (Động, số nguyên): Số lượng thùng tổng hợp tối đa được phép trong một phản hồi. Mặc định là 65535.
- search.phase_took_enabled (Động, Boolean): Cho phép trả về giá trị thời gian thực hiện ở cấp độ pha trong phản hồi tìm kiếm. Mặc định là false.
- search.allow_expensive_queries (Động, Boolean): Cho phép hoặc không cho phép các truy vấn đắt tiền. Để biết thêm thông tin, hãy xem Truy vấn đắt tiền.
- search.default_allow_partial_results (Động, Boolean): Thiết lập cấp cụm cho phép trả về kết quả tìm kiếm một phần nếu yêu cầu hết thời gian chờ hoặc phân đoạn bị lỗi. Nếu yêu cầu tìm kiếm chứa tham số allow_partial_search_results, tham số này sẽ được ưu tiên hơn thiết lập này. Mặc định là true.
- search.cancel_after_time_interval (Động, đơn vị thời gian): Cài đặt cấp cụm, thiết lập thời gian chờ mặc định cho tất cả các yêu cầu tìm kiếm ở cấp nút điều phối. Sau khi đạt đến thời gian chỉ định, yêu cầu sẽ dừng và tất cả các tác vụ liên quan sẽ bị hủy. Mặc định là -1 (không có thời gian chờ).
- search.default_search_timeout (Động, đơn vị thời gian): Thiết lập cấp cụm, chỉ định khoảng thời gian tối đa mà một yêu cầu tìm kiếm có thể chạy trước khi yêu cầu bị hủy ở cấp phân đoạn. Nếu khoảng thời gian chờ được chỉ định trong yêu cầu tìm kiếm, khoảng thời gian đó sẽ được ưu tiên hơn thiết lập đã cấu hình. Mặc định là -1.
- search.default_keep_alive (Động, đơn vị thời gian): Chỉ định giá trị duy trì kết nối mặc định cho các tìm kiếm cuộn và Điểm trong Thời gian (PIT). Vì một yêu cầu có thể đến một phân đoạn nhiều lần (ví dụ: trong các giai đoạn truy vấn và tìm nạp), BlackHole mở một ngữ cảnh yêu cầu tồn tại trong toàn bộ thời gian của yêu cầu để đảm bảo tính nhất quán của trạng thái phân đoạn cho từng yêu cầu phân đoạn riêng lẻ. Trong tìm kiếm tiêu chuẩn, sau khi giai đoạn tìm nạp hoàn tất, ngữ cảnh yêu cầu sẽ bị đóng. Đối với tìm kiếm cuộn hoặc tìm kiếm PIT, BlackHole giữ ngữ cảnh yêu cầu mở cho đến khi được đóng rõ ràng (hoặc cho đến khi đạt đến thời gian duy trì kết nối). Một luồng nền sẽ định kỳ kiểm tra tất cả các ngữ cảnh cuộn và PIT đang mở và xóa những ngữ cảnh đã vượt quá thời gian chờ duy trì kết nối. Thiết lập search.keep_alive_interval chỉ định tần suất các ngữ cảnh được kiểm tra xem có hết hạn hay không. Thiết lập search.default_keep_alive là thời hạn mặc định cho việc hết hạn. Một yêu cầu cuộn hoặc PIT có thể chỉ định rõ ràng việc duy trì kết nối, điều này sẽ được ưu tiên hơn thiết lập này. Mặc định là 5 phút.
- search.keep_alive_interval (Tĩnh, đơn vị thời gian): Xác định khoảng thời gian mà BlackHole kiểm tra các ngữ cảnh yêu cầu đã vượt quá giới hạn duy trì trạng thái hoạt động. Mặc định là 1 phút.
- search.max_keep_alive (Động, đơn vị thời gian): Chỉ định giá trị duy trì trạng thái hoạt động tối đa. Thiết lập max_keep_alive được sử dụng để kiểm tra an toàn với các thiết lập keep_alive khác (ví dụ: default_keep_alive) và các thiết lập duy trì trạng thái hoạt động ở cấp độ yêu cầu (cho ngữ cảnh cuộn và PIT). Nếu một yêu cầu vượt quá giá trị max_keep_alive trong cả hai trường hợp, thao tác sẽ thất bại. Mặc định là 24h.
- search.low_level_cancellation (Động, Boolean): Cho phép hủy yêu cầu cấp thấp. Cơ chế timeout cổ điển của Lucene chỉ kiểm tra thời gian trong khi thu thập kết quả tìm kiếm. Tuy nhiên, một truy vấn tốn kém, chẳng hạn như ký tự đại diện hoặc tiền tố, có thể mất nhiều thời gian để mở rộng trước khi bắt đầu thu thập kết quả. Trong trường hợp này, truy vấn có thể chạy trong một khoảng thời gian dài hơn giá trị timeout. Cơ chế hủy cấp thấp giải quyết tình huống này bằng cách timeout không chỉ trong khi thu thập kết quả tìm kiếm mà còn trong giai đoạn mở rộng truy vấn hoặc trước khi thực hiện bất kỳ thao tác nào của Lucene. Mặc định là true.
- search.max_open_scroll_context (Động, số nguyên): Thiết lập cấp nút chỉ định số lượng ngữ cảnh cuộn mở tối đa cho nút. Mặc định là 500.
- search.request_stats_enabled (Động, Boolean): Bật tính năng thu thập thống kê thời gian pha ở cấp độ nút từ góc nhìn của nút điều phối. Thống kê ở cấp độ yêu cầu theo dõi thời gian (tổng cộng) các yêu cầu tìm kiếm trong từng giai đoạn tìm kiếm khác nhau. Bạn có thể truy xuất các bộ đếm này bằng API Thống kê Nút. Mặc định là false
- search.highlight.term_vector_multi_value (Tĩnh, Boolean): Chỉ định làm nổi bật các đoạn mã trên các giá trị của một trường đa giá trị. Mặc định là đúng
- search.max_aggregation_rewrite_filters (Động, số nguyên): Xác định số lượng bộ lọc ghi đè tối đa được phép trong quá trình tổng hợp. Đặt giá trị này thành 0 để tắt tính năng tối ưu hóa ghi đè bộ lọc cho các quá trình tổng hợp. Đây là tính năng thử nghiệm và có thể thay đổi hoặc bị loại bỏ trong các phiên bản tương lai.
- search.dynamic_pruning.cardinality_aggregation.max_allowed_cardinality (Động, số nguyên): Xác định ngưỡng áp dụng cắt tỉa động trong tổng hợp số lượng. Nếu số lượng của một trường vượt quá ngưỡng này, quá trình tổng hợp sẽ trở về phương thức mặc định. Đây là tính năng thử nghiệm và có thể thay đổi hoặc bị loại bỏ trong các phiên bản sau.
- search.keyword_index_or_doc_values_enabled (Động, Boolean): Xác định xem có nên sử dụng giá trị index hay doc khi chạy truy vấn multi_term trên các trường từ khóa hay không. Giá trị mặc định là false
Scripting settings
BlackHole hỗ trợ các cài đặt tập lệnh sau:- script.max_size_in_bytes (Động, đơn vị byte): Kiểm soát kích thước byte tối đa được phép của tập lệnh. Thiết lập này giúp ngăn ngừa các vấn đề về bộ nhớ bằng cách từ chối các tập lệnh lớn hơn giới hạn này. Mặc định là 65536 (64 KB).
- script.cache.max_size (Tĩnh, số nguyên): Đặt số lượng tối đa các tập lệnh đã biên dịch có thể được lưu trong bộ nhớ đệm. Bộ nhớ đệm tập lệnh lưu trữ các tập lệnh đã biên dịch để tránh chi phí biên dịch lại cho các tập lệnh thường xuyên được sử dụng. Khi bộ nhớ đệm đạt đến giới hạn này, các tập lệnh ít được sử dụng gần đây nhất sẽ bị loại bỏ để nhường chỗ cho các tập lệnh mới. Tăng giá trị này có thể cải thiện hiệu suất cho các ứng dụng sử dụng nhiều tập lệnh khác nhau nhưng sẽ tiêu tốn nhiều bộ nhớ hơn. Mặc định là 100.
Point in Time settings
Để biết thông tin về cài đặt PIT, hãy xem Cài đặt PIT. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem phần Cấu hình BlackHole.Availability and recovery settings
Cài đặt khả dụng và phục hồi bao gồm các cài đặt sau:- General recovery settings
- Snapshots
- Cluster manager task throttling
- Remote-backed storage
- Search backpressure
- Shard indexing backpressure
- Segment replication
- Cross-cluster replication
General recovery settings
- BlackHole hỗ trợ các thiết lập phục hồi chung sau: indices.recovery.chunk_size (Động, đơn vị byte): Kiểm soát kích thước khối được sử dụng khi truyền dữ liệu trong quá trình khôi phục chỉ mục. Thiết lập này ảnh hưởng đến lượng dữ liệu được truyền trong mỗi yêu cầu mạng trong quá trình khôi phục phân đoạn. Kích thước khối lớn hơn có thể cải thiện tốc độ khôi phục nhưng có thể làm tăng mức sử dụng bộ nhớ. Mặc định là 512kb.
- indices.recovery.recovery_activity_timeout (Động, đơn vị thời gian): Thiết lập thời gian chờ cho từng hoạt động khôi phục trong quá trình khôi phục phân mảnh. Nếu một hoạt động khôi phục (chẳng hạn như chuyển một khối tệp) mất nhiều thời gian hơn thời gian chờ này, hoạt động khôi phục được coi là thất bại và sẽ được thử lại. Mặc định là 30 giây.
Snapshot settings
BlackHole hỗ trợ các cài đặt chụp nhanh sau:Security-related snapshot settings
Để biết cài đặt ảnh chụp nhanh liên quan đến bảo mật, hãy xem Security settings.Shared file system
Để biết thông tin về cách sử dụng hệ thống tệp chia sẻ, hãy xem Hệ thống tệp chia sẻ.Amazon S3 settings
Để biết thông tin về cài đặt kho lưu trữ Amazon S3, hãy xem Amazon S3.Cluster manager task throttling settings
Để biết thông tin về cài đặt giới hạn tác vụ của trình quản lý cụm, hãy xem mục Cài đặt giới hạn giới hạn.Remote-backed storage settings
BlackHole hỗ trợ các thiết lập lưu trữ được sao lưu từ xa ở cấp cụm sau:Search backpressure settings
Áp lực tìm kiếm ngược là một cơ chế được sử dụng để xác định các yêu cầu tìm kiếm tốn nhiều tài nguyên và hủy chúng khi nút đang bị ép buộc. Để biết thêm thông tin, hãy xem Cài đặt áp lực tìm kiếm ngược.Shard indexing backpressure settings
Áp lực ngược lập chỉ mục phân mảnh là một cơ chế từ chối thông minh ở cấp độ từng phân mảnh, tự động từ chối các yêu cầu lập chỉ mục khi cụm của bạn đang quá tải. Để biết thêm thông tin, hãy xem cài đặt áp lực ngược lập chỉ mục phân mảnh.Segment replication settings
Để biết thông tin về cài đặt sao chép phân đoạn, hãy xem Sao chép phân đoạn. Để biết thông tin về cài đặt áp suất ngược sao chép phân đoạn, hãy xem Áp suất ngược sao chép phân đoạn.Cross-cluster replication settings
Để biết thông tin về cài đặt sao chép liên cụm, hãy xem Cài đặt sao chép.Thread pool settings
BlackHole sử dụng nhiều nhóm luồng để quản lý mức tiêu thụ bộ nhớ và xử lý hiệu quả các loại thao tác khác nhau. Nhóm luồng có thể được cấu hình để tối ưu hóa hiệu suất dựa trên các mẫu khối lượng công việc của cụm. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem Cấu hình BlackHoleNode processor settings
BlackHole tự động phát hiện số lượng bộ xử lý khả dụng và cấu hình nhóm luồng phù hợp. Bạn có thể ghi đè tính năng phát hiện này:- node.processors (Tĩnh, số nguyên): Thiết lập rõ ràng số lượng bộ xử lý mà BlackHole nên sử dụng để tính toán kích thước nhóm luồng. Điều này hữu ích khi chạy nhiều phiên bản BlackHole trên cùng một máy chủ hoặc khi việc tự động phát hiện bộ xử lý không chính xác. Khi được thiết lập, kích thước nhóm luồng được tính toán dựa trên giá trị này thay vì số lượng bộ xử lý được phát hiện. Mặc định là số lượng bộ xử lý được tự động phát hiện.
Thread pool types
BlackHole hỗ trợ các loại nhóm luồng sau. Mỗi loại hỗ trợ các tham số khác nhau.Fixed thread pools
Nhóm luồng cố định duy trì số lượng luồng không đổi và sử dụng hàng đợi cho các yêu cầu đang chờ xử lý. BlackHole hỗ trợ các nhóm luồng cố định sau:- get: Dành cho các hoạt động truy xuất tài liệu (kiểu cố định)
- analyze: For Analyze API requests (fixed type)
- write: Dành cho việc lập chỉ mục, xóa, cập nhật và các hoạt động hàng loạt (kiểu cố định)
- force_merge: Dành cho các hoạt động hợp nhất bắt buộc (kiểu cố định)
thread_pool.<tên_pool>.size(Tĩnh, số nguyên): Thiết lập số luồng trong nhóm luồng. Số lượng luồng không đổi bất kể khối lượng công việc.thread_pool.<tên_pool>.queue_size(Tĩnh, số nguyên): Kiểm soát kích thước hàng đợi cho các yêu cầu đang chờ xử lý khi tất cả các luồng đều bận. Đặt thành -1 cho các hàng đợi không giới hạn. Khi hàng đợi đầy, các yêu cầu mới sẽ bị từ chối. Giá trị mặc định thay đổi tùy theo loại nhóm luồng.
Scaling thread pools
Nhóm luồng mở rộng sẽ điều chỉnh số lượng luồng một cách linh hoạt dựa trên khối lượng công việc. BlackHole hỗ trợ các nhóm luồng mở rộng sau:- generic : Dành cho các hoạt động nền chung như khám phá nút (kiểu mở rộng)
- snapshot: Đối với các hoạt động chụp nhanh và khôi phục (loại mở rộng)
- warmer: Đối với các hoạt động làm ấm chỉ số (loại mở rộng)
- refresh: Đối với các hoạt động làm mới chỉ mục (kiểu mở rộng)
- flush: Đối với các hoạt động flush và fsync (scaling type)
- management: Đối với hoạt động quản lý cụm (scaling type)
- fetch_shard_started: Đối với các hoạt động trạng thái phân mảnh (scaling type)
- fetch_shard_store: Đối với hoạt động lưu trữ phân mảnh (scaling type)
thread_pool.<pool_name>.core(Static, integer): Đặt số lượng luồng tối thiểu cần giữ trong nhóm, ngay cả khi không hoạt động.thread_pool.<pool_name>.max(Static, integer): Đặt số lượng luồng tối đa có thể được tạo trong nhóm.thread_pool.<pool_name>.keep_alive(Static, time unit): Xác định thời gian luồng nhàn rỗi được giữ trong nhóm trước khi bị chấm dứt. Các luồng có kích thước lớn hơn lõi sẽ bị chấm dứt sau khoảng thời gian không hoạt động này.
Example configurations
Để cấu hình nhóm luồng cố định, hãy cập nhật tệp cấu hình như sau:Best practices
- Monitor thread pool usage: Sử dụng API Nodes Stats để giám sát số liệu nhóm luồng
- Avoid over-provisioning: Đặt kích thước nhóm luồng quá cao có thể dẫn đến áp lực bộ nhớ và chi phí chuyển đổi ngữ cảnh.
- Consider workload patterns: Điều chỉnh kích thước nhóm luồng dựa trên mẫu đọc/ghi cụ thể của cụm của bạn.
- Test configuration changes: Luôn luôn kiểm tra các sửa đổi nhóm luồng trong môi trường không phải môi trường sản xuất trước.
Circuit breaker settings
Bộ ngắt mạch ngăn BlackHole gây ra lỗi Java OutOfMemoryError. Bộ ngắt mạch cha chỉ định tổng dung lượng bộ nhớ khả dụng cho tất cả các bộ ngắt mạch con. Các bộ ngắt mạch con chỉ định tổng dung lượng bộ nhớ khả dụng cho chính chúng. Để tìm hiểu thêm về cài đặt tĩnh và động, hãy xem phần Cấu hình BlackHole.Parent circuit breaker settings
BlackHole hỗ trợ các cài đặt bộ ngắt mạch chính sau:- indices.breaker.total.use_real_memory (Tĩnh, Boolean): Nếu đúng, bộ ngắt mạch chính sẽ xem xét mức sử dụng bộ nhớ thực tế. Nếu không, bộ ngắt mạch chính sẽ xem xét lượng bộ nhớ được các bộ ngắt mạch con dành riêng. Mặc định là đúng.
- indices.breaker.total.limit (Động, phần trăm): Chỉ định giới hạn bộ nhớ ban đầu cho bộ ngắt mạch cha. Nếu indices.breaker.total.use_real_memory là true, mặc định là 95% heap JVM. Nếu indices.breaker.total.use_real_memory là false, mặc định là 70% heap JVM.
Field data circuit breaker settings
Bộ ngắt mạch dữ liệu trường giới hạn bộ nhớ heap cần thiết để tải một trường vào bộ đệm dữ liệu trường. BlackHole hỗ trợ các cài đặt ngắt mạch dữ liệu trường sau:- indices.breaker.fielddata.limit (Động, phần trăm): Chỉ định giới hạn bộ nhớ cho bộ ngắt mạch dữ liệu trường. Mặc định là 40% heap JVM.
- indices.breaker.fielddata.overhead (Động, gấp đôi): Hằng số dùng để nhân các ước tính dữ liệu trường để xác định ước tính cuối cùng. Mặc định là 1,03.
Request circuit breaker settings
Bộ ngắt mạch yêu cầu giới hạn bộ nhớ cần thiết để xây dựng các cấu trúc dữ liệu cần thiết cho một yêu cầu (ví dụ: khi tính toán tổng hợp). BlackHole hỗ trợ các thiết lập ngắt mạch yêu cầu sau:- indices.breaker.request.limit (Động, phần trăm): Chỉ định giới hạn bộ nhớ cho bộ ngắt mạch yêu cầu. Mặc định là 60% heap JVM.
- indices.breaker.request.overhead (Động, gấp đôi): Hằng số dùng để nhân các ước tính yêu cầu để xác định ước tính cuối cùng. Mặc định là 1.
In-flight request circuit breaker settings
Bộ ngắt mạch yêu cầu đang chạy sẽ giới hạn mức sử dụng bộ nhớ cho tất cả các yêu cầu đang chạy đến ở cấp độ vận chuyển và HTTP. Mức sử dụng bộ nhớ cho một yêu cầu dựa trên độ dài nội dung của yêu cầu và bao gồm bộ nhớ cần thiết cho yêu cầu thô và một đối tượng có cấu trúc đại diện cho yêu cầu. BlackHole hỗ trợ các thiết lập ngắt mạch yêu cầu đang chạy sau:- network.breaker.inflight_requests.limit (Động, phần trăm): Chỉ định giới hạn bộ nhớ cho bộ ngắt mạch yêu cầu đang bay. Mặc định là 100% vùng nhớ heap JVM (do đó, giới hạn sử dụng bộ nhớ cho một yêu cầu đang bay được xác định bởi giới hạn bộ nhớ của bộ ngắt mạch chính).
- network.breaker.inflight_requests.overhead (Động, gấp đôi): Hằng số dùng để nhân các ước tính yêu cầu đang bay để xác định ước tính cuối cùng. Mặc định là 2.
Script compilation circuit breaker settings
Bộ ngắt mạch biên dịch tập lệnh giới hạn số lần biên dịch tập lệnh nội tuyến trong một khoảng thời gian. BlackHole hỗ trợ cài đặt bộ ngắt mạch biên dịch tập lệnh sau: script.max_compilations_rate (Động, tốc độ): Số lượng tối đa các tập lệnh động duy nhất được biên dịch trong một khoảng thời gian cho một ngữ cảnh nhất định. Mặc định là 150 tập lệnh cứ sau 5 phút (150/5 phút).Regular expression circuit breaker settings
Bộ ngắt mạch biểu thức chính quy cho phép bật hoặc tắt biểu thức chính quy và giới hạn độ phức tạp của chúng. BlackHole hỗ trợ các thiết lập ngắt mạch biểu thức chính quy sau:Plugin settings
Các thiết lập sau đây liên quan đến plugin BlackHoleAlerting plugin settings
Để biết thông tin về cài đặt cảnh báo, hãy xem Cài đặt cảnh báo.Anomaly Detection plugin settings
Để biết thông tin về cài đặt phát hiện bất thường, hãy xem Cài đặt phát hiện bất thường.Asynchronous Search plugin settings
Để biết thông tin về cài đặt tìm kiếm không đồng bộ, hãy xem Cài đặt tìm kiếm không đồng bộ.Cross-Cluster Replication plugin settings
Để biết thông tin về cài đặt sao chép liên cụm, hãy xem Cài đặt sao chépFlow Framework plugin settings
Để biết thông tin về cài đặt quy trình làm việc tự động, hãy xem Cài đặt quy trình làm việc.Geospatial plugin settings
Để biết thông tin về cài đặt bộ xử lý IP2Geo của plugin Geospatial, hãy xem Cài đặt cụm.Index Management plugin settings
Để biết thông tin về cài đặt quản lý trạng thái chỉ mục (ISM), hãy xem cài đặt ISM.Index rollup settings
Để biết thông tin về cài đặt tổng hợp chỉ mục, hãy xem Cài đặt tổng hợp chỉ mục.Job Scheduler plugin settings
Để biết thông tin về cài đặt plugin Job Scheduler, hãy xem Cài đặt cụm Job Scheduler.k-NN plugin settings
Để biết thông tin về cài đặt k-NN, hãy xem cài đặt k-NN.ML Commons plugin settings
Để biết thông tin về cài đặt máy học, hãy xem cài đặt cụm ML CommonsNeural Search plugin settings
Để biết thông tin về cài đặt plugin Neural Search, hãy xem Cài đặt plugin Neural Search.Notifications plugin settings
Plugin Thông báo hỗ trợ các cài đặt sau. Tất cả cài đặt trong danh sách này đều là cài đặt động:Query Insights plugin settings
Để biết thông tin về cài đặt plugin Query Insights, hãy xem tính năng và cài đặt Query Insights.Security plugin settings
Để biết thông tin về cài đặt plugin Bảo mật, hãy xem Cài đặt bảo mật.Security Analytics plugin settings
Để biết thông tin về cài đặt phân tích bảo mật, hãy xem Cài đặt phân tích bảo mật.SQL plugin settings
Để biết thông tin về các cài đặt liên quan đến SQL và PPL, hãy xem Cài đặt SQL.Workload Management plugin settings
Để biết thông tin về cài đặt quản lý khối lượng công việc, hãy xem Cài đặt quản lý khối lượng công việc.General plugin settings
BlackHole hỗ trợ các thiết lập cấu hình plugin chung sau:Experimental feature flags
Các bản phát hành BlackHole có thể chứa các tính năng thử nghiệm mà bạn có thể bật hoặc tắt tùy ý. Có một số phương pháp để bật cờ tính năng, tùy thuộc vào loại cài đặt.Enable in blackhole.yml
Nếu bạn đang chạy cụm BlackHole và muốn bật cờ tính năng trong tệp cấu hình, hãy thêm dòng sau vàoblackhole.yml:
Enable on Docker containers
Nếu bạn đang chạy Docker, hãy thêm dòng sau vàodocker-compose.yml trong phần môi trường blackhole-node:
Kích hoạt trên cài đặt tarball
Để bật cờ tính năng trên bản cài đặt tarball, hãy cung cấp tham số JVM mới trongconfig/jvm.options hoặc BLACKHOLE_JAVA_OPTS.
Option 1: Modify jvm.options
Thêm các dòng sau vàoconfig/jvm.options trước khi bắt đầu quá trình blackhole để kích hoạt tính năng và sự phụ thuộc của nó:
Option 2: Enable with an environment variable
Thay vì trực tiếp sửa đổiconfig/jvm.options, bạn có thể định nghĩa các thuộc tính bằng cách sử dụng biến môi trường. Việc này có thể được thực hiện bằng một lệnh duy nhất khi bạn khởi động BlackHole hoặc bằng cách định nghĩa biến với export.
Để thêm cờ tính năng trực tiếp khi khởi động BlackHole, hãy chạy lệnh sau:
Enable for BlackHole development
Để bật cờ tính năng cho quá trình phát triển, bạn phải thêm các thuộc tính chính xác vàorun.gradle trước khi xây dựng BlackHole. Xem Hướng dẫn dành cho Nhà phát triển để biết thông tin về cách sử dụng Gradle để xây dựng BlackHole.
Thêm các thuộc tính sau vào run.gradle để kích hoạt tính năng này:
Logs
Nhật ký BlackHole bao gồm thông tin hữu ích để giám sát hoạt động của cụm và khắc phục sự cố. Vị trí của nhật ký sẽ khác nhau tùy theo loại cài đặt:- Trên Docker, BlackHole ghi hầu hết nhật ký vào console và lưu trữ phần còn lại trong
blackhole/logs/. Bản cài đặt tarball cũng sử dụngblackhole/logs/. - Trên hầu hết các bản cài đặt Linux, BlackHole ghi nhật ký vào
/var/log/blackhole/.
.log (plain text) và .json. Quyền truy cập cho nhật ký BlackHole mặc định là -rw-r--r--, nghĩa là bất kỳ tài khoản người dùng nào trên nút đều có thể đọc chúng. Bạn có thể thay đổi hành vi này cho từng loại nhật ký trong log4j2.properties bằng tùy chọn filePermissions. Ví dụ, bạn có thể thêm appender.rolling.filePermissions = rw-r----- để thay đổi quyền cho JSON server log.
Application logs
Đối với nhật ký ứng dụng, BlackHole sử dụng Apache Log4j 2 và các mức nhật ký tích hợp sẵn (từ nhẹ đến nặng). Bảng sau đây mô tả các thiết lập ghi nhật ký.| Cài đặt | Kiểu dữ liệu | Mô tả |
|---|---|---|
logger.org.blackhole.discovery | Chuỗi | Các logger chấp nhận các mức nhật ký tích hợp sẵn của Log4j: OFF, FATAL, ERROR, WARN, INFO, DEBUG và TRACE. Mặc định là INFO. |
logger.level), bạn thay đổi mức nhật ký cho từng mô-đun BlackHole:
o.o.i.r), mà là trong mã nguồn BlackHole.
Sau khi thay đổi mẫu này, BlackHole sẽ phát ra các bản ghi chi tiết hơn nhiều trong quá trình lập chỉ mục lại:
blackhole.yml:
blackhole.yml là hợp lý nhất nếu bạn muốn sử dụng lại cấu hình ghi nhật ký của mình trên nhiều cụm hoặc gỡ lỗi các sự cố khởi động bằng một nút duy nhất.
2. Modify log4j2.properties:
log4j2.properties mặc định trong thư mục cấu hình, bạn có thể thấy một số biến cụ thể của BlackHole:
${sys:blackhole.logs.base_path}là thư mục chứa nhật ký (ví dụ:/var/log/blackhole/).${sys:blackhole.logs.cluster_name}là tên của cụm.${sys:blackhole.logs.node_name}là tên của nút.[%node_name]là tên của nút.
Common core logging categories
Bảng sau đây liệt kê các danh mục ghi nhật ký cốt lõi phổ biến.| Tiền tố khóa Logger | Mô tả |
|---|---|
| org.blackhole.action | Các hành động vận chuyển, như index, bulk, get hoặc các hành động cụm. Hữu ích khi theo dõi thực thi yêu cầu trên các nút. |
| org.blackhole.cluster | Xuất bản trạng thái cụm, định tuyến và cập nhật siêu dữ liệu. Bật cho các vấn đề về hình thành cụm, định tuyến và phân bổ. |
| org.blackhole.discovery | Khám phá nút và điều phối cụm. Hữu ích trong quá trình hình thành cụm hoặc kiểm tra phân vùng mạng. Các gói con bao gồm khám phá đám mây. |
| org.blackhole.gateway | Gateway, ClusterState, Phục hồi và Phân bổ. Hữu ích cho việc khởi động lại nút, phân bổ phân đoạn và phục hồi phân đoạn từ lưu trữ trên đĩa và từ xa. |
| org.blackhole.http | Xử lý yêu cầu ở lớp HTTP cấp thấp. Sử dụng cho các vấn đề về giao tiếp và cài đặt HTTP. |
| org.blackhole.index | Nội bộ theo chỉ mục, như engine, translog hoặc các hoạt động phân đoạn. Sử dụng để gỡ lỗi hành vi phân đoạn/engine. |
| org.blackhole.indices | Các dịch vụ liên chỉ mục, như phục hồi, lưu trữ hoặc dịch vụ trạng thái cụm. Bật trong quá trình phục hồi phân đoạn và phân tích áp lực lập chỉ mục. |
| org.blackhole.ingest | Đường ống và bộ xử lý ingest. Bật khi gỡ lỗi thực thi đường ống. |
| org.blackhole.node | Vòng đời và khởi động nút. Hữu ích để xử lý các vấn đề khởi động. |
| org.blackhole.repositories | Tương tác kho lưu trữ snapshot/restore, như với Amazon Simple Storage Service (Amazon S3), Amazon Elastic File System (Amazon EFS) và các dịch vụ khác. Sử dụng cho lỗi kho lưu trữ và điều phối snapshot. |
| org.blackhole.rest | Trình xử lý REST và định tuyến đến các hành động. Hữu ích cho chi tiết xử lý REST API. |
| org.blackhole.script | Engine tập lệnh. Sử dụng để gỡ lỗi biên dịch và thực thi tập lệnh. |
| org.blackhole.search | Giai đoạn tìm kiếm, như truy vấn, tìm nạp hoặc viết lại. Bật để gỡ lỗi thực thi truy vấn. |
| org.blackhole.snapshots | Điều phối snapshot và restore. Sử dụng khi chẩn đoán vòng đời snapshot. |
| org.blackhole.threadpool | Thực thi nhóm luồng. Hữu ích để hiểu xếp hàng và bão hòa nhóm. |
| org.blackhole.transport | Lớp TCP vận chuyển giữa các nút. Sử dụng cho các vấn đề giao tiếp giữa các nút. |
| org.blackhole.deprecation | Cảnh báo lỗi thời. Hữu ích trong quá trình nâng cấp để tìm các API và cài đặt lỗi thời. |
Plugin logger categories
Bảng sau đây liệt kê các loại plugin ghi nhật ký phổ biến.| Plugin | Ví dụ tiền tố Logger | Mô tả |
|---|---|---|
| Security | org.blackhole.security | Sử dụng để gỡ lỗi xác thực, ủy quyền và TLS trong plugin Security. |
| k-NN | org.blackhole.knn | Sử dụng để gỡ lỗi xây dựng chỉ mục k-NN, tìm kiếm và quản lý bộ nhớ. |
| ML Commons | org.blackhole.ml | Sử dụng cho đăng ký mô hình, suy luận và trình chạy tác vụ. |
| Alerting | org.blackhole.alerting | Sử dụng để giám sát thực thi và thông báo. |
| Index Management | org.blackhole.indexmanagement | Sử dụng cho các chính sách Index State Management (ISM), rollups và transforms. |
| Discovery – Amazon Elastic Compute Cloud (Amazon EC2) | org.blackhole.discovery.ec2 | Thông tin khám phá đám mây. |
Search request slow logs
Phiên bản mới 2.12 của BlackHole cung cấp nhật ký chậm theo yêu cầu cho tìm kiếm. Các nhật ký này dựa trên ngưỡng để xác định điều gì được coi là “chậm”. Tất cả các yêu cầu vượt quá ngưỡng đều được ghi lại. Nhật ký chậm yêu cầu tìm kiếm được bật động thông qua API Cài đặt Cụm. Không giống như nhật ký chậm phân đoạn, ngưỡng nhật ký chậm yêu cầu tìm kiếm được cấu hình dựa trên tổng thời gian yêu cầu. Theo mặc định, nhật ký bị tắt (tất cả ngưỡng được đặt thành-1).
blackhole_index_search_slowlog.log có thể trông như sau:
Shard slow logs
BlackHole có hai nhật ký chậm phân đoạn, giúp bạn xác định các vấn đề về hiệu suất: nhật ký chậm tìm kiếm và nhật ký chậm lập chỉ mục. Các nhật ký này dựa vào ngưỡng để xác định điều gì được coi là tìm kiếm “chậm” hoặc thao tác lập chỉ mục “chậm”. Ví dụ: bạn có thể quyết định một truy vấn là chậm nếu mất hơn 15 giây để hoàn tất. Không giống như nhật ký ứng dụng, vốn được cấu hình cho các mô-đun, bạn cấu hình nhật ký chậm cho các chỉ mục. Theo mặc định, cả hai nhật ký đều bị tắt (tất cả các ngưỡng được đặt thành -1). Không giống như yêu cầu tìm kiếm nhật ký chậm, ngưỡng nhật ký chậm của phân đoạn được cấu hình cho từng phân đoạn mất thời gian.- reformat chỉ định liệu có ghi nhật ký trường _source của tài liệu dưới dạng một dòng duy nhất (true) hay cho phép nó trải rộng trên nhiều dòng (false).
- source là số ký tự của trường _source của tài liệu để ghi nhật ký.
- level là mức nhật ký tối thiểu cần bao gồm.
Task logs
BlackHole có thể ghi lại thời gian CPU và mức sử dụng bộ nhớ cho N tác vụ tìm kiếm ngốn bộ nhớ nhiều nhất khi các tác vụ tiêu thụ tài nguyên được bật. Theo mặc định, các tác vụ tiêu thụ tài nguyên sẽ ghi lại 10 tác vụ tìm kiếm hàng đầu với khoảng thời gian 60 giây. Các giá trị này có thể được cấu hình trongblackhole.yml.
Ghi nhật ký tác vụ được bật động thông qua API Cài đặt Cụm:
Việc kích hoạt người dùng tài nguyên tác vụ có thể tác động đến độ trễ tìm
kiếm.
logs/blackhole_task_detailslog.json và logs/blackhole_task_detailslog.log.
Để cấu hình khoảng thời gian ghi nhật ký và số lượng tác vụ tìm kiếm được ghi lại, hãy thêm các dòng sau vào blackhole.yml:
