Trong tất cả các công cụ giám sát hiện đại hiện có thì có lẽ TIG stack (Telegraf, InfluxDB và Grafana)  là một trong những công cụ được sử dụng phổ biến nhất.

Ở bài viết này, Cloud365 sẽ hướng dẫn các bạn cách cài đặt TIG stack để giám sát hệ thống của bạn.

Mục lục

  1. Giới thiệu
  2. Cài đặt
    1. Cài đặt InfluxDB
    2. Cài Telegraf Agent
    3. Cài đặt grafana
  3. Một số thao tác sử dụng

1. Giới thiệu

Telegraf – Influxdb – Grafana (TIG)  là một stack dùng để giám sát hệ thống, công cụ rất phổ biến.

Telegraf và Influxdb đều là sản phẩm mã nguồn mở của InfluxData. Mặc dù InfluxData cung cấp một stack hoàn chỉnh để giám sát với Chronograf để visualize và Kapacitor để cảnh báo (TICK stack) nhưng chúng ta có thể sử dụng Grafana để thay thế cho cả Chronograf lẫn Kapacitor.

Telegraf là một agent để thu thập và báo cáo các số liệu và dữ liệu. Nó có thể tích hợp để thu thập nhiều loại nguồn dữ liệu khác nhau của các số liệu, events, và logs trực tiếp từ các container và hệ thống mà nó chạy trên đó.

InfluxDB là một Time Series Database (là database được tối ưu hóa để xử lý dữ liệu chuỗi thời gian, các dãy số được lập chỉ mục theo thời gian). Nó cung cấp một ngôn ngữ giống SQL để tương tác với dữ liệu.

Grafana là một công cụ mã nguồn mở cho phép chúng ta truy vấn, hiển thị, cảnh báo các số liệu thu thập được. Nó có các tính năng nổi bật như hiển thị số liệu theo nhiều dạng biểu đồ khác nhau; cảnh báo qua nhiều kênh như email, telegram, slack, …; Hỗ trợ nhiều loại database như InfluxDB, ElasticSearch, Graphite, …; Cung cấp nhiều plugin, nhiều dashboard template.

Nói ngắn gọn, TIG stack hoạt động như sau:

  • Telegraf là 1 Agent dùng để thu thập số liệu hệ thống cũng như dịch vụ trên hệ thống mà nó chạy.
  • Các số liệu được thu thập và đưa vào InfluxDB.
  • Từ InfluxDB, dữ liệu sẽ được đẩy đến Grafana và được hiển thị theo các dạng đồ thị trực quan.

2. Cài đặt

Ở đây tôi cài trên hệ điều hành Ubuntu server 18.04 với IP 10.10.34.164.

2.1. Cài đặt InfluxDB

Thêm Influxdata key:

wget -qO- https://repos.influxdata.com/influxdb.key | apt-key add -

Thêm repositorty Influxdata và update lại các thay đổi:

source /etc/lsb-release

echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | tee /etc/apt/sources.list.d/influxdb.list

apt update -y

Cài đặt gói influxdb:

apt install influxdb -y

Khởi động dịch vụ và cấu hình khởi động cùng hệ thống:

systemctl start influxdb
systemctl enable influxdb

Kiểm tra trạng thái dịch vụ:

systemctl status influxdb

Kiểm tra version hiện tại của Influx:

influx -version

InfluxDB mặc định sẽ sử dụng 2 port: 8088 và 8086. Vì thế cần kiểm tra lại port đang mở

netstat -plntu

Nếu không thấy 2 port này thì thực hiện mở port

ufw allow 8086

ufw allow 8088

Cấu hình InfluxDB:

Chỉnh sửa file cấu hình /etc/influxdb/influxdb.conf

vi /etc/influxdb/influxdb.conf

Sửa các phần sau trong thẻ [http]

[http]
# Determines whether HTTP endpoint is enabled.
enabled = true

# Determines whether the Flux query endpoint is enabled.
flux-enabled = true

# The bind address used by the HTTP service.
bind-address = ":8086"

# Determines whether HTTP request logging is enabled.
log-enabled = true

Để sử dụng InfluxDB, ta nhập lệnh:

influx

Cách dùng influxDB khá giống với cách dùng mysqlDB.

Ở đây tôi sẽ tạo database và user cho Telegraf luôn:

    > create database telegraf
    > create user telegraf with password 'P@ssw0rd' with all privileges

Kiểm tra lại database và user vừa tạo:

    > show databases
    > show users

Thoát bằng lệnh:

    > exit

2.2. Cài Telegraf Agent

Tùy theo hệ điều hành bạn muố giám sát mà cách cài đặt Telegraf agent sẽ khác nhau. Xem các câu lệnh cài đặt tai trang web:

https://portal.influxdata.com/downloads/

Click vào nút khoanh đỏ như trong hình
Bạn chọn các câu lệnh cài đặt tùy theo hệ điều hành mình muốn giám sát

Ở đây tôi sẽ cài telegraf agent trên máy này (Ubuntu 18.04) để bạn dễ hình dung. Cài trên các máy khác thao tác tương tự.

Cài đặt:

wget https://dl.influxdata.com/telegraf/releases/telegraf_1.14.2-1_amd64.deb
sudo dpkg -i telegraf_1.14.2-1_amd64.deb

hoặc bạn có thể dùng lệnh:

apt install telegraf -y

Khởi động dịch vụ và cấu hình khởi động cùng hệ thống:

systemctl start telegraf

systemctl enable telegraf

Kiểm tra trạng thái dịch vụ

systemctl status telegraf

Kiểm tra version

telegraf --version

Cấu hình telegraf agent

