มาสร้าง 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-compose.yml
prometheus.yml
init-mongo.js

จาก 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

เมื่อติดตั้งเสร็จแล้วให้เข้าไปที่

http://localhost:3000/

รหัสครั้งแรกคือ 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 ด้วยตนเองเป็นบทความสั้นๆและไม่ยากเลยใช่ไหมครับ ผิดพลาดในส่วนไหนก็ขอโทษ ณ ที่นี้ด้วยครับ

--

--

No responses yet