โลโก้ Grafana Loki
Monitoring และ ObservabilityAGPLv3 (โอเพนซอร์ส)

Grafana Loki คืออะไร และวิธีติดตั้งบน Cloud Server

Loki คือระบบเก็บ Log ที่ออกแบบให้ใช้ทรัพยากรน้อยโดยไม่สร้างดัชนีของเนื้อหาทั้งหมด แต่สร้างดัชนีเฉพาะป้ายกำกับ ทำให้เก็บ Log ปริมาณมากได้ในต้นทุนที่ต่ำกว่าระบบเดิมมาก

หมวดหมู่
Monitoring และ Observability
ติดตั้งบนเซิร์ฟเวอร์เองได้
ได้
สเปกเริ่มต้นที่แนะนำ
2 vCPU · RAM 4 GB
ไลเซนส์
AGPLv3 (โอเพนซอร์ส)
เว็บทางการ
เปิดเว็บไซต์
สร้าง Cloud Server เดี๋ยวนี้
  • ISO/IEC 27001
  • ISO 22301
  • ISO 20000-1
  • CSA-STAR

Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย

Grafana Loki คืออะไร

ระบบรวม Log แบบเดิมสร้างดัชนีของทุกคำในทุกบรรทัด ทำให้ค้นหาเร็วมากแต่ใช้ทั้งพื้นที่และหน่วยความจำสูง ซึ่งเป็นต้นทุนที่ใหญ่ขึ้นเรื่อย ๆ เมื่อระบบโต

Loki เลือกอีกทาง คือสร้างดัชนีเฉพาะป้ายกำกับอย่างชื่อบริการหรือชื่อเครื่อง แล้วเก็บเนื้อหาแบบบีบอัดไว้เฉย ๆ เวลาค้นหาจึงกรองด้วยป้ายกำกับก่อนแล้วค่อยไล่อ่านเนื้อหาในช่วงที่แคบลง

ผลคือประหยัดพื้นที่และทรัพยากรอย่างมาก แลกกับการค้นหาแบบกวาดทั้งระบบที่ช้ากว่า ทีมที่รู้อยู่แล้วว่าจะดู Log ของบริการไหนช่วงเวลาใดจึงได้ประโยชน์เต็มที่

แผนผังการวางระบบ Grafana Loki บน Cloud Server หนึ่งเครื่องที่ Data Center ในประเทศไทย ผู้ใช้เข้าถึงผ่านไฟร์วอลล์ที่เปิดเฉพาะพอร์ต 3100, 443 ตัว Grafana Loki และข้อมูลอยู่บนเครื่องเดียวกัน เริ่มต้นที่ 2 vCPU แรม 4 GB และมีสำเนาสำรองเขียนออกไปเก็บอีกไซต์หนึ่ง
Grafana Loki ทำงานบน Cloud Server เครื่องเดียวได้ครบ เปิดเฉพาะพอร์ตที่จำเป็น ข้อมูลและสำเนาสำรองอยู่ใน Data Center ในประเทศไทย

ความสามารถเด่นของ Grafana Loki

ใช้พื้นที่น้อยกว่าระบบเดิมมาก

สร้างดัชนีเฉพาะป้ายกำกับ ทำให้เก็บ Log ปริมาณมากได้ในต้นทุนต่ำ

ทำงานคู่กับ Grafana ได้ทันที

ดู Log และกราฟตัวชี้วัดในหน้าจอเดียวกัน

ใช้แนวคิดป้ายกำกับเดียวกับ Prometheus

ทีมที่ใช้ Prometheus อยู่แล้วเรียนรู้ได้เร็ว

เก็บข้อมูลบน Object Storage ได้

ย้ายข้อมูลเก่าไปเก็บที่ราคาถูกกว่าโดยยังค้นหาได้

เชื่อม Log กับกราฟตัวชี้วัดได้

กดจากกราฟที่ผิดปกติไปดู Log ในช่วงเวลานั้นได้ทันที

ใช้ Grafana Loki ทำอะไรได้บ้าง

  • ทีมที่ใช้ Prometheus และ Grafana อยู่แล้วและต้องการเก็บ Log ด้วย
  • ระบบที่มี Log ปริมาณมากแต่มีงบจำกัด
  • สภาพแวดล้อมคอนเทนเนอร์ที่ Log กระจายอยู่หลายที่
  • ทีมที่ต้องการดูกราฟและ Log ในหน้าจอเดียว

สเปก Cloud Server ที่แนะนำ

แผนภาพเทียบสเปก Cloud Server สำหรับ Grafana Loki 3 ระดับ เริ่มจาก 2 vCPU แรม 4 GB ดิสก์ NVMe 60 GB ไปจนถึง 8 vCPU ขึ้นไป แรม 16 GB ขึ้นไป ดิสก์ Object Storage โดยเทียบขนาดแยกตามแต่ละคอลัมน์
เริ่มจากระดับที่ตรงกับการใช้งานตอนนี้ แล้วเพิ่ม CPU และ RAM ทีหลังได้บนเครื่องเดิม
ระดับการใช้งานvCPURAMDisk
เริ่มต้นเซิร์ฟเวอร์ไม่กี่เครื่อง2 vCPU4 GBNVMe 60 GB
แนะนำองค์กรขนาดกลางที่เก็บ Log หลายเดือน4 vCPU8 GBNVMe 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. 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. 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. 3

    สั่งรัน

    docker compose up -d
  4. 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. 5

    เพิ่ม Loki เป็นแหล่งข้อมูลใน Grafana

    ตั้งที่อยู่เป็นพอร์ตของ Loki แล้วทดลองค้นหาด้วยป้ายกำกับ เพื่อยืนยันว่าข้อมูลเข้ามาแล้ว

  6. 6

    ตั้งนโยบายเก็บข้อมูลและย้ายไป Object Storage

    กำหนดระยะเวลาเก็บให้ตรงกับนโยบายขององค์กร และตั้งให้ข้อมูลเก่าไปอยู่บน Object Storage เพื่อลดค่าใช้จ่ายดิสก์

ออกแบบป้ายกำกับให้ดีตั้งแต่ต้นและอย่าใช้ค่าที่เปลี่ยนบ่อยอย่างรหัสคำขอเป็นป้ายกำกับ เพราะจะทำให้จำนวนชุดข้อมูลระเบิดและระบบช้าลงมาก

พอร์ตที่ต้องเปิดบน Firewall

พอร์ตโปรโตคอลใช้ทำอะไร
3100TCPรับ Log และให้ Grafana เรียกใช้ (เฉพาะวงภายใน)
443TCPหน้าจอ 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 ให้ความสามารถเหล่านั้นมากกว่า

ควรใช้ป้ายกำกับอย่างไร

ใช้ค่าที่มีจำนวนจำกัด เช่น ชื่อบริการ ชื่อเครื่อง และสภาพแวดล้อม ห้ามใช้ค่าที่เปลี่ยนทุกคำขออย่างรหัสผู้ใช้หรือรหัสคำขอ เพราะจะทำให้จำนวนชุดข้อมูลระเบิดจนระบบช้า

บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง

ให้เราติดตั้ง Grafana Loki ให้ฟรี บน Cloud Server ในไทย

แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด