Cách cài đặt TIG Stack (Telegraf, InfluxDB và Grafana) trên Rocky Linux

theanh

Administrator
Nhân viên
Ngăn xếp TIG (Telegraf, InfluxDB và Grafana) là từ viết tắt của một nền tảng các công cụ nguồn mở giúp việc thu thập, lưu trữ, lập biểu đồ và cảnh báo các số liệu hệ thống trở nên dễ dàng hơn. Bạn có thể theo dõi và trực quan hóa các số liệu như bộ nhớ, dung lượng đĩa, người dùng đã đăng nhập, tải hệ thống, mức sử dụng swap, thời gian hoạt động, quy trình đang chạy, v.v. từ một nơi. Các công cụ được sử dụng trong ngăn xếp như sau:
  • Telegraf - là một tác nhân thu thập số liệu nguồn mở để thu thập và gửi dữ liệu và sự kiện từ cơ sở dữ liệu, hệ thống và cảm biến IoT. Nó hỗ trợ nhiều plugin đầu ra khác nhau như InfluxDB, Graphite, Kafka, v.v. mà nó có thể gửi dữ liệu đã thu thập được.
  • InfluxDB - là một cơ sở dữ liệu chuỗi thời gian nguồn mở được viết bằng ngôn ngữ Go. Nó được tối ưu hóa cho lưu trữ nhanh, có tính khả dụng cao và phù hợp với mọi thứ liên quan đến lượng lớn dữ liệu có dấu thời gian, bao gồm số liệu, sự kiện và phân tích thời gian thực.
  • Grafana - là một bộ công cụ giám sát và trực quan hóa dữ liệu nguồn mở. Nó hỗ trợ nhiều plugin đầu vào như Graphite, ElasticSearch, InfluxDB, v.v. Nó cung cấp bảng điều khiển và phân tích số liệu đẹp mắt, cho phép bạn trực quan hóa và giám sát mọi loại số liệu hệ thống và dữ liệu hiệu suất.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt và cấu hình TIG Stack trên một máy chủ duy nhất chạy Rocky Linux 8.

Điều kiện tiên quyết​


  1. Một máy chủ chạy Rocky Linux 8.

  2. Một người dùng không phải sudo có quyền root.

  3. SELinux đã bị vô hiệu hóa.

  4. Đảm bảo rằng mọi thứ đều đã cập nhật.
    Mã:
    $ sudo dnf update

Bước 1 - Cấu hình Tường lửa​

Bước đầu tiên là cấu hình tường lửa. Rocky Linux đi kèm với tường lửa Firewalld.

Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo firewall-cmd --state
Bạn sẽ nhận được kết quả sau.
Mã:
running
Kiểm tra các dịch vụ/cổng hiện được phép.
Mã:
$ sudo firewall-cmd --permanent --list-services
Nó sẽ hiển thị đầu ra sau.
Mã:
cockpit dhcpv6-client ssh
Cho phép Cổng 8086 để chạy InfluxDB và cổng 3000 để chạy Grafana Server.
Mã:
$ sudo firewall-cmd --permanent --add-port=8086/tcp
$ sudo firewall-cmd --permanent --add-port=3000/tcp
Tải lại tường lửa.
Mã:
$ sudo systemctl reload firewalld

Bước 2 - Cài đặt InfluxDB​

Để cài đặt InfluxDB, trước tiên, bạn cần tạo một tệp repo cho nó.

Tạo và mở tệp influxdb.repo để chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/influxdb.repo
Dán mã sau vào nó.
Mã:
[influxdb]
name = InfluxDB Repository - RHEL $releasever
baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bạn có tùy chọn cài đặt InfluxDB 1.8.x hoặc 2.0.x. Tuy nhiên, tốt hơn là sử dụng phiên bản mới nhất. Cài đặt InfluxDB.
Mã:
$ sudo dnf install influxdb2
Khởi động và kích hoạt dịch vụ InfluxDB.
Mã:
$ sudo systemctl enable influxdb
$ sudo systemctl start influxdb

Bước 3 - Tạo cơ sở dữ liệu InfluxDB và thông tin xác thực của người dùng​

Để lưu trữ dữ liệu từ Telegraf, bạn cần thiết lập cơ sở dữ liệu và người dùng Influx.