Sửa file /etc/telegraf/telegraf.conf

Sửa các dòng:

hostname = "tig"

urls = ["http://10.10.34.164:8086"]

database = "telegraf"

username = "telegraf"

password = "P@ssw0rd"

[[inputs.cpu]]

percpu = true

totalcpu = true

collect_cpu_time = false

report_active = false

[[inputs.disk]]

ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]

[[inputs.diskio]]

[[inputs.kernel]]

[[inputs.mem]]

[[inputs.processes]]

[[inputs.swap]]

[[inputs.system]]

[[inputs.net]]

[[inputs.netstat]]

Khởi động lại dịch vụ:

systemctl restart telegraf

2.3. Cài đặt Grafana

Update và cài đặt các gói cần thiết

apt-get install -y apt-transport-https

apt-get install -y software-properties-common wget

apt-get update

apt-get upgrade

reboot

Add key vào các gói cài đặt:

wget -q -O - https://packages.grafana.com/gpg.key | apt-key add -

add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"

Update repo và cài đặt Grafana

apt-get update

apt-get install -y grafana

Khởi động dịch vụ và kiểm tra trạng thái

systemctl start grafana-server

systemctl enable grafana-server

systemctl status grafana-server

Kiểm tra phiên bản

grafana-server -v

Mặc định grafana sẽ chạy trên port 3000. Kiểm tra port đang mở

netstat -plntu

Mở port 3000 trong trường hợp port bị chặn

ufw allow 3000

3. Một số thao tác sử dụng

Đến đây chúng ta đã cài đặt xog TIG stack. Chúng ta truy cập vào <địa chỉ IP>:3000.

Ở đây địa chỉ của tôi là 10.10.34.164:3000

Đăng nhập bằng tài khoản admin / admin. Sau đó, bạn sẽ được yêu cầu đổi mật khẩu ngay.

Nhập mật khẩu mới và chọn Save.

Giao diện chính của Grafana trên server của bạn tương tự như sau:

Hạn chế người dùng ẩn danh truy cập trang này

Bạn có thể hạn chế người dùng ẩn danh truy cập hệ thống của bạn. Các bước làm như sau:

Vào file cấu hình Grafana: /etc/grafana/grafana.ini

Sửa các dòng:

#################################### Anonymous Auth ######################
[auth.anonymous]
# enable anonymous access
enabled = false

# specify organization name that should be used for unauthenticated users
org_name = Main Org.

# specify role for unauthenticated users
org_role = Viewer

Khởi động lại dịch vụ:

systemctl restart grafana-server

Tắt tính năng đăng ký tài khoản

Mặc định thì bạn sẽ không thấy nút đăng kí tài khoản. Tuy nhiên, có thể truy cập đường dẫn dưới để đăng kí: <địa_chỉ_ip>:3000/signup

Để chặn việc người ngoài đăng kí tài khoản để truy cập hệ thống, bạn có thể tắt tính năng đăng kí bằng cách sửa file cấu hình.

Mở file cấu hình:/etc/grafana/grafana.ini

Tìm và sửa dòng allow_sign_up = true -> allow_sign_up = false

[users]
# disable user signup / registration
allow_sign_up = false

Khởi động lại dịch vụ

systemctl restart grafana-server

Thử đăng kí, ta sẽ thấy thông báo không thể đăng kí

Thêm InfluxDB làm nguồn dữ liệu (datasource) cho Grafana

Trên giao diện, ta chọn Configuration -> Data Sources -> Add data source

Tìm đến phần InfluxDB -> Chọn Select

Điền thông tin database

  • 1 : Tên InfluxDB
  • 2 : Đường dẫn truy cập InfluxDB. Tại đây, ta cài cùng trên 1 server nên là localhost
  • 3 : Xác thực
  • 4 : Tài khoản xác thực. Nhập tài khoản admin của InfluxDB và mật khẩu
  • 5 : Database sẽ lấy. Ta dùng telegraf. User và password của telefraf

Sau khi điền xong, ta chọn Save & Test

Sau khi thành công, ta sẽ thấy thông báo như sau:

Lưu ý: Nếu gặp lỗi 502 Bad Gateway. Hãy xem lại trường URL. Để ý cả phương thức http và https

Import Grafana dashboard

Tìm các dashboard mà bạn muốn dùng ở trang: https://grafana.com/grafana/dashboards?orderBy=name&direction=asc

Ví dụ tôi sẽ thêm dashboard Telegraf metrics như hình dưới. Copy ID của dashboard này. Ở đây là 61

Tại trang 10.10.34.164:3000. Di chuột vào dấu công và click Import. Dán ID bạn đã copy ở trên vào ô Grafana.com Dashboard

Sau khi nhập ID là 61. sẽ xuât hiện giao diện như hình dưới

Đặt tên (1) và chọn thư mục (2) tùy ý bạn. Chọn data source là InfluxDB (3). Sau đó click Import (4).

Sau khi Import bạn sẽ thấy dashboard đã được thêm

Dashboard này thể hiện rất đầy đủ. Bạn có thể thay đổi tên host, data source, interval. Xem hiển trạng thái, thông số các host bằng cách click vào các mục như summary, system, vv … Ví dụ xem thông tin system:

Lưu ý: Sau khi thay đổi bất cứ điều gì trên dashboard bạn cần lưu lại trước khi thoát.

Hoặc bạn cũng có thể tự tạo cho mình một dashboard riêng tùy theo nhu cầu sử dụng của bạn.

Kết luận

Như vậy, Cloud365 đã hướng dẫn bạn cách cài đặt TIG stack cũng như các thao tác cơ bản để bạn giám sát hệ thống của mình.

Chúc cách bạn thành công!