ตั้งค่าอินสแตนซ์ Elasticsearch โดยใช้ Docker Containers

Tang Kha Xin S Taen S Elasticsearch Doy Chi Docker Containers



Elasticsearch เป็นเครื่องมือค้นหาและการวิเคราะห์แบบเปิดและแบบกระจายฟรีสำหรับข้อมูลทุกประเภท รวมถึงข้อความ ตัวเลข ภูมิสารสนเทศเชิงพื้นที่ โครงสร้าง และไม่มีโครงสร้าง

Elasticsearch สร้างขึ้นบน Apache Lucene และเปิดตัวครั้งแรกในปี 2010 Elasticsearch เป็นที่รู้จักในเรื่อง REST API ที่เรียบง่าย ลักษณะการกระจาย ความเร็ว และความสามารถในการปรับขนาด เป็นองค์ประกอบหลักของ Elastic Stack ซึ่งเป็นชุดเครื่องมือแบบเปิดฟรีสำหรับการนำเข้าข้อมูล การเพิ่มคุณค่า การจัดเก็บ การวิเคราะห์ และการแสดงภาพ

ในบทช่วยสอนนี้ เราจะอธิบายขั้นตอนการตั้งค่าอินสแตนซ์ Elasticsearch โดยใช้คอนเทนเนอร์ Docker อย่างรวดเร็ว







ความต้องการ:

หากต้องการรันคำสั่งและขั้นตอนที่ให้ไว้ในโพสต์นี้ ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:



  1. ติดตั้งเครื่องยนต์นักเทียบท่าแล้ว
  2. ติดตั้ง Docker เขียนแล้ว
  3. สิทธิ์ที่เพียงพอในการเรียกใช้คอนเทนเนอร์ Docker

กำหนดไฟล์เขียนนักเทียบท่า

ขั้นตอนแรกคือการกำหนดการกำหนดค่า Docker Compose เพื่อเรียกใช้คอนเทนเนอร์ Docker เริ่มต้นด้วยการสร้างไดเร็กทอรีเพื่อจัดเก็บไฟล์ปรับแต่ง:



$ mkdir ยืดหยุ่น
$ ซีดี ยืดหยุ่น

สร้างไฟล์ “docker-compose.yml” เพื่อรันคลัสเตอร์ Elasticsearch ดังที่แสดงในการกำหนดค่าตัวอย่างต่อไปนี้:





รุ่น: '3'
บริการ:
ยืดหยุ่นค้นหา01:
ภาพ: docker.elastic.co / ค้นหาแบบยืดหยุ่น / การค้นหาแบบยืดหยุ่น:8.9.2
คอนเทนเนอร์_ชื่อ: elasticsearch01
พอร์ต:
- - 9200 : : 9200
- - 9300 : : 9300
สิ่งแวดล้อม:
Discovery.type: โหนดเดียว
เครือข่าย:
- ยืดหยุ่น
คิบานะ01:
ภาพ: docker.elastic.co / คิบานะ / คิบานะ: 8.9.2
ชื่อคอนเทนเนอร์: kibana01
พอร์ต:
- - 5601 : : 5601
สิ่งแวดล้อม:
ELASTICSEARCH_URL: http: // ยืดหยุ่นค้นหา01: 9200
ELASTICSEARCH_HOSTS: http: // ยืดหยุ่นค้นหา01: 9200
เครือข่าย:
- ยืดหยุ่น
เครือข่าย:
ยืดหยุ่น:
คนขับ: สะพาน

ในไฟล์ตัวอย่างนี้ เรากำหนดบริการสองรายการ รายการแรกตั้งค่าบริการ Elasticsearch และรายการอื่นตั้งค่าอินสแตนซ์ Kibana ขั้นตอนต่างๆ เป็นไปตามที่อธิบายไว้ต่อไปนี้:

  • ใช้อิมเมจ Elasticsearch 8.9.2
  • แมปพอร์ต 9200 และ 9300 จากคอนเทนเนอร์ไปยังโฮสต์
  • ตั้งค่าตัวแปรสภาพแวดล้อม “discovery.type tosingle-node” สำหรับ Elasticsearch
  • เชื่อมต่อกับเครือข่ายที่กำหนดเองที่เรียกว่า 'ยืดหยุ่น'

ในบริการ Kibana เราดำเนินการดังต่อไปนี้:



  • ใช้อิมเมจ Kibana 8.9.2
  • แมปพอร์ต 5601 จากคอนเทนเนอร์ไปยังโฮสต์
  • ระบุ URL การเชื่อมต่อ Elasticsearch ผ่านตัวแปรสภาพแวดล้อม ELASTICSEARCH_URL และ ELASTICSEARCH_HOSTS
  • เชื่อมต่อกับเครือข่ายยืดหยุ่น

สุดท้ายนี้ เราตั้งค่าเครือข่ายแบบกำหนดเองที่เรียกว่า 'elastic' โดยใช้ไดรเวอร์บริดจ์ซึ่งช่วยให้คอนเทนเนอร์ Elasticsearch และ Kibana สามารถสื่อสารได้

เรียกใช้คอนเทนเนอร์

เมื่อเรากำหนดบริการแล้ว เราก็สามารถดำเนินการต่อและรันคอนเทนเนอร์ได้โดยใช้คำสั่ง Docker Compos ดังต่อไปนี้:

$ นักเทียบท่าเขียนขึ้น -d

เข้าถึง Elasticsearch และ Kibana

เมื่อคอนเทนเนอร์เริ่มทำงานแล้ว เราจะดำเนินการต่อและเข้าถึงอินสแตนซ์ได้ตามที่อยู่ต่อไปนี้:

http: // โฮสต์ท้องถิ่น: 9200 - - > การค้นหาแบบยืดหยุ่น

http: // โฮสต์ท้องถิ่น: 5601 - - > คิบานะ

เรียกใช้ Elasticsearch โดยใช้คำสั่ง Docker “Run”

คุณยังสามารถรัน Elasticsearch ได้อย่างรวดเร็วโดยใช้คำสั่ง docker “run” โดยไม่จำเป็นต้องกำหนดการกำหนดค่าแบบกำหนดเอง

เริ่มต้นด้วยการสร้างเครือข่าย Docker เพื่อเชื่อมต่อกับอินสแตนซ์ Elasticsearch:

$ เครือข่ายนักเทียบท่าสร้างกวางเอลค์

เมื่อสร้างขึ้นแล้ว ให้รันคำสั่งต่อไปนี้เพื่อสร้างอินสแตนซ์ Elasticsearch และแนบไปกับเครือข่ายที่สร้างขึ้น:

$ นักเทียบท่าวิ่ง -d --ชื่อ ค้นหาแบบยืดหยุ่น --สุทธิ กวางเอลค์ -พี 9200 : : 9200 -พี 9300 : : 9300 -มันคือ 'discovery.type=single-โหนด' elasticsearch:แท็ก

ซึ่งจะทำให้กระบวนการสร้างไฟล์ “docker-compose” ที่กำหนดเองง่ายขึ้น และเรียกใช้อินสแตนซ์ Elasticsearch ได้อย่างรวดเร็ว

บทสรุป

บทความนี้ครอบคลุมขั้นตอนพื้นฐานของการกำหนดและการรันอินสแตนซ์ Elasticsearch และ Kibana โดยใช้คอนเทนเนอร์ Docker