ในโลกดิจิทัลที่กว้างใหญ่ เครื่องมือค้นหาส่วนใหญ่ยังตอบโจทย์ผู้ใช้ขั้นสูงได้ไม่เพียงพอ คู่มือนี้จะพาคุณรู้จักกับ Elasticsearch, เครื่องมือค้นหาและวิเคราะห์ข้อมูลที่ทรงพลัง ในคู่มือนี้ เราจะพาคุณติดตั้ง Elasticsearch บน Ubuntu 22.04 เพื่อให้การดึงข้อมูลและวิเคราะห์ผลทำได้เร็วและมีประสิทธิภาพมากขึ้น ไม่ว่าคุณจะเป็น developer, นักวิเคราะห์ข้อมูล หรือ data scientist มือใหม่
หากคุณพร้อมแล้วที่จะเริ่มต้นกับ Elasticsearch และดึงศักยภาพจากข้อมูลของคุณ เราจะเริ่มด้วยข้อมูลพื้นฐานเกี่ยวกับ Elasticsearch ก่อนเข้าสู่ขั้นตอนการติดตั้ง เมื่ออ่านคู่มือนี้จบ คุณจะมีระบบ Elasticsearch ที่พร้อมใช้งานบน Ubuntu ของคุณ
Elasticsearch คืออะไร
มาทำความเข้าใจนิยามพื้นฐานของ Elasticsearch และศักยภาพที่มีกัน API ที่เป็นมาตรฐาน REST ก่อนเข้าสู่บทช่วยสอน Elasticsearch! Elasticsearch คือ search and analytics engine ที่สร้างบน Apache Lucene ออกแบบมาเพื่อรองรับข้อมูลปริมาณมหาศาลและค้นหาข้อมูลได้อย่างรวดเร็ว นิยมใช้กันมากในงาน log analytics, full-text search และ real-time analytics โดย Elasticsearch จัดเก็บข้อมูลแบบกระจาย (distributed) แบ่งข้อมูลออกเป็น shard และกระจายไปยัง node ต่าง ๆ ในคลัสเตอร์ วิธีนี้ช่วยให้ระบบมี high availability และรองรับความเสียหายได้โดยไม่หยุดให้บริการ
Elasticsearch ได้รับการยอมรับอย่างกว้างขวางสำหรับ RESTful API ที่ครอบคลุมของมัน API นี้ช่วยให้ผู้ใช้สามารถโต้ตอบกับ Elasticsearch ผ่านคำขอ HTTP ที่ตรงไปตรงมา มักจะมีโครงสร้างเป็น JSON payloads คำขอเหล่านี้อำนวยความสะดวกในการดำเนินการต่างๆ เช่น การจัดทำดัชนี การค้นหา การอัปเดต และการลบเอกสาร
RESTful API ยึดหลักการของ Representational State Transfer (REST) ซึ่งเป็นรูปแบบสถาปัตยกรรมสำหรับการออกแบบแอปพลิเคชันแบบเครือข่าย โดยใช้มาตรฐาน วิธีการ HTTP เช่น GET, POST, PUT, DELETE และอื่น ๆ เพื่อโต้ตอบกับทรัพยากร Elasticsearch
หากต้องการ index เอกสารใหม่ ให้ส่ง POST request พร้อมเอกสารในรูปแบบ JSON ไปที่ /index_name/_doc endpoint. ในทางกลับกัน หากต้องการค้นหาเอกสาร ให้ส่ง GET request พร้อมพารามิเตอร์การค้นหาไปที่ /index_name/_search endpoint สำหรับดึงข้อมูลผลลัพธ์
นอกจากนี้ RESTful API ยังมีความสามารถในการสืบค้นที่กว้างขวาง มันสนับสนุนการค้นหาที่ซับซ้อนโดยใช้ประเภทคิวรี่ต่างๆ ตัวกรอง การรวมข้อมูล และตัวเลือกการเรียงลำดับ การปรับแต่งความเกี่ยวข้อง การค้นหาแบบเต็มข้อความหรือตามตำแหน่งทางภูมิศาสตร์ และอื่นๆ ทั้งหมดเป็นไปได้ สุดท้าย เพื่ออำนวยความสะดวกในการรวมเข้ากับแอปพลิเคชัน Elasticsearch มีไลบรารีไคลเอนต์ในหลายภาษาโปรแกรมมิ่ง โดยรวมแล้ว สถาปัตยกรรมแบบกระจายของ Elasticsearch รวมกับ RESTful API ที่เป็นมิตรกับผู้ใช้ ทำให้เป็นเครื่องมือที่มีประสิทธิภาพสำหรับการสร้างโซลูชันการค้นหาและการวิเคราะห์
Elasticsearch Tutorial: วิธีติดตั้ง Elasticsearch บน Ubuntu
ถึงเวลาแล้วที่จะเรียนรู้วิธีติดตั้ง Elasticsearch สำหรับ Ubuntu กัน บทความนี้จะอธิบายขั้นตอนการติดตั้ง Elasticsearch บน Ubuntu 22.04 แบบทีละขั้นตอน ตามได้ไม่ยาก นอกจากนี้ยังครอบคลุมฟังก์ชันพื้นฐานที่ควรรู้ด้วย เผื่อใครยังไม่คุ้นเคย มาเริ่มกันเลย
ขั้นตอนที่ 1: อัปเดต Ubuntu ของคุณ
ก่อนเริ่มติดตั้ง Elasticsearch Ubuntu ควรอัปเดต package ของระบบให้เป็นเวอร์ชันล่าสุดก่อน รันคำสั่งสองบรรทัดนี้ใน terminal:
sudo apt update
sudo apt upgrade
ขั้นตอนที่ 2: ติดตั้ง Java
Elasticsearch ทำงานบน Java ดังนั้นเราต้องติดตั้ง Java บน Ubuntu ก่อน เพื่อให้กระบวนการติดตั้ง Elasticsearch บน Ubuntu เป็นไปอย่างราบรื่น OpenJDK คือ Java เวอร์ชันโอเพนซอร์ส ซึ่งติดตั้งง่ายกว่าและมักให้ประสิทธิภาพที่ดีกว่าด้วย ใช้คำสั่งต่อไปนี้เพื่อติดตั้ง Java ผ่าน OpenJDK:
sudo apt install openjdk-11-jdk
ขั้นตอนที่ 3: ดาวน์โหลด Elasticsearch
เมื่อระบบได้รับการอัปเดตและติดตั้ง Java เรียบร้อยแล้ว ก็ถึงเวลาติดตั้ง Elasticsearch บน Ubuntu เริ่มต้นด้วยการเข้าไปที่เว็บไซต์ทางการของ Elasticsearch เพื่อดาวน์โหลดลิงก์ล่าสุด จากนั้นใช้ "wgetคำสั่งเพื่อดาวน์โหลด Elasticsearch อย่างรวดเร็ว นี่คือตัวอย่างแบบขั้นตอน:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-amd64.deb
ขั้นตอนที่ 4: ติดตั้งและตั้งค่า Elasticsearch Ubuntu
เมื่อดาวน์โหลด Ubuntu Elasticsearch เสร็จแล้ว ให้ติดตั้งไฟล์ที่ดาวน์โหลดมาด้วยคำสั่งต่อไปนี้:
sudo dpkg -i elasticsearch-7.14.0-amd64.deb
คำสั่งนี้จะระบุไฟล์ Elasticsearch ที่ดาวน์โหลดไว้ แล้วแตกไฟล์เพื่อติดตั้ง Elasticsearch บน Ubuntu เมื่อติดตั้งเสร็จแล้ว คุณต้องตัดสินใจว่าจะให้ Elasticsearch รับการเชื่อมต่อเฉพาะจากเครื่องในเครื่องเท่านั้นหรือไม่ โดยค่าเริ่มต้น Elasticsearch จะรับการเชื่อมต่อจากทุกที่ แต่หลายคนนิยมจำกัดการเข้าถึงให้แคบลง หากต้องการปรับการตั้งค่านี้ ให้เปิดไฟล์ที่ระบุด้วยโปรแกรมแก้ไขข้อความ:
sudo nano /etc/elasticsearch/elasticsearch.yml
จากนั้น ในไฟล์ ให้ค้นหาบรรทัดที่ขึ้นต้นด้วยวลี "# network.host และลบ # ที่ต้นบรรทัด การตั้งค่านี้จะกำหนดให้ Elasticsearch รับฟังเฉพาะการเชื่อมต่อจากเครื่องภายในเท่านั้น (localhost) หากไม่ต้องการทำการเปลี่ยนแปลงนี้ ให้ข้ามส่วนที่สองของขั้นตอนที่ 4
ขั้นตอนที่ 5: เริ่มต้น Elasticsearch และทดสอบการใช้งาน
ตอนนี้คุณสามารถรันโปรแกรมได้หลังจากดำเนินการสำเร็จและติดตั้ง Elasticsearch Ubuntu 22.04 แล้ว เริ่มต้นบริการ Elasticsearch ด้วยคำสั่งนี้:
sudo systemctl start elasticsearch
รอให้โปรแกรมโหลดเสร็จ หากต้องการให้โปรแกรมเริ่มทำงานอัตโนมัติตอนบูตเครื่อง ให้เพิ่มบรรทัดนี้:
sudo systemctl enable elasticsearch
เพื่อตรวจสอบว่าการติดตั้ง Elasticsearch ทำงานร่วมกับเซิร์ฟเวอร์ได้ถูกต้อง ให้รันคำสั่งด้านล่าง คำสั่งนี้จะส่ง HTTP request ไปยังเซิร์ฟเวอร์และรอรับ JSON response กลับมา หากได้รับ JSON response แสดงว่าการติดตั้ง Elasticsearch สำเร็จและทำงานได้ตามปกติ ทั้งนี้ ให้รันคำสั่งในเบราว์เซอร์ ไม่ใช่ใน terminal:
http://localhost:9200
ขั้นตอนที่ 6: รักษาความปลอดภัย Elasticsearch บน Ubuntu
คลัสเตอร์ Elasticsearch ของคุณอาจเก็บข้อมูลโปรเจกต์และเซิร์ฟเวอร์ที่สำคัญซึ่งไม่ควรตกไปอยู่ในมือผิด ดังนั้นหลังจากติดตั้ง Elasticsearch Ubuntu เสร็จแล้ว ควรให้ความสำคัญกับการรักษาความปลอดภัยให้กับ Elasticsearch ด้วย ขั้นตอนแรกคือเปิดไฟล์คอนฟิกต่อไปนี้ด้วย text editor อีกครั้ง:
sudo nano /etc/elasticsearch/elasticsearch.yml
ค้นหาบรรทัดต่อไปนี้และลบ # ในตอนเริ่มต้น
xpack.security.enabled: true
การตั้งค่านี้จะเปิดใช้งานมาตรการรักษาความปลอดภัยพื้นฐานของ Elasticsearch บันทึกการเปลี่ยนแปลงและออกจากตัวแก้ไข จากนั้นกำหนดรหัสผ่านสำหรับผู้ใช้ที่มีอยู่ในตัวของ Elasticsearch โดยใช้คำสั่งต่อไปนี้เพื่อเปิด interactive shell ของ Elasticsearch:
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords interactive
ที่นี่ คุณจะถูกขอให้ตั้งรหัสผ่านสำหรับแต่ละบัญชีผู้ใช้ที่มีอยู่ใน Elasticsearch โดยค่าเริ่มต้น ตั้งรหัสผ่านให้เดายากแต่จำง่าย และสุดท้าย เพื่อเพิ่มความปลอดภัยให้ Elasticsearch อีกขั้น คุณสามารถเปิดใช้งาน Firewall ได้ แม้ขั้นตอนนี้จะไม่จำเป็นเสมอไป ถือว่าเป็นตัวเลือกเสริมตามความต้องการ:
sudo apt install ufw
sudo ufw enable
เมื่อเปิดใช้งานไฟร์วอลล์แล้ว ให้ใช้คำสั่งต่อไปนี้เพื่อจำกัดการเชื่อมต่อเฉพาะสองพอร์ตที่ Elasticsearch ใช้งาน เพื่อป้องกันการรับส่งข้อมูลที่ไม่พึงประสงค์และอาจเป็นอันตรายจากภายนอก:
sudo ufw allow 9200
sudo ufw allow 9300
สุดท้าย ให้รีสตาร์ท Elasticsearch เพื่อยืนยันการเปลี่ยนแปลง:
sudo systemctl restart elasticsearch
ยินดีด้วย! คุณติดตั้ง Elasticsearch บน Ubuntu สำเร็จแล้ว และได้ตั้งค่าความปลอดภัยเรียบร้อย หากต้องการใช้งาน Elasticsearch และฟีเจอร์ REST API ของมัน ให้กรอก credentials ให้ถูกต้อง (ชื่อผู้ใช้และรหัสผ่าน) สำหรับผู้ใช้ที่คุณสร้างไว้ อย่าลืมอัปเดต Elasticsearch อยู่เสมอ และปฏิบัติตามแนวทางด้านความปลอดภัยที่ดี เพื่อให้สภาพแวดล้อมของคุณปลอดภัยตลอดเวลา
สรุป
การติดตั้ง Elasticsearch บน Ubuntu เรียบร้อยแล้วช่วยให้สามารถค้นหาและวิเคราะห์ข้อมูลได้ดีขึ้น ด้วยการปฏิบัติตามคำแนะนำการติดตั้งและเพิ่มการกำหนดค่าความปลอดภัย คุณสามารถมั่นใจในการป้องกันข้อมูล เมื่อใช้งานได้แล้ว RESTful API ของ Elasticsearch ช่วยให้ปฏิสัมพันธ์ที่ง่ายขึ้น ตั้งแต่การจัดทำดัชนีจนถึงการค้นหาและอัปเดตเอกสาร แม้ว่าการใช้ประโยชน์จาก Elasticsearch อย่างเต็มที่อาจเป็นเรื่องท้าทาย การจัดทำเอกสารโดยละเอียดช่วยในการทำความเข้าใจคุณสมบัติขั้นสูง เจาะลึกเข้าไป Elasticsearch บน Ubuntu เพื่อรับประโยชน์จากความเป็นไปได้ในการปรับขนาด ความเร็ว และฟีเจอร์มากมายของมัน ปลดล็อคข้อมูลเชิงลึกและการสำรวจข้อมูลที่ไม่มีใครเทียบ
ก่อนไป คุณอยากยกระดับการใช้งาน Elasticsearch บน Ubuntu ให้มากกว่านี้ไหม? มาดู Cloudzy ที่ทรงพลังกันเลย Linux VPSโดยใช้ Ubuntu เวอร์ชัน Linux VPS ของเรา คุณสามารถโฮสต์เซิร์ฟเวอร์ที่ติดตั้ง Elasticsearch ได้มากกว่า 12 โลเคชันทั่วโลก เพื่อให้ได้ค่าเลเทนซีที่ดี พร้อมมาตรการความปลอดภัยที่คอยปกป้องคุณ รองรับช่องทางชำระเงินทั้งแบบปกติและแบบไม่ระบุตัวตนหลากหลายวิธี เพื่อให้คุณได้รับ elite Ubuntu VPS, พร้อม uptime 99.95% ใช้ความรู้จากบทเรียน Elasticsearch นี้ให้เต็มที่!
ตัวเลือกที่ชัดเจน
เซิร์ฟเวอร์ส่วนใหญ่ที่รัน Linux ใช้ Ubuntu อยู่แล้ว แล้วคุณล่ะ? ค้นพบว่าทำไมทุกคนถึงชอบ Ubuntu และรับ Ubuntu VPS ที่ปรับแต่งมาอย่างดี
รับ Ubuntu VPS ของคุณคำถามที่พบบ่อย
Elasticsearch และ Apache Lucene แตกต่างกันอย่างไร?
Elasticsearch สร้างขึ้นบน Apache Lucene ซึ่งเป็นไลบรารีค้นหาข้อความแบบ full-text ที่มีประสิทธิภาพ Lucene จัดการการทำดัชนีและการค้นหาในระดับพื้นฐาน แต่ Elasticsearch ขยายความสามารถเหล่านั้นด้วยฟีเจอร์อย่างการประมวลผลแบบกระจาย, การรองรับโหลดที่เติบโตได้, และ RESTful API ที่ใช้งานง่าย เพื่อให้เหมาะสมกับสภาพแวดล้อมแบบ distributed
Elasticsearch จัดการความซ้ำซ้อนของข้อมูลและความทนทานต่อข้อผิดพลาดอย่างไร?
Elasticsearch รองรับความซ้ำซ้อนของข้อมูลและความทนทานต่อความผิดพลาดผ่านสถาปัตยกรรมแบบกระจาย ระบบจะแบ่งข้อมูลออกเป็นหลาย shard และกระจายไปยังหลาย node ในคลัสเตอร์ แต่ละ shard มีการจำลองข้อมูลในตัว เพื่อให้ข้อมูลถูกทำสำเนาไว้บน node หลายตัวพร้อมกัน หาก node ใด node หนึ่งล้มเหลว Elasticsearch ยังสามารถดึงข้อมูลจาก shard ที่จำลองไว้บน node อื่นได้ทันที ทำให้ระบบพร้อมใช้งานตลอดเวลา
Elasticsearch ใช้สำหรับการวิเคราะห์ข้อมูลแบบเรียลไทม์ได้ไหม?
ได้เลย Elasticsearch เหมาะกับงานวิเคราะห์ข้อมูลแบบเรียลไทม์มาก ด้วยความสามารถในการอัปเดต index แบบ near real-time ทำให้ค้นหาและดึงข้อมูลได้รวดเร็ว เมื่อรวมกับฟีเจอร์ aggregation ที่ทรงพลัง Elasticsearch จึงรองรับการวิเคราะห์และแสดงผลข้อมูลได้อย่างรวดเร็ว จึงเป็นตัวเลือกยอดนิยมสำหรับงานประเภทนี้
Elasticsearch ใช้กับข้อมูล geospatial ได้ไหม?
Elasticsearch รองรับข้อมูล geospatial ได้ดีมาก มีฟีเจอร์ geospatial indexing และการค้นหาตามพิกัดภูมิศาสตร์ ผู้ใช้สามารถ index เอกสารด้วยพิกัด GPS คำนวณระยะทาง และกรองหรือ aggregate ข้อมูลตามตำแหน่งที่ตั้งได้ ความสามารถด้าน geospatial ของ Elasticsearch มีเอกสารอ้างอิงครบถ้วนและเป็นที่ยอมรับในวงกว้าง
ใช้ Elasticsearch สำหรับ logging และการวิเคราะห์ log ได้ไหม?
ได้แน่นอน Elasticsearch ถูกนำมาใช้งานด้าน log analytics และ centralized logging อย่างแพร่หลาย การนำ log เข้า Elasticsearch ช่วยให้ค้นหา วิเคราะห์ และแสดงผลข้อมูล log ได้แบบ near real-time นอกจากนี้ เมื่อใช้ร่วมกับ Logstash และ Kibana จะได้ ELK Stack (Elasticsearch, Logstash, Kibana) ซึ่งเป็นที่นิยมสำหรับการจัดการและวิเคราะห์ log