InfluxDB đi kèm với một công cụ dòng lệnh có tên là influx để tương tác với máy chủ InfluxDB. Hãy nghĩ đến influx như công cụ dòng lệnh mysql.

Chạy lệnh sau để thực hiện cấu hình ban đầu cho Influx.
Mã:
$ influx setup
> Welcome to InfluxDB 2.0!
? Please type your primary username navjot
? Please type your password ***************
? Please type your password again ***************
? Please type your primary organization name howtoforge
? Please type your primary bucket name tigstack
? Please type your retention period in hours, or 0 for infinite 360
? Setup with these parameters? Username: navjot Organization: howtoforge Bucket: tigstack Retention Period: 360h0m0s Yes
> Config default has been stored in /home/username/.influxdbv2/configs.
User Organization Bucket
navjot howtoforge tigstack
Bạn cần thiết lập tên người dùng ban đầu, mật khẩu, tên tổ chức, tên thùng chính để lưu trữ dữ liệu và thời gian lưu giữ tính bằng giờ cho dữ liệu đó.

Bạn cũng có thể thực hiện thiết lập này bằng cách khởi chạy URL http://:8086/ trong trình duyệt của bạn. Sau khi thực hiện thiết lập ban đầu, bạn có thể đăng nhập vào URL.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22433%22%20height=%22669%22%3E%3C/svg%3E


Bạn sẽ được chào đón bằng bảng điều khiển sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22413%22%3E%3C/svg%3E


Quá trình thiết lập ban đầu tạo một mã thông báo mặc định có toàn quyền đọc và quyền ghi vào tất cả các tổ chức trong cơ sở dữ liệu. Bạn cần một mã thông báo mới cho mục đích bảo mật, mã thông báo này sẽ chỉ kết nối với tổ chức và thùng mà chúng ta muốn kết nối.

Để tạo mã thông báo mới, hãy nhấp vào tùy chọn Dữ liệu từ thanh bên trái. Tiếp theo, hãy nhấp vào phần Mã thông báo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22656%22%3E%3C/svg%3E


Tại đây, bạn sẽ thấy mã thông báo mặc định mà chúng ta đã tạo tại thời điểm cấu hình ban đầu. Nhấp vào nút Tạo mã thông báo và chọn tùy chọn Đọc/Ghi mã thông báo để khởi chạy cửa sổ bật lên lớp phủ mới.

Đặt tên cho mã thông báo và chọn thùng mặc định mà chúng ta đã tạo trong cả phần ĐọcGhi.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22696%22%20height=%22535%22%3E%3C/svg%3E


Nhấp Lưu để hoàn tất việc tạo mã thông báo. Nhấp vào tên của mã thông báo mới tạo để hiển thị cửa sổ bật lên có giá trị mã thông báo. Lưu ngay bây giờ vì chúng ta sẽ cần đến nó sau.

Như vậy là hoàn tất quá trình cài đặt và cấu hình InfluxDB. Tiếp theo, chúng ta cần cài đặt Telegraf.

Bước 4 - Cài đặt Telegraf​

Telegraf và InfluxDB chia sẻ cùng một kho lưu trữ. Điều này có nghĩa là bạn có thể cài đặt Telegraf trực tiếp.
Mã:
$ sudo dnf install telegraf
Bật và khởi động dịch vụ Telegraf.
Mã:
$ sudo systemctl enable telegraf
$ sudo systemctl start telegraf
Telegraf là một tác nhân được điều khiển bởi plugin và có 4 loại plugin:
  1. Plugin đầu vào thu thập số liệu.
  2. Plugin bộ xử lý chuyển đổi, trang trí và lọc số liệu thống kê.
  3. Các plugin tổng hợp tạo và tổng hợp số liệu thống kê.
  4. Các plugin đầu ra xác định các đích đến mà số liệu thống kê được gửi bao gồm cả InfluxDB.
Telegraf lưu trữ cấu hình của mình cho tất cả các plugin này trong tệp /etc/telegraf/telegraf.conf. Bước đầu tiên là kết nối Telegraf với InfluxDB bằng cách bật plugin đầu ra influxdb_v2. Mở tệp /etc/telegraf/telegraf.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/telegraf/telegraf.conf
Tìm dòng [[outputs.influxdb_v2]] và bỏ chú thích bằng cách xóa # ở phía trước. Chỉnh sửa mã bên dưới theo cách sau.
Mã:
[[outputs.influxdb_v2]] urls = ["http://localhost:8086"] token = "$INFLUX_TOKEN" organization = "howtoforge" bucket = "tigstack"
Dán giá trị mã thông báo InfluxDB đã lưu trước đó vào vị trí của biến $INFLUX_TOKEN trong mã ở trên.

