Grafana Loki คืออะไร และวิธีติดตั้งบน Cloud Server
Loki คือระบบเก็บ Log ที่ออกแบบให้ใช้ทรัพยากรน้อยโดยไม่สร้างดัชนีของเนื้อหาทั้งหมด แต่สร้างดัชนีเฉพาะป้ายกำกับ ทำให้เก็บ Log ปริมาณมากได้ในต้นทุนที่ต่ำกว่าระบบเดิมมาก
- หมวดหมู่
- Monitoring และ Observability
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- AGPLv3 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Grafana Loki คืออะไร
ระบบรวม Log แบบเดิมสร้างดัชนีของทุกคำในทุกบรรทัด ทำให้ค้นหาเร็วมากแต่ใช้ทั้งพื้นที่และหน่วยความจำสูง ซึ่งเป็นต้นทุนที่ใหญ่ขึ้นเรื่อย ๆ เมื่อระบบโต
Loki เลือกอีกทาง คือสร้างดัชนีเฉพาะป้ายกำกับอย่างชื่อบริการหรือชื่อเครื่อง แล้วเก็บเนื้อหาแบบบีบอัดไว้เฉย ๆ เวลาค้นหาจึงกรองด้วยป้ายกำกับก่อนแล้วค่อยไล่อ่านเนื้อหาในช่วงที่แคบลง
ผลคือประหยัดพื้นที่และทรัพยากรอย่างมาก แลกกับการค้นหาแบบกวาดทั้งระบบที่ช้ากว่า ทีมที่รู้อยู่แล้วว่าจะดู Log ของบริการไหนช่วงเวลาใดจึงได้ประโยชน์เต็มที่
ความสามารถเด่นของ Grafana Loki
ใช้พื้นที่น้อยกว่าระบบเดิมมาก
สร้างดัชนีเฉพาะป้ายกำกับ ทำให้เก็บ Log ปริมาณมากได้ในต้นทุนต่ำ
ทำงานคู่กับ Grafana ได้ทันที
ดู Log และกราฟตัวชี้วัดในหน้าจอเดียวกัน
ใช้แนวคิดป้ายกำกับเดียวกับ Prometheus
ทีมที่ใช้ Prometheus อยู่แล้วเรียนรู้ได้เร็ว
เก็บข้อมูลบน Object Storage ได้
ย้ายข้อมูลเก่าไปเก็บที่ราคาถูกกว่าโดยยังค้นหาได้
เชื่อม Log กับกราฟตัวชี้วัดได้
กดจากกราฟที่ผิดปกติไปดู Log ในช่วงเวลานั้นได้ทันที
ใช้ Grafana Loki ทำอะไรได้บ้าง
- ทีมที่ใช้ Prometheus และ Grafana อยู่แล้วและต้องการเก็บ Log ด้วย
- ระบบที่มี Log ปริมาณมากแต่มีงบจำกัด
- สภาพแวดล้อมคอนเทนเนอร์ที่ Log กระจายอยู่หลายที่
- ทีมที่ต้องการดูกราฟและ Log ในหน้าจอเดียว
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นเซิร์ฟเวอร์ไม่กี่เครื่อง | 2 vCPU | 4 GB | NVMe 60 GB |
| แนะนำองค์กรขนาดกลางที่เก็บ Log หลายเดือน | 4 vCPU | 8 GB | NVMe 200 GB หรือ Object Storage |
| ใช้งานหนักLog ปริมาณมากและเก็บย้อนหลังยาว | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | Object Storage |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Grafana Loki บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Ubuntu Server 24.04 LTS หรือ Rocky Linux 9
- Grafana สำหรับดูข้อมูล
- ตัวส่ง Log บนเครื่องปลายทาง
- Object Storage ถ้าต้องการเก็บข้อมูลระยะยาว
ทดสอบบน Ubuntu Server 24.04 LTS ที่ติดตั้ง Docker แล้ว
- 1
สร้างไฟล์ตั้งค่าของ Loki
auth_enabled: false server: http_listen_port: 3100 common: ring: kvstore: store: inmemory replication_factor: 1 path_prefix: /loki schema_config: configs: - from: 2024-01-01 store: tsdb object_store: filesystem schema: v13 index: prefix: index_ period: 24h limits_config: retention_period: 720h - 2
สร้างไฟล์ docker-compose.yml
services: loki: image: grafana/loki:3.0.0 command: -config.file=/etc/loki/config.yml volumes: - ./config.yml:/etc/loki/config.yml - ./loki-data:/loki ports: - "10.10.0.85:3100:3100" restart: unless-stopped grafana: image: grafana/grafana:latest ports: - "127.0.0.1:3000:3000" volumes: - ./grafana-data:/var/lib/grafana restart: unless-stopped - 3
สั่งรัน
docker compose up -d - 4
ติดตั้งตัวส่ง Log บนเครื่องปลายทาง
ติดตั้งตัวส่งบนทุกเครื่องที่ต้องการเก็บ Log แล้วตั้งให้ส่งมาที่เซิร์ฟเวอร์นี้ พร้อมกำหนดป้ายกำกับให้ชัดเจน เพราะป้ายกำกับคือสิ่งที่ใช้ค้นหาภายหลัง
clients: - url: http://10.10.0.85:3100/loki/api/v1/push scrape_configs: - job_name: system static_configs: - targets: [localhost] labels: job: varlogs host: web01 __path__: /var/log/*.log - 5
เพิ่ม Loki เป็นแหล่งข้อมูลใน Grafana
ตั้งที่อยู่เป็นพอร์ตของ Loki แล้วทดลองค้นหาด้วยป้ายกำกับ เพื่อยืนยันว่าข้อมูลเข้ามาแล้ว
- 6
ตั้งนโยบายเก็บข้อมูลและย้ายไป Object Storage
กำหนดระยะเวลาเก็บให้ตรงกับนโยบายขององค์กร และตั้งให้ข้อมูลเก่าไปอยู่บน Object Storage เพื่อลดค่าใช้จ่ายดิสก์
ออกแบบป้ายกำกับให้ดีตั้งแต่ต้นและอย่าใช้ค่าที่เปลี่ยนบ่อยอย่างรหัสคำขอเป็นป้ายกำกับ เพราะจะทำให้จำนวนชุดข้อมูลระเบิดและระบบช้าลงมาก
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 3100 | TCP | รับ Log และให้ Grafana เรียกใช้ (เฉพาะวงภายใน) |
| 443 | TCP | หน้าจอ Grafana ผ่าน Reverse Proxy |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ไม่เปิดพอร์ตรับ Log สู่อินเทอร์เน็ต ให้ใช้วงภายในหรือ VPN
- เปิดการยืนยันตัวตนเมื่อรับ Log ข้ามเครือข่ายที่ไม่น่าเชื่อถือ
- จำกัดสิทธิ์ผู้ใช้ใน Grafana ให้เห็นเฉพาะข้อมูลที่เกี่ยวข้อง
- ตั้งนโยบายเก็บข้อมูลเพื่อไม่ให้พื้นที่โตไม่จำกัด
ทำไมควรรัน Grafana Loki บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
เก็บข้อมูลระยะยาวบน Object Storage ของ THAI DATA CLOUD เพื่อลดค่าใช้จ่ายดิสก์
รับ Log จากทุกเซิร์ฟเวอร์ผ่าน Private Network ในไทย
ใช้คู่กับ Prometheus และ Grafana บนเครื่องเดียวกันได้สำหรับทีมขนาดกลาง
คำถามที่พบบ่อยเกี่ยวกับ Grafana Loki
Loki ต่างจาก Elasticsearch อย่างไร
Elasticsearch สร้างดัชนีของเนื้อหาทั้งหมดจึงค้นหาแบบกวาดทั้งระบบได้เร็วมาก แต่ใช้ทรัพยากรสูง ส่วน Loki สร้างดัชนีเฉพาะป้ายกำกับจึงประหยัดกว่ามาก แลกกับการค้นหาที่ต้องกรองด้วยป้ายกำกับก่อน
ใช้แทน Graylog ได้ไหม
ใช้แทนได้ถ้าโจทย์คือดู Log ของบริการที่รู้อยู่แล้วว่าจะดูตัวไหน แต่ถ้าต้องการหน้าจอครบพร้อมการจัดการสิทธิ์และกฎแจ้งเตือนในตัว Graylog ให้ความสามารถเหล่านั้นมากกว่า
ควรใช้ป้ายกำกับอย่างไร
ใช้ค่าที่มีจำนวนจำกัด เช่น ชื่อบริการ ชื่อเครื่อง และสภาพแวดล้อม ห้ามใช้ค่าที่เปลี่ยนทุกคำขออย่างรหัสผู้ใช้หรือรหัสคำขอ เพราะจะทำให้จำนวนชุดข้อมูลระเบิดจนระบบช้า
ทางเลือกอื่นที่คล้ายกับ Grafana Loki
แอปอื่นในหมวด Monitoring และ Observability
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Grafana Loki ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด