- Tham gia
- 28/02/2015
- Bài viết
- 17,142
- Được Like
- 12,745
ElasticSearch 7 on CentOS - Cài đặt ElasticSearch 7 trên CentOS
Xenforo Enhanced Search phụ thuộc vào ElasticSearch 2.0+. Cài đặt và định cấu hình ElasticSearch để nó hoạt động với XF có thể là một thách thức đối với một số người, vì vậy mình đã tổng hợp một số hướng dẫn nhanh để cài đặt nó trên CentOS 7. Với một số điều chỉnh, các hướng dẫn có thể sẽ hoạt động trên các phiên bản khác của CentOS/Fedora/Redhat và có nguồn gốc phân phối là tốt.
Tất cả các lệnh giả sử bạn là người dùng root hoặc bạn chạy các hướng dẫn với sudo.
Chúng ta sẽ cài đặt yum repo của ElasticSearch để bạn có thể dễ dàng nhận được các bản cập nhật/sửa lỗi với "yum update".
Đầu tiên cài đặt key ElasticSearch GPG:
Sau đó tạo tệp yum repo cho ElasticSearch 7:
Tiếp theo thực hiện cài đặt thực tế:
Theo mặc định trên CentOS 7, SELinux đang chạy ở chế độ thực thi. Vì vậy, chúng ta cần nói với SELinux rằng máy chủ web (Apache, Nginx hoặc thứ gì khác) nên được phép trao đổi với ElasticSearch qua TCP:
Bây giờ chúng ta sẽ thực hiện một số thay đổi cấu hình cho tệp config ElasticSearch. Chúng ta cần đặt tên cho cluster và đặt máy chủ, cổng TCP và bật cài đặt bảo mật để sau này có thể đặt mật khẩu.
Chúng ta cũng cần xem xét dung lượng heap (bộ nhớ) JVM mà chúng ta muốn phân bổ cho ElasticSearch. Theo kinh nghiệm của mình, bạn cần ít nhất 420m, nhưng có thể cần nhiều hơn nữa. Cẩn thận không cung cấp cho nó nhiều hơn bạn có, nếu không bạn có thể thấy rằng OOM killer sẽ giết chết quá trình ElasticSearch (hoặc một số quy trình khác, như quy trình MariaDB/MySQL của bạn). Dung lượng heap được kiểm soát trong tệp /etc/elasticsearch/jvm.options. Sử dụng vi, vim, nano hoặc bất kỳ trình soạn thảo văn bản đơn giản nào khác để mở tệp và tìm một số cài đặt gần đầu tệp giống như:
Thay đổi "1g" trong cả hai dòng thành kích thước mong muốn của bạn, ví dụ: "512m". Sau đó lưu và thoát.
Bây giờ hãy bắt đầu ElasticSearch - việc này có thể mất vài giây:
Cách tốt nhất là tạo mật khẩu cho ElasticSearch và có rất nhiều ví dụ về các trường hợp ElasticSearch đã bị hack vì họ không tạo mật khẩu. (Đây cũng là một ý tưởng tốt để có tường lửa và không mở cổng ElasticSearch với Internet!) Vì vậy, hãy tạo các mật khẩu đó ngay bây giờ - bạn sẽ được nhắc nhập mật khẩu cho 7 người dùng. Hãy chắc chắn để ghi lại những mật khẩu này! Bạn sẽ cần người dùng và mật khẩu 'elastic' khi bạn định cấu hình Enhanced Search trong adminCP XF.
Bước cài đặt cuối cùng là định cấu hình ElasticSearch để bắt đầu bất cứ khi nào thiết bị khởi động:
Bây giờ bạn có thể xác minh rằng ElasticSearch hoạt động và chạy như mong đợi với:
... sẽ nhắc nhập mật khẩu và sau đó cung cấp output tương tự như sau:
Chúc các bạn thành công.
Xenforo Enhanced Search phụ thuộc vào ElasticSearch 2.0+. Cài đặt và định cấu hình ElasticSearch để nó hoạt động với XF có thể là một thách thức đối với một số người, vì vậy mình đã tổng hợp một số hướng dẫn nhanh để cài đặt nó trên CentOS 7. Với một số điều chỉnh, các hướng dẫn có thể sẽ hoạt động trên các phiên bản khác của CentOS/Fedora/Redhat và có nguồn gốc phân phối là tốt.
Tất cả các lệnh giả sử bạn là người dùng root hoặc bạn chạy các hướng dẫn với sudo.
Chúng ta sẽ cài đặt yum repo của ElasticSearch để bạn có thể dễ dàng nhận được các bản cập nhật/sửa lỗi với "yum update".
Đầu tiên cài đặt key ElasticSearch GPG:
Mã:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Sau đó tạo tệp yum repo cho ElasticSearch 7:
Mã:
cat > /etc/yum.repos.d/elasticsearch.repo <<EOF
[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF
Tiếp theo thực hiện cài đặt thực tế:
Mã:
yum install elasticsearch
Theo mặc định trên CentOS 7, SELinux đang chạy ở chế độ thực thi. Vì vậy, chúng ta cần nói với SELinux rằng máy chủ web (Apache, Nginx hoặc thứ gì khác) nên được phép trao đổi với ElasticSearch qua TCP:
Mã:
setsebool httpd_can_network_connect on -P
Bây giờ chúng ta sẽ thực hiện một số thay đổi cấu hình cho tệp config ElasticSearch. Chúng ta cần đặt tên cho cluster và đặt máy chủ, cổng TCP và bật cài đặt bảo mật để sau này có thể đặt mật khẩu.
Mã:
cat > /etc/elasticsearch/elasticsearch.yml <<EOF
cluster.name: elasticxf
network.host: 127.0.0.1
http.port: 9200
xpack.security.enabled: true
EOF
Chúng ta cũng cần xem xét dung lượng heap (bộ nhớ) JVM mà chúng ta muốn phân bổ cho ElasticSearch. Theo kinh nghiệm của mình, bạn cần ít nhất 420m, nhưng có thể cần nhiều hơn nữa. Cẩn thận không cung cấp cho nó nhiều hơn bạn có, nếu không bạn có thể thấy rằng OOM killer sẽ giết chết quá trình ElasticSearch (hoặc một số quy trình khác, như quy trình MariaDB/MySQL của bạn). Dung lượng heap được kiểm soát trong tệp /etc/elasticsearch/jvm.options. Sử dụng vi, vim, nano hoặc bất kỳ trình soạn thảo văn bản đơn giản nào khác để mở tệp và tìm một số cài đặt gần đầu tệp giống như:
Mã:
-Xms1g
-Xmx1g
Thay đổi "1g" trong cả hai dòng thành kích thước mong muốn của bạn, ví dụ: "512m". Sau đó lưu và thoát.
Bây giờ hãy bắt đầu ElasticSearch - việc này có thể mất vài giây:
Mã:
systemctl start elasticsearch.service
Cách tốt nhất là tạo mật khẩu cho ElasticSearch và có rất nhiều ví dụ về các trường hợp ElasticSearch đã bị hack vì họ không tạo mật khẩu. (Đây cũng là một ý tưởng tốt để có tường lửa và không mở cổng ElasticSearch với Internet!) Vì vậy, hãy tạo các mật khẩu đó ngay bây giờ - bạn sẽ được nhắc nhập mật khẩu cho 7 người dùng. Hãy chắc chắn để ghi lại những mật khẩu này! Bạn sẽ cần người dùng và mật khẩu 'elastic' khi bạn định cấu hình Enhanced Search trong adminCP XF.
Mã:
/usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
Bước cài đặt cuối cùng là định cấu hình ElasticSearch để bắt đầu bất cứ khi nào thiết bị khởi động:
Mã:
systemctl daemon-reload
systemctl enable elasticsearch.service
Bây giờ bạn có thể xác minh rằng ElasticSearch hoạt động và chạy như mong đợi với:
Mã:
curl -u elastic -X GET "localhost:9200/?pretty"
... sẽ nhắc nhập mật khẩu và sau đó cung cấp output tương tự như sau:
Mã:
{
"name" : "localhost.localdomain",
"cluster_name" : "elasticxf",
"cluster_uuid" : "sSvt41vAS8i6Z1RRFI5V4w",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Chúc các bạn thành công.
Nguồn: xenforo.com
Bài viết liên quan
Bài viết mới