Tìm kiếm dòng INPUT PLUGINS và bạn sẽ thấy các plugin đầu vào sau được bật theo mặc định.
Mã:
# Read metrics about cpu usage
[[inputs.cpu]] ## Whether to report per-cpu stats or not percpu = true ## Whether to report total system cpu stats or not totalcpu = true ## If true, collect raw CPU time metrics collect_cpu_time = false ## If true, compute and report the sum of all non-idle CPU states report_active = false
# Read metrics about disk usage by mount point
[[inputs.disk]] ## By default stats will be gathered for all mount points. ## Set mount_points will restrict the stats to only the specified mount points. # mount_points = ["/"] ## Ignore mount points by filesystem type. ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
[[inputs.diskio]]
....
....
# Get kernel statistics from /proc/stat
[[inputs.kernel]] # no configuration
# Read metrics about memory usage
[[inputs.mem]] # no configuration
# Get the number of processes and group them by status
[[inputs.processes]] # no configuration
# Read metrics about swap memory usage
[[inputs.swap]] # no configuration
# Read metrics about system load & uptime
[[inputs.system]] ## Uncomment to remove deprecated metrics.
Bạn có thể cấu hình các plugin đầu vào bổ sung tùy theo yêu cầu của mình, bao gồm Apache Server, Docker container, Elasticsearch, tường lửa iptables, Kubernetes, Memcached, MongoDB, MySQL, Nginx, PHP-fpm, Postfix, RabbitMQ, Redis, Varnish, Wireguard, PostgreSQL, v.v.

Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại dịch vụ Telegraf sau khi bạn hoàn tất việc áp dụng thay đổi.
Mã:
$ sudo systemctl restart telegraf

Bước 5 - Xác minh xem số liệu thống kê Telegraf có được lưu trữ trong InfluxDB không​

Trước khi tiến hành tiếp, bạn cần xác minh xem số liệu thống kê Telegraf có được thu thập và đưa vào InfluxDB một cách chính xác không. Mở Giao diện người dùng InfluxDB trong trình duyệt của bạn và truy cập Dữ liệu >> Buckets >> tigstack. Bạn sẽ được chào đón bằng trang sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22503%22%3E%3C/svg%3E


Nhấp vào tên thùng rồi nhấp vào một trong các giá trị trong bộ lọc _measurement và tiếp tục nhấp vào các giá trị khác khi chúng xuất hiện. Khi bạn hoàn tất, hãy nhấp vào nút Gửi. Bạn sẽ thấy một biểu đồ ở trên cùng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22399%22%3E%3C/svg%3E


Điều này sẽ xác nhận rằng dữ liệu đang được truyền đi một cách chính xác.

Bước 6 - Cài đặt Grafana​

Tạo và mở tệp /etc/yum.repos.d/grafana.repo cho chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/grafana.repo
Dán mã sau vào đó.
Mã:
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt Grafana.
Mã:
$ sudo dnf install grafana
Khởi động và kích hoạt dịch vụ Grafana.
Mã:
$ sudo systemctl start grafana-server
$ sudo systemctl enable grafana-server

Bước 7 - Thiết lập Nguồn dữ liệu Grafana​

Khởi chạy URL http://:3000 trong trình duyệt của bạn và trang đăng nhập Grafana sau đây sẽ chào đón bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22473%22%20height=%22750%22%3E%3C/svg%3E


Đăng nhập bằng tên người dùng mặc định admin và mật khẩu admin. Tiếp theo, bạn cần thiết lập mật khẩu mặc định mới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22612%22%20height=%22694%22%3E%3C/svg%3E


Bạn sẽ được chào đón bằng trang chủ Grafana sau. Nhấp vào nút Thêm nguồn dữ liệu đầu tiên của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22407%22%3E%3C/svg%3E


Nhấp vào nút InfluxDB.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22526%22%3E%3C/svg%3E


