Elasticsearch คืออะไร และวิธีติดตั้งบน Cloud Server
Elasticsearch คือเอนจินค้นหาแบบกระจายศูนย์ที่ค้นข้อความจำนวนมหาศาลได้ในเสี้ยววินาที นิยมใช้ทำระบบค้นหาในเว็บ ระบบรวม Log และแดชบอร์ดวิเคราะห์ข้อมูล
- หมวดหมู่
- ฐานข้อมูล
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Elastic License 2.0 / SSPL
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Elasticsearch คืออะไร
ฐานข้อมูลทั่วไปค้นข้อความยาวได้ช้าเพราะต้องไล่อ่านทีละแถว Elasticsearch แก้ปัญหานี้ด้วยการสร้างดัชนีผกผัน คือจดไว้ว่าคำแต่ละคำปรากฏในเอกสารใดบ้าง จึงตอบผลการค้นหาได้เร็วมากแม้มีเอกสารหลายล้านชิ้น
นอกจากค้นหา Elasticsearch ยังใช้เก็บและวิเคราะห์ Log ร่วมกับ Kibana และตัวเก็บ Log อย่าง Logstash หรือ Filebeat ซึ่งรวมกันเป็นชุดเครื่องมือที่หลายองค์กรใช้ดูสุขภาพระบบ
สำหรับภาษาไทยที่ไม่มีการเว้นวรรคระหว่างคำ ต้องตั้งค่าตัวตัดคำให้เหมาะสม เช่น ใช้ตัววิเคราะห์ที่รองรับภาษาไทยโดยเฉพาะ ไม่เช่นนั้นผลการค้นหาจะไม่ตรงตามที่ผู้ใช้คาดหวัง
ความสามารถเด่นของ Elasticsearch
ค้นข้อความเต็มรูปแบบ
รองรับการค้นหาแบบใกล้เคียง การจัดอันดับความเกี่ยวข้อง และการเน้นคำที่ตรงกัน
กระจายศูนย์โดยธรรมชาติ
แบ่งดัชนีเป็นชาร์ดและกระจายไปหลายโหนด ขยายได้ตามปริมาณข้อมูล
วิเคราะห์ข้อมูลแบบรวมกลุ่ม
สรุปข้อมูลเป็นสถิติและแนวโน้มได้ในคำขอเดียว เหมาะกับแดชบอร์ด
ทำงานคู่กับ Kibana
สร้างกราฟและแดชบอร์ดจากข้อมูลที่จัดเก็บได้โดยไม่ต้องเขียนโค้ด
REST API
เชื่อมต่อจากทุกภาษาโปรแกรมผ่าน HTTP ได้ทันที
ใช้ Elasticsearch ทำอะไรได้บ้าง
- ระบบค้นหาสินค้าและบทความในเว็บที่มีข้อมูลจำนวนมาก
- ระบบรวม Log จากหลายเซิร์ฟเวอร์เพื่อตรวจสอบย้อนหลัง
- แดชบอร์ดวิเคราะห์พฤติกรรมผู้ใช้แบบเกือบเรียลไทม์
- ระบบค้นหาเอกสารภายในองค์กร
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นทดสอบหรือดัชนีขนาดเล็ก | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำระบบค้นหาของเว็บงานจริงหรือ Log ระดับกลาง | 4 vCPU | 16 GB | NVMe 200 GB |
| คลัสเตอร์สามโหนดขึ้นไปสำหรับข้อมูลปริมาณมากและความพร้อมใช้งานสูง | 8 vCPU ต่อโหนด | 32 GB ต่อโหนด | NVMe 500 GB ขึ้นไปต่อโหนด |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Elasticsearch บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
- RAM อย่างน้อย 4 GB โดยตั้ง Heap ไม่เกินครึ่งหนึ่งของ RAM และไม่เกิน 31 GB
- ตั้งค่า vm.max_map_count เป็น 262144
- ดิสก์ NVMe เพราะการสร้างดัชนีอ่านเขียนหนัก
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
เพิ่มที่เก็บแพ็กเกจ
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | \ sudo gpg --dearmor -o /usr/share/keyrings/elastic-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/elastic-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | \ sudo tee /etc/apt/sources.list.d/elastic-8.x.list - 2
ติดตั้ง Elasticsearch
เก็บรหัสผ่านของผู้ใช้ elastic ที่ระบบพิมพ์ออกมาตอนติดตั้งไว้ให้ดี เพราะแสดงเพียงครั้งเดียว
sudo apt update sudo apt -y install elasticsearch - 3
ตั้งค่าหน่วยความจำ
สร้างไฟล์ /etc/elasticsearch/jvm.options.d/heap.options โดยตั้ง Heap เท่ากับครึ่งหนึ่งของ RAM
-Xms8g -Xmx8g - 4
ตั้งค่าเครือข่ายใน /etc/elasticsearch/elasticsearch.yml
cluster.name: tdc-search node.name: node-1 network.host: 10.10.0.30 discovery.type: single-node - 5
ตั้งค่าระบบและเปิดบริการ
sudo sysctl -w vm.max_map_count=262144 echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf sudo systemctl enable --now elasticsearch - 6
ทดสอบการเชื่อมต่อ
curl -k -u elastic https://10.10.0.30:9200
ถ้าต้องการค้นหาภาษาไทยให้แม่นยำ ควรตั้ง Analyzer ที่รองรับการตัดคำภาษาไทย และทดสอบกับคำค้นจริงของผู้ใช้ก่อนขึ้นระบบ
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 9200 | TCP | REST API (เปิดเฉพาะวงภายใน) |
| 9300 | TCP | การสื่อสารระหว่างโหนดในคลัสเตอร์ |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ห้ามเปิดพอร์ต 9200 สู่อินเทอร์เน็ต เพราะเคยมีเหตุข้อมูลรั่วจำนวนมากจากคลัสเตอร์ที่เปิดสาธารณะ
- เปิดการยืนยันตัวตนและ TLS ซึ่งรุ่นใหม่เปิดให้โดยค่าเริ่มต้นอยู่แล้ว
- สร้างผู้ใช้แยกสำหรับแอปพร้อมสิทธิ์อ่านเฉพาะดัชนีที่ต้องใช้
- ตั้งนโยบายวงจรชีวิตของดัชนีเพื่อลบข้อมูลเก่าอัตโนมัติ ไม่ให้ดิสก์เต็ม
- สำรองข้อมูลด้วยกลไก Snapshot ไปยัง Object Storage
ทำไมควรรัน Elasticsearch บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
Snapshot ไปเก็บที่ Object Storage ของ THAI DATA CLOUD ได้โดยตรง ทำให้แผนสำรองข้อมูลครบวงจรในไทย
ขยายเป็นคลัสเตอร์หลายโหนดในวง Private Network ได้เมื่อข้อมูลโตขึ้น
ดัชนีค้นหาที่อยู่ใกล้ผู้ใช้ในไทยช่วยให้ผลลัพธ์แสดงเร็วขึ้นอย่างรู้สึกได้
คำถามที่พบบ่อยเกี่ยวกับ Elasticsearch
Elasticsearch กับ OpenSearch ต่างกันอย่างไร
OpenSearch แยกสายออกมาจาก Elasticsearch เวอร์ชันโอเพนซอร์สเดิม และพัฒนาต่อภายใต้ใบอนุญาต Apache 2.0 ความสามารถพื้นฐานใกล้เคียงกันมาก การเลือกจึงมักขึ้นกับเงื่อนไขใบอนุญาตและเครื่องมือรอบข้างที่องค์กรใช้อยู่
ต้องใช้ RAM เท่าไหร่
ขั้นต่ำที่ใช้งานจริงได้คือ 4 GB แต่ระบบค้นหาของเว็บงานจริงควรมี 16 GB ขึ้นไป โดยตั้ง Heap ไว้ครึ่งหนึ่งและปล่อยที่เหลือให้ระบบปฏิบัติการใช้แคชไฟล์
ค้นหาภาษาไทยได้ดีไหม
ได้เมื่อตั้งค่าตัวตัดคำให้เหมาะสม เพราะภาษาไทยไม่เว้นวรรคระหว่างคำ ถ้าใช้ค่าเริ่มต้นแบบภาษาอังกฤษ ผลการค้นหาจะคลาดเคลื่อน ทีมงานของเราช่วยตั้งค่าและทดสอบกับคำค้นจริงได้
ทางเลือกอื่นที่คล้ายกับ Elasticsearch
แอปอื่นในหมวด ฐานข้อมูล
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Elasticsearch ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด