Apache Solr hay Solr là một nền tảng tìm kiếm cấp doanh nghiệp dựa trên thư viện Apache Lucene. SOlr là viết tắt của Searching On Lucene with Replication và là một nền tảng tìm kiếm mã nguồn mở miễn phí được viết bằng Java. Solr là một trong những nền tảng tìm kiếm phổ biến nhất trong ngành và cung cấp tính khả dụng cao thông qua sao chép và tự động chuyển đổi dự phòng và phục hồi.
Solr là một nền tảng tìm kiếm có khả năng mở rộng cao và đáng tin cậy để xây dựng các ứng dụng doanh nghiệp và cung cấp hiệu suất cao. Nó hỗ trợ lập chỉ mục phân tán và cung cấp khả năng chịu lỗi. Một số công ty internet lớn như Adobe, Netflix, Instagram, Magento và Bloomberg sử dụng Apache Solr làm nền tảng công cụ tìm kiếm cho các sản phẩm của họ.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Apache Solr trên máy chủ AlmaLinux 9. Bạn cũng sẽ thiết lập MaxHeapMemory cho Solr, đặt giới hạn và thiết lập xác thực cơ bản cho Solr.
Nhập lệnh dnf sau để cài đặt Java OpenJDK 11 vào máy chủ AlmaLinux của bạn. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22297%22%3E%3C/svg%3E
Sau khi Java OpenJDK được cài đặt, hãy chạy lệnh sau để xác minh phiên bản Java và đảm bảo cài đặt thành công.
Kết quả sau đây xác nhận rằng Java OpenJDK 11 đã được cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22128%22%3E%3C/svg%3E
Trong phần này, bạn sẽ cài đặt Apache Solr thông qua gói nhị phân chính thức trên máy chủ AlmaLinux của mình.
Trước khi tải xuống Apache Solr, hãy cài đặt các gói sau vào máy chủ AlmaLinux của bạn bằng lệnh bên dưới.
Tiếp theo, tải xuống gói nhị phân của Apache Solr 9.2.1 bằng lệnh curl sau lệnh.
Chạy lệnh sau để trích xuất tập lệnh cài đặt từ gói nhị phân Apache Solr 'solr-9.2.1.tgz'.
Bạn sẽ thấy tập lệnh cài đặt Apache Solr 'install_solr_service.sh' trong thư mục.
Hình ảnh
Tiếp theo, cài đặt Apache Solr bằng cách thực thi tập lệnh cài đặt 'install_solr_service.sh' như sau:
Khi cài đặt thành công, đầu ra bạn nhận được sẽ tương tự như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22541%22%3E%3C/svg%3E
Apache Solr đang chạy trên cổng mặc định 8983 với thư mục SOLR_HOME /var/solr/data. Và tại thời điểm này, nó đang chạy trên PID (Process ID) 12084.
Bây giờ, hãy chạy lệnh sau để dừng tiến trình Apache Solr hiện tại đang chạy trên PID 12084.
Sau đó, bạn có thể khởi động dịch vụ Apache Solr bằng lệnh bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22207%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh dịch vụ Apache Solr bằng cách sử dụng lệnh sau lệnh.
Nếu Apache Solr chạy, đầu ra tương tự sẽ được hiển thị trên thiết bị đầu cuối của bạn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22217%22%3E%3C/svg%3E
Trước tiên, hãy tăng giá trị shmmax và nr_hugepages bằng cách chạy lệnh sau.
Mở tệp '/etc/default/solr.in.sh' bằng trình chỉnh sửa nano lệnh.
Bỏ ghi chú tham số SOLAR_HEAP và thay đổi giá trị bằng bộ nhớ heap tối đa mà bạn muốn sử dụng. Hãy đảm bảo điều chỉnh giá trị bằng tổng bộ nhớ trên máy chủ của bạn.
Bỏ ghi chú tham số SOLR_JETTY_HOST và SOLR_HOST và thay đổi giá trị bằng địa chỉ IP nội bộ của bạn. Trong ví dụ này, Apache Solr sẽ chạy trên '192.168.10.15'.
Lưu các thay đổi và đóng trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để khởi động lại dịch vụ Apache Solr và áp dụng các thay đổi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để xác minh trạng thái Apache Solr. Nếu cấu hình Apache Solr thành công, bạn sẽ thấy bộ nhớ heap tối đa đã thay đổi. Trong ví dụ này, nó đã thay đổi thành 4 GB.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Mở tệp '/etc/security/limits.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Thêm cấu hình sau vào cuối dòng.
Lưu tệp và đóng trình chỉnh sửa.
Bây giờ, hãy chạy lệnh sau để kiểm tra số tiến trình tối đa và số tệp mở tối đa trên hệ thống của bạn. Nếu thành công, bạn sẽ thấy giá trị 65.000 trên cả hai cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22533%22%20height=%22450%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh sau để đảm bảo cấu hình ulimit là thành công.
Các thông báo cảnh báo ulimit biến mất, điều này xác nhận rằng cấu hình đã thành công.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22136%22%3E%3C/svg%3E
Tiếp theo, mở cổng 8983 trên tường lửa bằng lệnh bên dưới.
Sau đó, tải lại firewalld để áp dụng các thay đổi và xác minh danh sách các quy tắc firewalld.
Nếu cấu hình firewalld thành công, bạn sẽ thấy cổng 8983 trên danh sách các quy tắc firewalld.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22684%22%20height=%22302%22%3E%3C/svg%3E
Cuối cùng, hãy khởi chạy trình duyệt web của bạn và điều hướng đến địa chỉ IP máy chủ của bạn theo sau là cổng 8983 (ví dụ: http://192.168.10.15:8983/). Bạn sẽ nhận được bảng điều khiển Apache Solr như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22310%22%3E%3C/svg%3E
Tạo tệp mới security.json trong thư mục dữ liệu Apache Solr /var/solr/data/ bằng trình chỉnh sửa nano bên dưới.
Chèn cấu hình sau để tạo người dùng mới solr với mật khẩu SolrRocks.
Lưu và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.
Tiếp theo, chạy lệnh sau để khởi động lại Apache Solr và áp dụng thay đổi.
Lúc này, Apache Solr đã hoạt động với xác thực cơ bản được bật.
Bây giờ hãy quay lại trình duyệt web và làm mới bảng điều khiển quản trị Apache Solr. Hoặc bạn có thể chỉ cần truy cập ví dụ: http://192.168.10.15:8983/. Nếu thành công, bạn sẽ nhận được trang đăng nhập Apache Solr như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22275%22%3E%3C/svg%3E
Nhập tên người dùng Apache Solr solr và mật khẩu SolrRocks, sau đó nhấp vào Đăng nhập. Nếu xác thực thành công, bạn sẽ nhận được bảng điều khiển Apache Solr.
Ngoài ra, hãy nhấp vào menu Bảo mật và bạn sẽ thấy Apache Solr đang chạy với plugin basic_auth được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E
Đầu tiên, hãy mở tệp /etc/default/solr.in.sh bằng trình chỉnh sửa nano sau lệnh.
Bỏ chú thích tham số SOLR_AUTH_TYPE và SOLR_AUTHENTICATION_OPTS.
Lưu và thoát tệp khi bạn hoàn tất.
Bây giờ hãy chạy lệnh sau để khởi động lại Apache Solr và áp dụng thay đổi.
Tiếp theo, tạo một chỉ mục Solr mới có tên là test_core bằng lệnh sau.
Sau khi tạo, bạn sẽ nhận được đầu ra "Đã tạo lõi mới test1_core".
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22118%22%3E%3C/svg%3E
Quay lại bảng điều khiển quản trị web Apache, nhấp vào menu Core Admin và bạn sẽ thấy test1_core.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E
Solr là một nền tảng tìm kiếm có khả năng mở rộng cao và đáng tin cậy để xây dựng các ứng dụng doanh nghiệp và cung cấp hiệu suất cao. Nó hỗ trợ lập chỉ mục phân tán và cung cấp khả năng chịu lỗi. Một số công ty internet lớn như Adobe, Netflix, Instagram, Magento và Bloomberg sử dụng Apache Solr làm nền tảng công cụ tìm kiếm cho các sản phẩm của họ.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Apache Solr trên máy chủ AlmaLinux 9. Bạn cũng sẽ thiết lập MaxHeapMemory cho Solr, đặt giới hạn và thiết lập xác thực cơ bản cho Solr.
Điều kiện tiên quyết
Để hoàn thành hướng dẫn này, hãy đảm bảo rằng bạn có những điều sau:- Máy chủ AlmaLinux 9 có ít nhất 2/4 GB bộ nhớ. Ví dụ này sử dụng AlmaLinux với tên máy chủ almalinux9 và bộ nhớ 8 GB.
- Người dùng không phải root có quyền quản trị viên sudo/root.
Cài đặt Java OpenJDK 11
Tại thời điểm viết bài này, phiên bản mới nhất của Apache Solr là v9.x và yêu cầu Java JRE (Java Runtime Environment) ít nhất là v11 trở lên. Trong bước đầu tiên này, bạn sẽ cài đặt Java OpenJDK 11 thông qua kho lưu trữ appstream AlmaLinux.Nhập lệnh dnf sau để cài đặt Java OpenJDK 11 vào máy chủ AlmaLinux của bạn. Khi được nhắc, hãy nhập y để xác nhận và nhấn ENTER.
Mã:
sudo dnf install java-11-openjdk java-11-openjdk-devel
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22297%22%3E%3C/svg%3E
Sau khi Java OpenJDK được cài đặt, hãy chạy lệnh sau để xác minh phiên bản Java và đảm bảo cài đặt thành công.
Mã:
java --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22128%22%3E%3C/svg%3E
Cài đặt Apache Solr
Sau khi cài đặt Java OpenJDK 11, bạn sẽ khởi động Apache Cài đặt Solr. Nhiều gói nhị phân của Apache Solr có sẵn cho nhiều hệ điều hành, bao gồm Linux, macOS và Windows.Trong phần này, bạn sẽ cài đặt Apache Solr thông qua gói nhị phân chính thức trên máy chủ AlmaLinux của mình.
Trước khi tải xuống Apache Solr, hãy cài đặt các gói sau vào máy chủ AlmaLinux của bạn bằng lệnh bên dưới.
Mã:
sudo dnf install curl lsof chkconfig -y
Mã:
curl -qO https://downloads.apache.org/solr/solr/9.2.1/solr-9.2.1.tgz
Mã:
tar xzf solr-9.2.1.tgz solr-9.2.1/bin/install_solr_service.sh --strip-components=2
Hình ảnh
Tiếp theo, cài đặt Apache Solr bằng cách thực thi tập lệnh cài đặt 'install_solr_service.sh' như sau:
Mã:
sudo bash ./install_solr_service.sh solr-9.2.1.tgz
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22541%22%3E%3C/svg%3E
Apache Solr đang chạy trên cổng mặc định 8983 với thư mục SOLR_HOME /var/solr/data. Và tại thời điểm này, nó đang chạy trên PID (Process ID) 12084.
Bây giờ, hãy chạy lệnh sau để dừng tiến trình Apache Solr hiện tại đang chạy trên PID 12084.
Mã:
kill -9 12084
Mã:
sudo service solr start
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22207%22%3E%3C/svg%3E
Cuối cùng, hãy xác minh dịch vụ Apache Solr bằng cách sử dụng lệnh sau lệnh.
Mã:
sudo service solr status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22217%22%3E%3C/svg%3E
Tối ưu hóa cài đặt Apache Solr
Trong phần này, bạn sẽ thiết lập và tối ưu hóa cách Apache Solr nên chạy. Trong ví dụ này, Apache Solr sẽ chạy với bộ nhớ heap tối đa là 4 GB và địa chỉ IP nội bộ là '192.168.10.15'.Trước tiên, hãy tăng giá trị shmmax và nr_hugepages bằng cách chạy lệnh sau.
Mã:
sudo echo 4294967295 > /proc/sys/kernel/shmmax
sudo echo 1536 > /proc/sys/vm/nr_hugepages
Mã:
sudo nano /etc/default/solr.in.sh
Mã:
SOLR_HEAP="4g"
Mã:
SOLR_HOST="192.168.10.15"
SOLR_JETTY_HOST="192.168.10.15"
Tiếp theo, chạy lệnh sau để khởi động lại dịch vụ Apache Solr và áp dụng các thay đổi.
Mã:
sudo service solr restart
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để xác minh trạng thái Apache Solr. Nếu cấu hình Apache Solr thành công, bạn sẽ thấy bộ nhớ heap tối đa đã thay đổi. Trong ví dụ này, nó đã thay đổi thành 4 GB.
Mã:
sudo service solr status
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22220%22%3E%3C/svg%3E
Thiết lập Ulimits và Firewalld
Một cấu hình hệ thống quan trọng khác để chạy Apache Solr là cấu hình tối đa các quy trình và tối đa mở các tệp, yêu cầu ít nhất 65.000. Để đạt được điều này, bạn cần sửa đổi tệp '/etc/security/limits.conf'. Và sau đó, bạn cũng cần thiết lập firewalld và mở cổng 8983 cho Apache Solr.Mở tệp '/etc/security/limits.conf' bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/security/limits.conf
Mã:
solr soft nofile 65000
solr hard nofile 65000
solr soft nproc 65000
solr hard nproc 65000
Bây giờ, hãy chạy lệnh sau để kiểm tra số tiến trình tối đa và số tệp mở tối đa trên hệ thống của bạn. Nếu thành công, bạn sẽ thấy giá trị 65.000 trên cả hai cài đặt.
Mã:
sudo -H -u solr bash -c "ulimit -aH"
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22533%22%20height=%22450%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh sau để đảm bảo cấu hình ulimit là thành công.
Mã:
sudo service solr restart
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22136%22%3E%3C/svg%3E
Tiếp theo, mở cổng 8983 trên tường lửa bằng lệnh bên dưới.
Mã:
sudo firewall-cmd --add-port=8983/tcp --permanent
Mã:
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22684%22%20height=%22302%22%3E%3C/svg%3E
Cuối cùng, hãy khởi chạy trình duyệt web của bạn và điều hướng đến địa chỉ IP máy chủ của bạn theo sau là cổng 8983 (ví dụ: http://192.168.10.15:8983/). Bạn sẽ nhận được bảng điều khiển Apache Solr như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22310%22%3E%3C/svg%3E
Bảo mật Apache Solr bằng Xác thực cơ bản
Theo mặc định, Apache Solr được cài đặt mà không cần xác thực. Để bảo mật, bạn có thể sử dụng nhiều phương pháp như Xác thực cơ bản, Xác thực Kerberos, Xác thực JWT và Xác thực dựa trên quy tắc. Trong ví dụ này, bạn sẽ bảo mật Apache Solr thông qua xác thực cơ bản.Tạo tệp mới security.json trong thư mục dữ liệu Apache Solr /var/solr/data/ bằng trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /var/solr/data/security.json
Mã:
{
"authentication":{
"blockUnknown": true,
"class":"solr.BasicAuthPlugin",
"credentials":{"solr":"IV0EHq1OnNrj6gvRCwvFwTrZ1+z1oBbnQdiVC3otuq0= Ndd7LKvVBAaZIF0QAVi1ekCfAJXr1GGfLtRUXhgrF8c="},
"realm":"My Solr users",
"forwardCredentials": false
},
"authorization":{
"class":"solr.RuleBasedAuthorizationPlugin",
"permissions":[{"name":"all", "role":"admin"}],
"user-role":{"solr":"admin"}
}
}
Tiếp theo, chạy lệnh sau để khởi động lại Apache Solr và áp dụng thay đổi.
Mã:
sudo service solr restart
Bây giờ hãy quay lại trình duyệt web và làm mới bảng điều khiển quản trị Apache Solr. Hoặc bạn có thể chỉ cần truy cập ví dụ: http://192.168.10.15:8983/. Nếu thành công, bạn sẽ nhận được trang đăng nhập Apache Solr như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22275%22%3E%3C/svg%3E
Nhập tên người dùng Apache Solr solr và mật khẩu SolrRocks, sau đó nhấp vào Đăng nhập. Nếu xác thực thành công, bạn sẽ nhận được bảng điều khiển Apache Solr.
Ngoài ra, hãy nhấp vào menu Bảo mật và bạn sẽ thấy Apache Solr đang chạy với plugin basic_auth được bật.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22282%22%3E%3C/svg%3E
Tạo chỉ mục đầu tiên
Với mọi thứ đã được cấu hình, bạn đã sẵn sàng để tạo chỉ mục Solr đầu tiên.Đầu tiên, hãy mở tệp /etc/default/solr.in.sh bằng trình chỉnh sửa nano sau lệnh.
Mã:
sudo nano /etc/default/solr.in.sh
Mã:
SOLR_AUTH_TYPE="basic"
SOLR_AUTHENTICATION_OPTS="-Dbasicauth=solr:SolrRocks"
Bây giờ hãy chạy lệnh sau để khởi động lại Apache Solr và áp dụng thay đổi.
Mã:
sudo service restart solr
Mã:
su - solr -c "/opt/solr/bin/solr create -c test1_core -n Test1Core"
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22118%22%3E%3C/svg%3E
Quay lại bảng điều khiển quản trị web Apache, nhấp vào menu Core Admin và bạn sẽ thấy test1_core.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22244%22%3E%3C/svg%3E