Cài đặt Grafana – Graphite – Collectd trên Ubuntu 16.04

Tác giả: 29/08/2022

Giới thiệu

Grafana là một bộ mã nguồn mở sử dụng trong việc phân tích các dữ liệu thu thập được từ server và hiện thị một các trực quan dữ liệu thu thập được ở nhiều dạng khác nhau.

Các tính năng cơ bản:

  • Đưa ra cảnh báo Alert: Đưa ra được cảnh báo ở một ngưỡng đã được xác định, có thể đưa ra cảnh báo thông qua Slack, PagerDuty…liên tục đánh giá và gửi thông báo.
  • Tổng hợp dữ liệu: Tổng với nhau để có được phân tích. Grafana hỗ trợ hàng chục cơ sở dữ liệu và có thể mix lại với nhau trong cùng một dashboard.
  • Đa nền tảng: Grafana cung cấp nhiều sự lựa chọn, vì hoàn toàn là mã nguồn mở nên được hỗ trợ bởi một cộng đồng đông đảo người sử dụng có kinh nghiệm. Dễ dàng cài đặt trên bất kỳ nền tảng nào (Linux, windows, MacOS).
  • Mở rộng: Có thể tạo ra trăm bảng điều khiển và plugin trong thư viện chính thức nhờ sự phát triển của cộng đồng sử dụng grafana.
  • Linh hoạt: Tạo bảng điều khiển động có độ tùy biến cao và có thể sử dụng dễ dàng, linh hoạt, kéo thả.

<center><img src=”https://i.imgur.com/Af8JCrM.png”></center>

Nguyên tắc hoạt động chung của collectd-graphite-grafana:

Nhìn vào sơ đồ trên dễ dàng hình dùng được quá trình hoạt động của collectd-graphite-grafana

  • Data source Graphite đứng để nhận các thông tin về metrics ở các node server cần monitor đẩy lên thông qua carbon-cache.
  • Collectd cài đặt ở các server cần monitor gửi các metrics mà người quản trị yêu cầu thu thập về service carbon-cache.
  • Carbon Metrics
  • Updates/sec (write ops)
  • Metrics received/sec (ingress)
  • Committed points/sec (datapoints written to disk)
  • Creates/sec (new Whisper files)
  • CPU (avg across Cache instances)
  • Points per Update (avg across Cache instances)
  • Carbon Memory & CPU
  • Metric keys in Cache (unique metric names)
  • Datapoints in Cache
  • Relay Destination Queue Length (datapoints queued per destination)
  • Average datapoints per key in Cache
  • Datapoints received during full cache
  • Average Relay Batch Size (average number of datapoints per relay transmission)
  • Disk write ops and write time (requires collectd disk plugin)
  • Metric retrieval time (requires collectd tail plugin and this configuration)
  • Network traffic (requires collectd interface plugin)
  • Load (requires collectd load plugin)
  • CPU (by state, requires collectd cpu plugin)

-Grafana lấy thông tin từ data source từ graphite về để hiển thị dạng trực quan, monitor trực quan. Tùy từng dữ liệu, yêu cầu monitor mà sử dụng một loại biểu đồ hiện thị khác nhau, panel khác nhau sao cho phù hợp nhất.

I, Chuẩn bị

1.1 System Requirements

  • Ubuntu 16.04 LTS
  • CPU: 1 vCPU
  • Memory: 1GB RAM
  • Disk: 2.5-5GB tùy thuộc vào số node monitor
  • Disk performance: 20-200 random IOPs trên mỗi node server monitor.
  • Use NetApp storage (NFS, LUN, vmdk, vhd, vhdx) hoặc local SSD

1.2. Protocol and Port Requirements

Graphite Server IP Graphite

  • Sử dụng plaintext protocol 2003/TCP* : Sử dụng để đẩy metric từ

Graphite metrics DB.

  • Sử dụng giao thức HTTP* 81/TCP*: Sử dụng để hiển thị, truy vấn APIs

lấy các số liệu định dạng JSON.

  • HTTP* 80/443/TCP*: Sử dụng để truy cập giao diện web của Graphite.