Trên trang tiếp theo, chọn Flux từ menu thả xuống làm ngôn ngữ truy vấn. Bạn có thể sử dụng InfluxQL làm ngôn ngữ truy vấn, nhưng cấu hình phức tạp hơn vì mặc định nó chỉ hỗ trợ InfluxDB v1.x. Flux hỗ trợ InfluxDB v2.x và dễ thiết lập và cấu hình hơn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22463%22%3E%3C/svg%3E


Nhập các giá trị sau.

URL: http://localhost:8086 Truy cập: Máy chủ Chi tiết xác thực cơ bản Người dùng: navjot Mật khẩu:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22639%22%20height=%22414%22%3E%3C/svg%3E


Chi tiết InfluxDB Tổ chức: howtoforge Mã thông báo: Gầu mặc định: tigstack


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22532%22%20height=%22480%22%3E%3C/svg%3E


Nhấp vào nút Lưu và kiểm tra và bạn sẽ thấy thông báo xác nhận thiết lập thành công.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22398%22%20height=%22210%22%3E%3C/svg%3E

Bước 8 - Thiết lập Grafana Dashboards​

Bước tiếp theo là thiết lập Grafana Dashboards. Nhấp vào dấu + và chọn Dashboards để mở màn hình Dashboard Create.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22359%22%20height=%22198%22%3E%3C/svg%3E


Ở trang tiếp theo, nhấp vào nút Add an empty panel để khởi chạy màn hình sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22407%22%3E%3C/svg%3E


Dán mã sau vào Trình chỉnh sửa truy vấn. Mã này
Mã:
from(bucket: "NAMEOFYOUBUCKET") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "cpu") |> filter(fn: (r) => r["_field"] == "usage_idle") |> filter(fn: (r) => r["cpu"] == "cpu-total") |> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> map(fn: (r) => ({ r with _value: r._value * -1.0 + 100.0 })) |> toFloat() |> yield(name: "mean")
Sử dụng tên thùng mà chúng tôi đã sử dụng ở trên. Và tên của máy chủ mà bạn có thể lấy từ tệp /etc/hostname.

Mã trên sẽ tính toán Mức sử dụng CPU và tạo biểu đồ cho nó. Đặt Tiêu đề cho Bảng điều khiển. Nhấp vào nút Trình kiểm tra truy vấn để xác minh xem truy vấn của bạn có hoạt động thành công không. Khi bạn đã hài lòng với kết quả, hãy nhấp vào nút Áp dụng để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22405%22%3E%3C/svg%3E


Bạn cũng có thể đặt tên cho trục bằng cách sử dụng trường Nhãn ở bên phải trong phần Trục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22307%22%20height=%22170%22%3E%3C/svg%3E


Nhấp vào nút Áp dụng để lưu bảng điều khiển.

Nhấp vào nút Lưu bảng điều khiển khi hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22363%22%3E%3C/svg%3E


Đặt tên cho bảng điều khiển và nhấp vào Lưu để hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22498%22%20height=%22345%22%3E%3C/svg%3E


Nó sẽ mở bảng điều khiển và sau đó nhấp vào nút Thêm bảng điều khiển để tạo một bảng điều khiển khác.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22480%22%3E%3C/svg%3E


Lặp lại quy trình bằng cách tạo một bảng điều khiển khác cho Mức sử dụng RAM.
Mã:
from(bucket: "NAMEOFYOUBUCKET") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "mem") |> filter(fn: (r) => r["_field"] == "used_percent") |> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> yield(name: "mean")
Và sử dụng mã sau để hiển thị Mức sử dụng HDD.
Mã:
from(bucket: "NAMEOFYOURBUCKET") |> range(start: v.timeRangeStart, stop: v.timeRangeStop) |> filter(fn: (r) => r["_measurement"] == "disk") |> filter(fn: (r) => r["_field"] == "used") |> filter(fn: (r) => r["path"] == "/") |> filter(fn: (r) => r["host"] == "NAMEOFYOURHOST") |> aggregateWindow(every: v.windowPeriod, fn: mean, createEmpty: false) |> map(fn: (r) => ({ r with _value: r._value / 1000000.0 })) |> toFloat() |> yield(name: "mean")
Bạn có thể tạo số lượng bảng điều khiển không giới hạn.

