Thứ Ba, 11 tháng 2, 2014

Metric monitoring with Graphite

Metric monitoring

Là một hệ thống các monitor dựa trên các metric được gửi từ về các máy đã cài đặt collector
vd: Để quản lý Rảm free của một máy, trên máy đó ta cài đặt collector, collector này sẽ kiểm tra và thu thập thông tin về lượng ram trống của máy đó và gửi về server tập trung theo một chu kì nào đó do ta cài đặt. Từ các metric thu được đó, sau một khoảng thời gian ta sẽ thu được các điểm, từ các điểm này ta sẽ xây dựng được các biêu đồ hiển thị thông tin về lượng ram trống của máy đó trong khoảng thời gian đó.
+ Graphite: hệ thống đồ họa thời gian thực, có khả năng mở rộng cao và cấu trúc gồm 3 phần( bên dưới)
+ monitor:( màn hình) có chức năng hiển thị các thông tin do collector gửi về
+ Collector: có chức năng thu thập lại dữ liệu theo yêu cầu và gửi tới server tập trung
+ Server tập trung(ví dụ như một máy server)  nơi nhận , lưu trữ và hiển thị dữ liệu
+Metric: Là thông tin do collector thu thập được và gửi về server trung tâm trong một điểm thời gian xác định

Graphite

http://graphite.readthedocs.org/en/latest/org
Kiến trúc của graphite gồm 3 thành phần là graphite-web, carbon và whisper

Graphite Web

Là Graphite interfaces,hiển thị các metric đã được lưu trên Whisper dưới dạng biểu đồ

Carbon

Tiếp nhận các metric do collector gửi về và gửi tới Whisper

Whisper

Tiếp nhận các Metric từ Cacbon gửi về, lưu trữ chúng lại trên đĩa cứng

Sơ đồ sự di chuyển của metric

Collector trên máy X    ===(gửi tới)====>  Carbon  =====(gửi tới)====> whisper ====(lưu vào đĩa cứng).  <(đọc) Graphite-web <- người dùng


Vài điều chú ý khi cài đặt

  • Data về các metric được lưu trữ trên /var/lib/graphite
  • Data về thay đổi của người dùng lưu trên một SQL database.
  • Khi triển khai trên hệ thống của Backbone Team, cần mount các volume vào các thư mục chứa data để đảm bảo tính toàn vẹn dữ liệu khi có sự cố xảy ra, đồng thời đảm bảo về dung lượng lưu trữ do rootdisk của cloud instance chỉ  20GB. Trong khi lượng metric có thể lên tới vài trăm GB hoặc hơn nếu sử dụng lâu dài (và nhiều).
  • Hệ thống graphite của Backbone team hiện tại sử dụng postgresql, vì vậy cần mount một volume vào thư mục /var/lib/postgres
  • Để các thay đổi về mount ổ cứng trở nên cố định, cần sửa nội dung file /etc/fstab
  • Sử dụng salt formula ở đây để cài đặt    https://git.vccloud.vn/lamdt/saltstate/tree/master/graphite
  • Để giảm nguy cơ về bảo mật do graphite không hỗ trợ authenticate, sử dụng iptables để lọc các metric được gửi từ các địa chỉ cố định.
  • Để đảm bảo không sử dụng quá nhiều dung lượng lưu trữ, có thể dùng cron để tìm và xóa các file tồn tại trong
    /var/lib/graphite/whisper hơn 30 ngày.
  • Cấu hình nginx đã được thay đổi để Graphite Explorer có thể đọc data từ graphite. (xem trong document của Graphite Explorer)
  • Cần theo dõi hàng ngày dung lượng còn trống của rootdisk, do carbon hiện có 1 lỗi khiến cho nó ghi liên tục vào file log lúc không kết nối được. Khi hiện tượng rootdisk giảm mảnh, cần kiểm tra /var/log/graphite và xóa đi file log có dung lượng lớn. 

Vài điều chú ý khi sử dụng


  • Hệ thống graphite hiện tại không hỗ trợ phân quyền người dùng. Chú ý không sửa/xóa dashboard của nhau.
  • Màu của các line trên graph phụ thuộc vào thứ tự thêm nó vào.
  • Chuột phải vào graph và chọn  "copy link to image" để chia sẻ graph đó cho người khác.
  • Khi graphite nhận được metric mới hoàn toàn, nó sẽ sử dụng khá nhiều đĩa cứng (để "nhận chỗ" trước).
  • Cần theo dõi thường xuyên lượng metric nhận được hàng ngày, % CPU sử dụng trên máy cài graphite, rootdisk còn trống trên graphite 

Một số thông tin hữu ích


  • Graphite cung cấp API để các chương trình bên ngoài có thể truy cập và render 
  • Graphite được viết bằng Python

Các thành phần bổ sung


Graphite explorer

Giúp nâng cao khả năng truy vấn, đưa ra các kết quả mong muốn dựa trên data của graphite
https://github.com/vimeo/graph-explorer/wiki/Tutorial

Cabot

Hệ thống cảnh báo dựa trên các metric của graphite (khi vượt hay dưới 1 ngưỡng nhất định)
http://cabotapp.com/

Các thuật ngữ

http://graphite.readthedocs.org/en/latest/terminology.html#term-series

+ Functions: 
Là các  time-series function, được apply lên graph,giúp chúng ta tùy tùy chỉnh graph theo yêu cầu
+ Targets:
Nguồn dữ liệu input của graph
+Metric series : tập hợp của các metrics
+ timetamps
+Bucket
+Timetamps bucket:






4 nhận xét:

  1. Là một hệ thống các monitor dựa trên các metric được gửi về các máy đã cài đặt collector => gửi về từ

    Trả lờiXóa
  2. + Graphite: Là biểu đồ hiển thị lượng ram trống theo thời gian vừa xây dựng được
    + monitor: được hiểu như là một interface( như màn hình) hiển thị các thông tin do collector gửi về

    => sai hoàn tòan

    Trả lờiXóa
  3. copy- paste thì bài viết ko có giá trị gì cả !

    Trả lờiXóa