II. Cài đặt

+ Set địa chỉ IP tĩnh, kiểm tra kết nối ra Internet, update, upgrade các package

<center><image src=”https://i.imgur.com/WMqI9M0.png”></center>

2.1. Install graphite

– Cài đặt graphite và các package cần thiết cho graphite

root@ubuntu:/# sudo apt-get install apache2 libapache2-mod-wsgi graphite-web graphite-carbon
  • Trong quá trình cài đặt “Y” để đồng ý cài đặt các package
  • Cài đặt database cho graphite

Yes để xóa db cũ đi và tạo db mới

No để cài đè lên db cũ (TH graphite đã được cài đặt trước đây trên server).

<center><image src=”https://i.imgur.com/x4bteSS.png”></center>

Chọn “Yes” để remove và cài mới db

Quá trình cài đặt graphite đang xong.

<center><image src=”https://i.imgur.com/NLYniOC.png”></center>

2.2. Configure Graphite

  • Đặt chế độ tự đông bật service graphite-carbon mỗi lần server reboot lại.

+Tìm và chỉnh sửa trong file sudo nano /etc/default/graphite-carbon

CARBON_CACHE_ENABLED=false
change to
CARBON_CACHE_ENABLED=true

<center><image src=”https://i.imgur.com/66gNyFS.png”></center>

  • Carbon cache service configuration file bật chế độ ghi log và quản lý ghi log LOGROTATE

+Chỉnh sửa trong file sudo nano /etc/carbon/carbon.conf

ENABLE_LOGROTATION = False
change to
ENABLE_LOGROTATION = True

<center><image src=”https://i.imgur.com/gHGMgYQ.png”></center>

+Tăng số lượng metric tạo ra mỗi phút để hiển thị.

MAX_CREATES_PER_MINUTE = 50
change to
MAX_CREATES_PER_MINUTE = 600

<center><image src=”https://i.imgur.com/W4yOdgS.png”></center>

  • Copy a default storage-aggregation.conf file
      sudo cp /usr/share/doc/graphite-carbon/examples/storage-aggregation.conf.example /etc/carbon/storage-aggregation.conf
    

<center><image src=”https://i.imgur.com/6FdgWqr.png”></center>

  • Restart service graphite

<center><image src=”https://i.imgur.com/V8MRYnz.png”></center>

2.3. Configure graphite-web

  • Cấu hình Graphite web app

Chỉnh sửa trong file /etc/graphite/local_settings.py

+Đặt key trong quá trình sử dụng web app TCP kết nối.

    #SECRET_KEY = 'UNSAFE_DEFAULT'
    change to 
    SECRET_KEY = ‘KJKzzxcviouzxcvytwkdd94944asmdf9ads9ds9dspp83jlkjLKJL98798KLOIK’

+Chỉnh time zone

    #TIME_ZONE = 'America/Los_Angeles'
    change to 
    TIME_ZONE = 'Asia/Ho_Chi_Minh'

<center><image src=”https://i.imgur.com/JpzDDNP.png”></center>

  • Cài đặt, cấu hình graphite DB và set quyền truy cập cho user
      sudo graphite-manage syncd
      sudo chown _graphite:_graphite /var/lib/graphite/graphite.db
    

<center><image src=”https://i.imgur.com/6TrpLFG.png”></center>

2.4. Configure Apache

sudo a2dissite 000-default
sudo cp /usr/share/graphite-web/apache2-graphite.conf /etc/apache2/sites-available
sudo a2ensite apache2-graphite

<center><image src=”https://i.imgur.com/t82UR0Z.png”></center>

  • Edit port listen của Apache từ 80 -8080 để tránh trùng port mới app khác, có thể giữ nguyên nếu có lỗi phải đổi port.

Edit trong file sudo nano /etc/apache2/ports.conf

<center><image src=”https://i.imgur.com/RzMhT8n.png”></center>

Edit port trong của file /etc/apache2/sites-available/apache2-graphite.conf

