Hướng dẫn cài đặt TIG stack (Telegraf – InfluxDB – Grafana)

30/12/2020

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, Onet 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/

Ở đâ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.

Đă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, Onet đã 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!

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

[SSH] [Phần 2] Cấu hình đăng nhập SSH Key cho user trên CentOS 7

Giới thiệu : Trong hướng dẫn lần trước, mình đã hướng dẫn các bạn cách tạo user sudo để đăng...
30/12/2020

Huớng dẫn dùng proxy cho ios, iphone 2023

Cách thay đổi Proxy trên Iphone: Để thay đổi địa chỉ IP bạn cần các bước sau: 1. Truy cập...
23/09/2023

Franz Messaging App for WhatsApp, Slack, WeChat, Telegram and more

Franz Messaging app is one of my top best messaging apps for linux platform. It’s a free, simple to use chat app that...
28/12/2020
Bài Viết

Bài Viết Mới Cập Nhật

SỰ KHÁC BIỆT GIỮA RESIDENTIAL PROXY VÀ PROXY DATACENTER
17/02/2024

Mua Proxy v6 US Private chạy PRE, Face, Insta, Gmail
07/01/2024

Mua shadowsocks và hướng dẫn sữ dụng trên window
05/01/2024

Tại sao Proxy Socks lại được ưa chuộng hơn Proxy HTTP?
04/01/2024

Mua thuê proxy v4 nuôi zalo chất lượng cao, kinh nghiệm tránh quét tài khoản zalo
02/01/2024