มาสร้าง MongoDB ด้วย Docker Compose กัน และ Monitor ผ่าน Grafana กัน
MongoDB เป็นระบบฐานข้อมูล NoSQL ใช้โครงสร้างข้อมูลแบบ JSON-like (ที่เรียกว่า BSON) ในการเก็บข้อมูล โดยถือว่าเป็นฐานข้อมูลแบบ NoSQL ที่ได้รับความนิยมสูง
โดยสิ่งที่จะใช้ในบทความนี้
MongoDB Exporter เป็นเครื่องมือที่ใช้สำหรับการเก็บข้อมูลวิเคราะห์ และส่งข้อมูลสถิติการใช้งานของ MongoDB เช่น การใช้ CPU, การใช้งานหน่วยความจำ, และสถิติการเชื่อมต่อ ไปยัง Prometheus
Prometheus เป็นระบบ monitoring และ alerting toolkit ที่ใช้เก็บข้อมูลเมตริกส์ในรูปแบบ time series
Grafana เป็นเครื่องมือสำหรับการวิเคราะห์และทำภาพแสดงผลข้อมูล ที่ใช้งานได้กับฐานข้อมูลหลายประเภทและระบบเก็บข้อมูลแบบ time series เช่น Prometheus, InfluxDB, และ Elasticsearch
สิ่งที่ต้องเตรียมก่อนเริ่มทำตามบทความ
- Docker
- Docker Compose
- Git Hub
- Source Code ทั้งหมด
จาก Source Code ที่กล่าวมาจะประกอบด้วย 4 ส่วนใหญ่ๆ แต่หยิบมาอธิบายบางส่วน
MongoDB Exporter:
- ( — collect-all) คำสั่งให้เก็บข้อมูลทุกประเภท
Prometheus:
- โหลดไฟล์คอนฟิก prometheus.yml จากโฟลเดอร์ปัจจุบันเข้าไปในคอนเทนเนอร์
Grafana:
- จัดเก็บข้อมูล Grafana ในวอลุ่ม grafana_data และโหลด Dashboard จากโฟลเดอร์ ./grafana/provisioning
- ติดตั้งปลั๊กอินต่างๆ ใน Grafana
init-mongo.js
ส่วนนี้คือการสร้าง rolesให้ username : rootuser สามารถสร้าง metrics ได้หลากหลายภายใต้ MongoDB Exporter ถ้าไม่ใส่จะดูข้อมูล metrics ได้น้อยมากๆ
จากนั้นลองมา Run ดูกัน
docker-compose up -d
docker ps
เมื่อติดตั้งเสร็จแล้วให้เข้าไปที่
รหัสครั้งแรกคือ username : admin , password : admin
จากนั้นไปที่ Dashboard แล้วไปที่ Template ที่เราได้ทำการเตรียมเอาไว้
หน้าตา Dashboard ที่เราได้เตรียม Template ไว้ลองไป Connect หรือ Queury ผ่าน MongoDB ข้อมูลก็จะถูกส่งมาถึง Grafana
มาพูดถึงส่วนของการ Backup และ Restore แบบสั้นๆ
จาก File.sh จะเป็นการ Backup ข้อมูลแบบ Steam เข้า S3
ส่วน File.sh นี้จะเป็นการ Restore แบบ Steam ข้อมูลจาก S3 มา ยัง MongoDB ของเรา
จบไปแล้วสำหรับการทำ MongoDB ด้วยตนเองเป็นบทความสั้นๆและไม่ยากเลยใช่ไหมครับ ผิดพลาดในส่วนไหนก็ขอโทษ ณ ที่นี้ด้วยครับ