เว็บนี้เคยนำเสนอเรื่อง Logstash, Kinana, ElasticSearch ไปบ้างแล้ว ซึ่งอธิบายรายละเอียดในส่วนของการติดตั้งไว้อย่างดี ครั้งนี้จะมาแนะนำการใช้งานผ่าน Container กันบ้าง Logstash เป็นเครื่องมือที่ได้รับความนิยมมากขึ้น เพราะไม่เพียงแค่มีความสามารถในการดึง log จากไฟล์ filter log และการเชื่อมต่อกับ syslog-ng ได้ แต่ยังสามารถเชื่อมต่อกับ ElasticSearch ทำให้การเก็บ log บนฐานข้อมูลมีประสิทธิภาพมากขึ้น การจัดการ log ทำได้ง่ายผ่าน LogStash ได้ง่าย

สำหรับ Kibana เป็นโครงการ Visualized ข้อมูลที่มีอยู่ใน ElasticSearch ทำให้เราสามารถสร้างการประมวลผลข้อมูลจาก log ธรรมดาจาก ElasticSearch ให้กลายเป็น Grap ที่ดูเข้าใจได้ง่าย และที่สำคัญคือสามารถเขียน config เพื่อใช้ในการวิเคราะห์ข้อมูลได้ด้วย

ครั้งนี้เราจะมาใช้งาน Logstash, Kibana และ ElasticSearch ผ่าน Docker Container มีนักพัฒนาหลายรายประยุกต์ Container กับบริการเหล่านี้ แต่มี Docker Image อยู่ชุดหนึ่งเป็นจุดเริ่มต้นได้ง่ายคือ pblittle/docker-logstash ทำออกมาได้ดี และมีเอกสารอ้างอิงที่เข้าใจได้ง่าย ใน image ชุดนี้ได้รวมเอา service ทั้งหมดรวมเข้าไว้เป็นก้อนเดียว แต่การเรียกใช้งานไม่จำเป็นต้องเรียก service ภายในตัวเองทั้งหมด แต่สามารถเรียกใช้ service ภายนอกเข้ามาร่วมได้ด้วย สำหรับ logstash config สามารถ link จาก url ภายนอกได้ซึ่งทำให้ง่ายในการจัดการมากขึ้น ลองดูตัวอย่าง

docker run -d -p 9292:9292 -p 9200:9200 pblittle/docker-logstash

เราจะพบว่ามีการ expose port 2 ชุด คือ 9200 เป็น ElasticSearch และ 9292 คือ Kibana ค่า default logstash config จะเป็นการดึงเอาข้อมูลจาก /var/log มาใช้ หากต้องการเปลี่ยน ก็ทำได้ง่ายมากๆ คือกำหนด link ของไฟล์ config ที่ต้องการใช้

docker run -d \
-e LOGSTASH_CONFIG_URL=https://gist.github.com/pblittle/8778567/raw/logstash.conf \
-p 9292:9292 \
-p 9200:9200 \
pblittle/docker-logstash

ลอง browse ไปที่เว็บกัน http://kibana:9292/index.html#/dashboard/file/logstash.json เราจะพบ console เราดังนี้

การใช้งานเพิ่มเติมดูได้จาก Docker Hub

Comments are closed.