Mã trên dựa trên ngôn ngữ Flux Scripting. May mắn thay, bạn không cần phải học ngôn ngữ để viết truy vấn. Bạn có thể tạo truy vấn từ URL InfluxDB. 'Mặc dù việc học ngôn ngữ có thể có lợi trong việc tối ưu hóa các truy vấn.

Bạn cần quay lại bảng điều khiển InfluxDB và mở trang Khám phá để lấy truy vấn.

Nhấp vào tên thùng rồi nhấp vào một trong các giá trị trong bộ lọc _measurement và tiếp tục nhấp vào các giá trị khác khi chúng xuất hiện. Khi bạn hoàn tất, hãy nhấp vào nút Trình chỉnh sửa tập lệnh và bạn sẽ thấy trang sau. Biểu đồ cũng cần được cập nhật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22438%22%3E%3C/svg%3E



data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22362%22%3E%3C/svg%3E


Sao chép truy vấn được hiển thị và bây giờ bạn có thể sử dụng nó trong bảng điều khiển Grafana để xây dựng biểu đồ của mình.

Bước 9 - Cấu hình Cảnh báo và Thông báo​

Mục đích chính của việc thiết lập màn hình là để nhận cảnh báo kịp thời khi giá trị vượt quá ngưỡng nhất định.

Bước đầu tiên là thiết lập đích đến mà bạn muốn nhận cảnh báo. Bạn có thể nhận thông báo qua Email, Slack, Kafka, Google Hangouts Chat, Microsoft Teams, Telegram, v.v.

Chúng tôi sẽ bật thông báo qua email cho hướng dẫn của mình. Để thiết lập thông báo qua Email, trước tiên chúng ta cần cấu hình dịch vụ SMTP. Mở tệp /etc/grafana/grafana.ini để cấu hình SMTP.
Mã:
$ sudo nano /etc/grafana/grafana.ini
Tìm dòng sau [smtp] trong đó. Bỏ chú thích các dòng sau và nhập các giá trị cho máy chủ SMTP tùy chỉnh.
Mã:
[smtp]
enabled = true
host = email-smtp.us-west-2.amazonaws.com:587
user = YOURUSERNAME
# If the password contains # or ; you have to wrap it with triple quotes. Ex """#password;"""
password = YOURUSERPASSWORD
;cert_file =
;key_file =
;skip_verify = false
from_address = [emailprotected]
from_name = HowtoForge Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity = dashboard.example.com
# SMTP startTLS policy (defaults to 'OpportunisticStartTLS')
;startTLS_policy = NoStartTLS
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại máy chủ Grafana để áp dụng các cài đặt.
Mã:
$ sudo systemctl restart grafana-server
Mở trang Grafana và nhấp vào biểu tượng Cảnh báo và nhấp vào Kênh thông báo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22239%22%20height=%22400%22%3E%3C/svg%3E


Nhấp vào nút Thêm kênh.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22732%22%20height=%22359%22%3E%3C/svg%3E


Nhập thông tin chi tiết để thiết lập thông báo qua Email kênh.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22557%22%20height=%22750%22%3E%3C/svg%3E


Nhấp vào Kiểm tra để xem cài đặt email có hoạt động không. Nhấp vào Lưu khi hoàn tất.

Bây giờ chúng ta đã thiết lập kênh thông báo, chúng ta cần thiết lập cảnh báo về thời điểm nhận các email này. Để thiết lập cảnh báo, bạn cần quay lại bảng điều khiển.

Nhấp vào Bảng điều khiển >> Quản lý để mở trang Bảng điều khiển.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22220%22%20height=%22311%22%3E%3C/svg%3E


Nhấp vào bảng điều khiển mà chúng ta vừa tạo và bạn sẽ nhận được trang chủ của nó với các bảng điều khiển khác nhau. Để chỉnh sửa bảng điều khiển, hãy nhấp vào tên của bảng điều khiển và một menu thả xuống sẽ bật lên. Nhấp vào liên kết Chỉnh sửa để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22429%22%20height=%22149%22%3E%3C/svg%3E


Nhấp vào Bảng cảnh báo và nhấp vào nút Tạo cảnh báo để thiết lập cảnh báo mới.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22205%22%3E%3C/svg%3E


Bây giờ bạn có thể cấu hình các điều kiện mà Grafana sẽ gửi cảnh báo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22335%22%3E%3C/svg%3E

