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:
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ nhận được kết quả sau.
Kiểm tra các dịch vụ/cổng hiện được phép.
Nó sẽ hiển thị đầu ra sau.
Cho phép Cổng 8086 để chạy InfluxDB và cổng 3000 để chạy Grafana Server.
Tải lại tường lửa.
Tạo và mở tệp
Dán mã sau vào nó.
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.
Khởi động và kích hoạt dịch vụ InfluxDB.
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
Chạy lệnh sau để thực hiện cấu hình ban đầu cho Influx.
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
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 Đọc và Ghi.
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ật và khởi động dịch vụ Telegraf.
Telegraf là một tác nhân được điều khiển bởi plugin và có 4 loại plugin:
Tìm dòng
Dán giá trị mã thông báo InfluxDB đã lưu trước đó vào vị trí của biến
Tìm kiếm dòng
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.
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
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.
Dán mã sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Cài đặt Grafana.
Khởi động và kích hoạt dịch vụ Grafana.
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
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
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
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
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.
Và sử dụng mã sau để hiển thị Mức sử dụng HDD.
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
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 đầ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
Tìm dòng sau
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ở 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
Bây giờ bạn sẽ bắt đầu nhận được cảnh báo trên email của mình.
- 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.
Điều kiện tiên quyết
-
Một máy chủ chạy Rocky Linux 8.
-
Một người dùng không phải sudo có quyền root.
-
SELinux đã bị vô hiệu hóa.
-
Đả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
Mã:
running
Mã:
$ sudo firewall-cmd --permanent --list-services
Mã:
cockpit dhcpv6-client ssh
Mã:
$ sudo firewall-cmd --permanent --add-port=8086/tcp
$ sudo firewall-cmd --permanent --add-port=3000/tcp
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
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
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
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ũ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 Đọc và Ghi.
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
Mã:
$ sudo systemctl enable telegraf
$ sudo systemctl start telegraf
- Plugin đầu vào thu thập số liệu.
- Plugin bộ xử lý chuyển đổi, trang trí và lọc số liệu thống kê.
- Các plugin tổng hợp tạo và tổng hợp số liệu thống kê.
- 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.
/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
[[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"
$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.
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
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
Cài đặt Grafana.
Mã:
$ sudo dnf install 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 URLhttp://: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")
/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")
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")
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
[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
Khởi động lại máy chủ Grafana để áp dụng các cài đặt.
Mã:
$ sudo systemctl restart grafana-server
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
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:- Không có dữ liệu - Đặt trạng thái quy tắc thành
NoData
- Cảnh báo - Đặt trạng thái quy tắc thành
Alerting
- 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ì
- 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.
- Cảnh báo - Đặt trạng thái quy tắc thành
Alerting
- 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.- 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.
- 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.
- 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ư.
Bây giờ bạn sẽ bắt đầu nhận được cảnh báo trên email của mình.