Cài đặt Elasticsearch trên VPS Oracle Always Free

Dành cho bạn nào muốn tận dụng VPS Oracle Always Free để cài đặt Elasticsearch 😀

Tạo VPS Oracle bản miễn phí, Ubuntu 22.04

Ubuntu 22.04
Shape: VM.Standard.E2.1.MicroAlways Free-eligible
OCPU count: 1
Memory (GB): 1
Network bandwidth (Gbps): 0.48

Mở Ingress Rules tất cả các port từ quản trị của Oracle

Login với quyền root

  • Tạo swap thêm 4GB RAM
sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile && sudo nano /etc/fstab
  • Tiếp theo, bạn dán đoạn bên dưới vào cuối
/swapfile swap swap defaults 0 0
  • Mở các port trên Ubuntu (dành riêng cho VPS Oracle)
sudo apt remove iptables-persistent -y && sudo ufw disable && sudo iptables -F

Cài Đặt Elasticsearch

  • Cài đặt phiên bản 7.10.2
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - && echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list && sudo apt update && sudo apt install elasticsearch=7.10.2

Cấu hình Elasticsearch

  • Cho phép Elasticsearch kết nối ra ngoài
sudo nano /etc/elasticsearch/elasticsearch.yml
  • Thêm vào 3 dòng 
network.host: 0.0.0.0
http.port: 9200
discovery.type: single-node

Ctrl+O -> Enter -> Ctrl+X để save và exit

  • Kiểm tra các giá trị Xms Xmx
sudo nano /etc/elasticsearch/jvm.options

Nhìn xem có phải nó đang hiển thị mặc định 1G không

-Xms1G
-Xms1G

Nếu thấy các con số khác thì đổi về 1G

  • Tăng thời gian chờ
sudo nano /usr/lib/systemd/system/elasticsearch.service

Kéo xuống dưới, sẽ thấy TimeoutStartSec=75

Đổi sang con số cao hơn, có thể là TimeoutStartSec=750

  • Bật tự khởi động Elasticsearch mỗi khi máy chủ của bạn khởi động
sudo systemctl enable elasticsearch
  • Khởi động Elasticsearch (bước này rất lâu trên VPS Oracle)
sudo systemctl start elasticsearch
  • Kiểm tra tình trạng dịch vụ
sudo systemctl status elasticsearch

Nếu thấy active (running) là đang chạy

sudo systemctl status elasticsearch
● elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2023-06-08 06:16:47 UTC; 1min 40s ago
       Docs: https://www.elastic.co
   Main PID: 760 (java)
      Tasks: 46 (limit: 1074)
     Memory: 660.0M
        CPU: 2min 23.920s
     CGroup: /system.slice/elasticsearch.service
             ├─ 760 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.tt>
             └─1269 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller

Jun 08 06:14:36 osaka-elasticpress systemd[1]: Starting Elasticsearch...
Jun 08 06:16:47 osaka-elasticpress systemd[1]: Started Elasticsearch.

Lúc này có thể ấn “q” ở bàn phím để thoát ra

  • Kiểm tra trên trình duyệt, bằng cách gõ IP:9200

n1Xis1dlII

Tạm mọi thứ hoạt động khá ổn

Bước cuối cùng là reboot lại VPS, kiểm tra xem có tự chạy lại bình thường không

rNOtt9TVX8

Khởi động lại, có thể phải vài phút Elasticsearch mới chạy xong 😀 thấy RAM ảo và thực đang loanh quanh ~750MB như hình là đúng hé 😛

Cấu hình tưởng lửa

Thay IP 232.232.232.232 bằng IP WordPress của bạn

sudo ufw allow from 232.232.232.232 to any port 9200
sudo ufw allow ssh
sudo ufw enable
sudo ufw status

Cấu hình trên sẽ cho phép IP Wordpress của bạn kết nối tới server cài Elasticsearch qua cổng 9200

Ở server Elasticsearch mở lại port 22 để còn login vào SSH 😀

Việc tiếp theo thì cài đặt plugin ElasticPress trên WordPress thì như thông thường thôi

Về cơ bản nếu bạn dùng 1 con VPS có khoảng 2 GB RAM, thì cứ cài đặt mặc định vào là chạy rồi, VPS Oracle 1GB RAM và yếu quá nên mới phải làm phức tạp lên như trong bài 😀

Làm xong thấy dùng Algolia đơn giản lại hiệu quả hơn quá nhiều, nên vụ này gần như bỏ 😛 mỗi cái lỡ viết nên public luôn để sau có tư liệu xem lại 😛

Comment policy: We love comments and appreciate the time that readers spend to share ideas and give feedback.
Notes: However, those deemed to be spam or solely promotional will be deleted.

You can create a Gravatar account, add avatar, then use that email to comment here, your account will have a more beautiful Avatar, easier to recognize with other members.

Please use real emails, you can receive notifications when comments are replied