• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Monitoring with prometheus

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Monitoring with prometheus

    Tác giả: Trần Duy Hòa

    1. Giới thiệu Prometheus
    1.1/ Prometheus là gì?
    - Prometheus là một công cụ monitor server mã nguồn mở với cơ sở dữ liệu theo thời gian thực (An opensource time series database).
    - Time series database là những database được lưu trữ theo các mốc thời gian. Nghĩa là mỗi dữ liệu luôn được gắn với một mốc thời gian nhất đinh từ đó tạo thành chuỗi dữ liêu theo thời gian từ đó giúp chúng ta có thể xem lại dữ liệu cho một khoảng thời gian 1 giờ hay 1 tiếng.
    2.1/ Cách Prometheus hoạt động
    - Prometheus thực hiện quá trình kéo (pull) các thông số/số liệu (metric) từ các job (exporter). Sau đấy Prometheus sẽ lưu trữ các dữ liệu thu thập được ở local máy chủ. Tiếp đến sẽ chạy các rule để xử lý các dữ liệu theo nhu cầu cũng như kiểm tra thực hiện các cảnh báo mà bạn mong muốn.


    2. Cài đặt Prometheus:
    2.1/ Cài đặt Prometheus
    -Prometheus là phần mền được cài trên chính server dùng để monitor các và thu thâp (pull) các metrics từ các exporter.
    -Để cài đặt prometheus ta làm như sau:
    Code:
    [COLOR=#ed7d31]# Download prometheus-2.2.0.1.linux-arm64.tar.gz [/COLOR]
    wget https://github.com/prometheus/prometheus/releases/download/v2.20.1/prometheus-2.20.1.linux-arm64.tar.gz
    [COLOR=#ed7d31]# Giải nén file vừa tải và copy vào hệ thống[/COLOR]
    tar –xvf prometheus-2.20.1.linux-arm64.tar.gz
    -Sau khi giải nén, chúng ta sẽ được file có tên "prometheus-2.20.1.linux-arm64"
    Code:
    [COLOR=#ed7d31]#Truy cập file vừa giải nén [/COLOR]
    cd prometheus-2.20.1.linux-arm64
    [COLOR=#ed7d31]#Liệt kê các file và thư mục con[/COLOR]
    ls -la


    -Trong đó:
    prometheus: file để chạy phần mền prometheus.
    prometheus.yml: file để cấu hình các target.
    tsdb: database của prometheus.
    consoles và console_libraries: console và thư viện để dựng web.
    Code:
    [COLOR=#ed7d31]#Chạy Prometheus[/COLOR]
    ./ prometheus &

    2.2/ Cài đặt Node_exporter
    -Node_exporter là một trong các export giúp prometheus thu thập các metrics của máy cần giám sát và được cài đặt trên máy mục tiêu (máy được thực hiện giám sát).
    -Để cài đặt node_exporter ta làm như sau:
    Code:
    [COLOR=#ed7d31]#Download Node_exporter[/COLOR]
    wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-arm64.tar.gz
    [COLOR=#ed7d31]# giải nén file vừa tải[/COLOR]
    tar –xvf node_exporter-1.0.1.linux-arm64.tar.gz
    -Sau khi giải nén, chúng ta sẽ được file có tên "node_exporter-1.0.1.linux-arm64"
    Code:
    [COLOR=#ed7d31]#Truy cập thư mục vừa giải nén[/COLOR]
    cd node_exporter-1.0.1.linux-arm64
    [COLOR=#ed7d31]#Liệt kê các file và thư mục con[/COLOR]
    ls -la

    -Trong đó:
    node_exporter: file để chạy node_exporter.
    Code:
    [COLOR=#ed7d31]#Chạy node_exporter[/COLOR]
    ./ node_exporter &

    2.3/ Cài đặt Snmp_exporter
    -Snmp_exporter là một trong các export giúp prometheus thu thập các metrics của các thiết bị được cấu hình snmp và được cài đặt trên máy server.
    -Để cài đặt snmp_exporter ta làm như sau:
    Code:
    [COLOR=#ed7d31]#Download Snmp_exporter[/COLOR]
    wget https://github.com/prometheus/node_exporter/releases/download/v0.18.0/snmp_exporter-0.18.0.linux-arm64.tar.gz
    [COLOR=#ed7d31]# giải nén file vừa tải[/COLOR]
    tar –xvf snmp_exporter-0.18.0.linux-arm64.tar.gz
    -Sau khi giải nén, chúng ta sẽ được file có tên “snmp_exporter-0.18.0.linux-arm64”
    Code:
    [COLOR=#ed7d31]#Truy cập thư mục vừa giải nén[/COLOR]
    cd snmp_exporter-0.18.0.linux-arm64
    [COLOR=#ed7d31]#Liệt kê các file và thư mục con[/COLOR]
    ls -la


    -Trong đó:
    snmp_exporter: file chạy snmp_exporter.
    snmp.yml: file cấu hình để định nghĩa các module, xác thực community string giao thức snmp, các O.I.D,…..

    Code:
    [COLOR=#ed7d31]#Chạy snmp_exporter[/COLOR]
    ./ snmp_exporter &

    3. Mô hình thực tế:
    3.1/ Prometheus
    A. Cấu hình file prometheus.yml
    Code:
    [COLOR=#ed7d31]#Mở file prometheus.yml để cấu hình[/COLOR]
    vim prometheus.yml
    -File cấu hình tại trung tâm VnPro.

    B. Cài đặt prometheus thành dịch vụ hệ thống
    Code:
    [COLOR=#ed7d31]#Tạo services cho prometheus[/COLOR]
    Vim /etc/systemd/system/prometheus.service
    -Cấu hình file prometheus.service.


    3.2/ Snmp_exporter
    A. Cấu hình file snmp.yml
    Code:
    [COLOR=#ed7d31]#Mở file snmp.yml để cấu hình[/COLOR]
    vim snmp.yml
    -File cấu hình tại trung tâm VnPro.


    B. Cài đặt snmp_exporter thành dịch vụ hệ thống
    Code:
    [COLOR=#ed7d31]#Tạo services cho snmp[/COLOR]
    Vim /etc/systemd/system/snmp_exporter.service
    Cấu hình file snmp_exporter.service.


    3.3/ Node_exporter
    Cài đặt node_exporter thành dịch vụ hệ thống
    Code:
    [COLOR=#ed7d31]#Tạo services cho node_exporter[/COLOR]
    Vim /etc/systemd/system/node_exporter.service
    Cấu hình file snmp_exporter.service.



    4. Thiết lập Grafana:
    4.1/ Cài đặt Grafana và Dashboard
    -Có rất nhiều cách để cài đặt grafana thì ở đây mình sử dụng Docker để cài đặt. Tiến hành khởi tạo Container Grafana ở port 80
    Code:
    #docker run -d -p 80:3000 --name grafana grafana/grafana
    -Sử dụng trình duyệt web để kiểm tra với địa chỉ http://[IP server]


    -Khi cửa sổ hiện lên, đăng nhập với username và password nếu chưa có bạn có thể đăng ký một tài khoản mới và thay đổi theo ý bạn thay đổi password theo ý của bạn.
    -Tiến hành cài đặt Prometheus làm Database ở mục Configuration > Data source > Add data source > Prometheus và cấu hình như hình.




    -Tiếp theo bạn cần có Dashboard, Có thể tự tạo riêng cho mình một DashBoard hoặc có thể lấy sẵn Template về chỉnh sửa.
    -Các bạn truy cập vào https://raw.githubusercontent.com/pr...ards/esxi.json
    -Để copy cấu hình json có sẵn. Json là file cấu hình cơ bản của một dashboard được dựng sẵn để tạo một dashboard.
    -Sau đó bạn truy cập lại Grafana chọn vào Import:


    -Copy file json vừa cáu hình vào mục Import via panel json và ấn Load.


    -Các bạn đặt tên cho Dashboard chuẩn bị tạo ra và chọn Import (Overwrite).


    -Khi dó một Dashboard được tạo thành bạn chọn chuột vào mục esxhost để chọn thiết bị mà các bạn muốn xây dựng Dashboard.

    -Và đây là thành quả khi mình hoàn thành một Dashboard.


    -Có thể thêm một biểu đồ để lấy thông tin nhiệt độ thiết bị như sau (Tùy vào mỗi thiệt bị sẽ có một metric khác nhau).


    -Như vậy là hoàn tất việc thiết lập prometheus và grafana để giám sát hệ thống.
    4.2/ Thiết lập cảnh báo bằng Grafana
    -Các bạn cấu hình cho grafana gửi cảnh báo bằng giao thức SMTP bằng cách truy cập file defaults.ini.


    -Cấu hình SMTP trong file default.ini


    -Vào mục Alerting chọn Notification Channels và chọn Add Channel.




    -Ở đây các bạn sẽ cấu hình về loại phương tiện các bạn dùng để nhận cảnh báo (mình chọn là email) và trong ô Address mình sẽ nhập địa chỉ email vào ngăn cách nhau bởi dấu “;”.
    -Sau đó bạn vào Dashboard mà mình muốn thiết lập cảnh báo.
    -Chọn mục Alert và Creat Alert


    -Giao diện thiết lập cảnh báo sẽ hiện lên như hình.


    -Cấu hình:
    WHEN: bạn sẽ chọn cách tính toàn metrics mà bạn muốn sử dụng.
    OF: trong khoảng thời gian từ bao lâu tới bao lâu.
    IS ABOVE: số % mà khi vượt qua giới hạn này cảnh báo sẽ được gửi về.
    Send to: chọn Channel để gửi cảnh báo về (nhập name của Channel mà chúng ta đã đặt trong mục Add Channel)
    Message: tin nhắn mà bạn muốn gửi kèm cho người quản trị
Working...
X