Quy tắc​

  • Tên - Nhập tên mô tả cho cảnh báo
  • Đánh giá mọi - Chỉ định tần suất Grafana nên đánh giá cảnh báo. Nó cũng được gọi là khoảng thời gian đánh giá. Bạn có thể đặt bất kỳ giá trị nào bạn muốn ở đây.
  • Đối với - Chỉ định khoảng thời gian truy vấn cần vi phạm ngưỡng trước khi cảnh báo được kích hoạt. Thay đổi thời gian theo nhu cầu của bạn.

Điều kiện​

Grafana hoạt động trên truy vấn có định dạng sau để xác định thời điểm khởi chạy cảnh báo.
Mã:
avg() OF query(A, 15m, now) IS BELOW 14
  • avg() kiểm soát cách giá trị cho từng chuỗi sẽ được giảm xuống thành giá trị tương đương với ngưỡng. Bạn có thể nhấp vào tên hàm để chọn một hàm khác như avg(), min(), max(), sum(), count(), v.v.

    data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22235%22%20height=%22301%22%3E%3C/svg%3E


  • query(A, 15m, now) Chữ cái trong ngoặc đơn xác định truy vấn nào sẽ thực thi từ tab Metrics. Hai tham số tiếp theo xác định phạm vi thời gian. 15m, now có nghĩa là từ 15 phút trước đến bây giờ.

  • IS BELOW 14 Xác định loại ngưỡng và giá trị ngưỡng. Bạn có thể nhấp vào IS BELOW để chọn một loại ngưỡng khác.


    data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22286%22%20height=%22176%22%3E%3C/svg%3E
Bạn có thể thêm điều kiện thứ hai bên dưới bằng cách nhấp vào nút + bên dưới điều kiện đầu tiên. Hiện tại, bạn chỉ có thể sử dụng toán tử ANDOR giữa nhiều điều kiện.

No Data & Xử lý lỗi​

Bạn có thể cấu hình cách Grafana xử lý các truy vấn không trả về dữ liệu hoặc chỉ trả về giá trị null bằng cách sử dụng các điều kiện sau:
  1. Không có dữ liệu - Đặt trạng thái quy tắc thành NoData
  2. Cảnh báo - Đặt trạng thái quy tắc thành Alerting
  3. Giữ trạng thái cuối cùng - Giữ trạng thái quy tắc hiện tại, bất kể trạng thái đó là gì
  4. Ok - Đặt trạng thái quy tắc cảnh báo thành Ok, tức là bạn sẽ nhận được cảnh báo ngay cả khi mọi thứ ổn.
Bạn có thể cho Grafana biết cách xử lý lỗi thực thi hoặc lỗi hết thời gian.
  1. Cảnh báo - Đặt trạng thái quy tắc thành Alerting
  2. Giữ trạng thái cuối cùng - Giữ nguyên trạng thái quy tắc hiện tại, bất kể trạng thái đó là gì

Thông báo​

Bạn có thể chỉ định thông báo quy tắc cảnh báo cùng với thông báo chi tiết về quy tắc. Bạn có thể thêm bất kỳ thông tin nào bạn muốn đưa vào tin nhắn hoặc thông tin liên quan đến cảnh báo mà bạn muốn đưa vào.
  1. Gửi đến - Chọn kênh thông báo mà chúng ta đã định cấu hình trước đó để gửi cảnh báo.
  2. Tin nhắn - Nhập tin nhắn văn bản để gửi cùng với cảnh báo của bạn.
  3. Thẻ - Chỉ định danh sách các thẻ (khóa/giá trị) sẽ được đưa vào thông báo. Không phải tất cả các kênh thông báo (bao gồm cả Email) đều hỗ trợ các thẻ này, vì vậy bạn có thể để trống. Chúng thường được dùng để gửi các biến và giá trị của chúng trong thư.
Sau khi hoàn tất, hãy nhấp vào nút Kiểm tra quy tắc để xem mọi thứ có hoạt động tốt không. Nhấp vào nút Áp dụng ở trên cùng bên phải để hoàn tất việc thêm cảnh báo.

Bây giờ bạn sẽ bắt đầu nhận được cảnh báo trên email của mình.

Kết luận​

Như vậy là kết thúc phần hướng dẫn về cài đặt và định cấu hình TIG Stack trên máy chủ Rocky Linux 8 Based. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng vào phần bình luận bên dưới.
 
Back
Bên trên