<center><image src=”https://i.imgur.com/FOh4qen.png”></center>

  • Reload service apache
      sudo service apache2 reload
    
  • Cài đặt thành công graphite truy cập qua giao diện web

<center><image src=”https://i.imgur.com/xdm4HQP.png”></center>

2.5. Cài đặt grafana

  • Chỉnh sửa source get của Ubuntu

Mở file sudo nano /etc/apt/sources.list

Thêm source deb https://packagecloud.io/grafana/stable/debian/ wheezy main

<center><image src=”https://i.imgur.com/6uBgE7U.png”></center>

  • Thêm package cloud key để cho phép cài đặt
      sudo curl https://packagecloud.io/gpg.key | sudo apt-key add -
    

<center><image src=”https://i.imgur.com/lzRuEfd.png”></center>

  • Update package và cài đặt grafana
      sudo apt-get upda
      sudo apt-get install grafana
    

<center><image src=”https://i.imgur.com/ZUpQred.png”></center>

-Cấu hình grafana

  • Cầu hình grafana truy cập bằng https với chứng thư số từ một CA tin cậy, tự tạo một chứng thư số.
      cd /etc/grafana
      sudo openssl req -x509 -newkey rsa:2048 -keyout cert.key -out cert.pem -days 3650 -nodes
    
  • Chỉnh sửa file config grafana

Sửa trong file /etc/grafana/grafana.ini

    protocol = http -> protocol = https
    http_port = 3000 -> http_port = 443
    #https certs & key file
    ;cert_file =
    ;cert_key =
    sửa thành
    #https certs & key file
    cert_file = /etc/grafana/cert.pem
    cert_key = /etc/grafana/cert.key
  • Set grafana-server bật khi khởi động server
      sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server
      sudo update-rc.d grafana-server defaults 95 10
      sudo service grafana-server start
    

-Cài đặt thành công truy cập grafana qua giao diện web

Truy cập qua đường dẫn trên trình duyệt, đăng nhập với tài khoản mặc định admin/admin

http://ipserver

<center><image src=”https://i.imgur.com/hdxOVPW.png”></center>

  • Add datasource, tạo dashboard… thông quan giao diện.

<center><image src=”https://i.imgur.com/kraMtlQ.png”></center>

2.6. Cài đặt Collectd

– Cài đặt trên OS Centos

yum -y install libcurl libcurl-devel rrdtool rrdtool-devel rrdtool-prel libgcrypt-devel gcc make gcc-c++
  • Get Collectd, untar it, make it and install
      wget http://collectd.org/files/collectd-5.4.0.tar.gz
      tar zxvf collectd-5.4.0.tar.gz
      cd collectd-5.4.0
      ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=/usr/lib --mandir=/usr/share/man --enable-all-plugins 
      make
    
      make install
    
  • Copy the default init.d script
      cp /root/collectd-5.4.0/contrib/redhat/init.d-collectd /etc/init.d/collectd
    
  • Set the correct permissions
      chmod +x /etc/init.d/collectd
    
  • Start the deamon
      service collectd start
    

– Cài đặt trên Ubuntu

  • Cài đặt
      sudo apt-get update
      sudo apt-get install collectd collectd-utils
    
  • Chỉnh sửa file cấu hình

sudo nano /etc/collectd/collectd.conf

Chi tiết các plugin tham khảo tại

https://collectd.org/documentation/manpages/collectd.conf.5.shtml

Xin chân thành cảm ơn!

Khi cần hỗ trợ xin liên hệ với chúng tôi:
Công ty phần mềm Nhân Hòa
Trụ sở Hà Nội: Tầng 4 – Toà nhà 97 – 99 Láng Hạ, Đống Đa, Hà Nội
Chi nhánh HCM: 270 Cao Thắng (nối dài), Phường 12, Quận 10, TP HCM
Chi nhánh Vinh – Nghệ An: Tầng 2 Tòa nhà Sài Gòn Sky, ngõ 26 Nguyễn Thái Học, phường Đội Cung, TP. Vinh, Nghệ An
Hotline: 19006680

Trả lời