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 hoán đổi, 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 trạng thái của tường lửa.
Bạn sẽ thấy nội dung tương tự như sau.
Mở cổng 8086 cho InfluxDB và 3000 cho Grafana máy chủ.
Cho phép các cổng HTTP và HTTPs.
Kiểm tra lại trạng thái để xác nhận.
Tải xuống InfluxDB GPG key.
Nhập khóa GPG vào máy chủ.
Nhập InfluxDB kho lưu trữ.
Cập nhật danh sách kho lưu trữ của hệ thống.
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 dịch vụ InfluxDB.
Kiểm tra trạng thái của dịch vụ.
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 Dòng chảy.
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 đó. Thông tin chi tiết của bạn được lưu trữ trong tệp
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=%22315%22%20height=%22750%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=%22422%22%3E%3C/svg%3E
Quá trình thiết lập ban đầu sẽ tạo một token có quyền đọc và ghi đầy đủ vào tất cả các tổ chức trong cơ sở dữ liệu. Bạn cần một token mới cho mục đích bảo mật, token này sẽ chỉ kết nối với tổ chức và bucket mà chúng ta muốn kết nối.
Để tạo một token mới, hãy nhấp vào biểu tượng sau từ thanh bên trái và nhấp vào liên kết API Tokens để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22174%22%20height=%22205%22%3E%3C/svg%3E
Bạn sẽ được đưa đến trang API Tokens. Tại đây, bạn sẽ thấy mã thông báo mặc định mà chúng tôi đã tạo tại thời điểm cấu hình ban đầu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22441%22%3E%3C/svg%3E
Nhấp vào nút Tạo mã thông báo API và chọn tùy chọn Mã thông báo API tùy chỉnh để khởi chạy cửa sổ bật lên lớp phủ mới. Đặt tên cho Token (
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22670%22%3E%3C/svg%3E
Nhấp vào Tạo để hoàn tất việc tạo token. Nhấp vào nút COPY TO CLIPBOARD để sao chép mã thông báo. Nút này có thể không hoạt động trong một số trường hợp, vì vậy hãy đảm bảo xác nhận trước khi đóng cửa sổ bật lên.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22744%22%20height=%22271%22%3E%3C/svg%3E
Lưu lại 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.
Dịch vụ của Telegraf được bật và tự động bắt đầu trong quá trình cài đặt.
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 các thay đổi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22536%22%3E%3C/svg%3E
Nhấp vào tigstack và bạn sẽ được chào đón bằng trang sau.
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=%22469%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.
Thêm kho lưu trữ vào hệ thống của bạn.
Nếu bạn muốn cài đặt Grafana beta, hãy thêm kho lưu trữ sau thay vào đó.
Cập nhật danh sách kho lưu trữ hệ thống.
Cài đặt Grafana.
Khởi động và kích hoạt dịch vụ Grafana.
Kiểm tra dịch vụ trạng thái.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22689%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=%22750%22%20height=%22741%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=%22532%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=%22583%22%3E%3C/svg%3E
Trên trang tiếp theo, hãy 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=%22476%22%3E%3C/svg%3E
Nhập các giá trị sau.
URL:
Chi tiết InfluxDB Tổ chức: howtoforge Mã thông báo:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22489%22%20height=%22750%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=%22750%22%20height=%22198%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22349%22%20height=%22375%22%3E%3C/svg%3E
Nhấp vào nút Create Dashboard để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22343%22%3E%3C/svg%3E
Ở trang tiếp theo, nhấp vào nút Thêm hình ảnh để khởi chạy lớp phủ và nhấp vào
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22643%22%3E%3C/svg%3E
Bạn sẽ được đưa đến trang Bảng chỉnh sửa sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22463%22%3E%3C/svg%3E
Dán mã sau vào Truy vấn Biên tập viên.
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22486%22%3E%3C/svg%3E
Nhấp vào nút Trình kiểm tra truy vấn rồi nhấp vào nút Làm mới để xác minh xem truy vấn của bạn có hoạt động thành công không. Nhấp vào biểu tượng dấu thập để đóng trình kiểm tra.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22640%22%20height=%22750%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=%22392%22%20height=%22236%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=%22293%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=%22627%22%20height=%22397%22%3E%3C/svg%3E
Nó sẽ mở bảng điều khiển và sau đó nhấp vào nút Thêm hình ảnh để 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=%22307%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.
Sử dụng mã sau để hiển thị ổ cứng Sử dụng.
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 Explore để 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=%22495%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22407%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, nhấp vào Biểu tượng cảnh báo và nhấp vào Điểm liên hệ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22347%22%20height=%22270%22%3E%3C/svg%3E
Grafana tự động tạo và thiết lập điểm liên hệ email mặc định phải được cấu hình với địa chỉ email chính xác. Nhấp vào nút chỉnh sửa trên điểm liên hệ
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Nhập thông tin chi tiết để thiết lập kênh thông báo qua Email.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22579%22%3E%3C/svg%3E
Nếu bạn muốn gửi thêm tin nhắn, hãy nhấp vào liên kết Cài đặt email tùy chọn và nhập tin nhắn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22554%22%20height=%22298%22%3E%3C/svg%3E
Nhấp vào Kiểm tra để mở cửa sổ bật lên rồi nhấp vào nút Gửi thông báo thử nghiệm để xem cài đặt email có hoạt động không. Nhấp vào Lưu điểm liên hệ khi hoàn tất.
Bạn sẽ nhận được email sau để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22648%22%20height=%22750%22%3E%3C/svg%3E
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 những email này. Để thiết lập cảnh báo, bạn cần quay lại bảng điều khiển.
Quay lại màn hình Bảng điều khiển. 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 bảng điều khiể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=%22485%22%20height=%22357%22%3E%3C/svg%3E
Nhấp vào Bảng điều khiển cảnh báo và nhấp vào nút Quy tắc cảnh báo mới để thiết lập cảnh báo mới. Chúng tôi đang tạo cảnh báo cho bảng điều khiển sử dụng CPU.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22528%22%20height=%22193%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. Nhấp vào menu thả xuống liên kết Tùy chọn và chọn phạm vi thời gian mặc định (từ bây giờ đến 6 giờ) để thay đổi phạm vi thời gian thành 15 phút cuối, nghĩa là nó sẽ kiểm tra từ 15 phút trước đến bây giờ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E
Theo mặc định, loại cảnh báo được chọn là cảnh báo do Grafana quản lý. Có hai biểu thức được chọn theo mặc định. Xóa chúng bằng cách nhấn nút thùng rác vào chúng. Chọn menu thả xuống Thêm biểu thức và chọn Điều kiện cổ điển làm loại biểu thức.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22566%22%20height=%22213%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22690%22%20height=%22300%22%3E%3C/svg%3E
Nhấp vào Đặt làm điều kiện cảnh báo để chọn biểu thức đã chọn để gửi cảnh báo. Làm như vậy sẽ thay đổi hộp biểu thức như hiển thị bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22692%22%20height=%22329%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22237%22%20height=%22344%22%3E%3C/svg%3E
Tiếp theo, chúng ta sẽ thiết lập hành vi đánh giá. Nhấp vào nút New folder để tạo một thư mục lưu trữ các quy tắc của bạn. Nhấp vào nút New evaluation group để tạo một nhóm các quy tắc nhóm sẽ được đánh giá sau cùng một khoảng thời gian. Đặt khoảng thời gian là 5 phút khi tạo nhóm.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22529%22%20height=%22338%22%3E%3C/svg%3E
Sau khi hoàn tất, trang sẽ trông như sau. Đặt Trạng thái cảnh báo nếu có lỗi thực thi hoặc hết thời gian chờ thành Đang cảnh báo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22706%22%20height=%22588%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22673%22%20height=%22666%22%3E%3C/svg%3E
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản chính của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Kiểm tra xem Certbot có hoạt động bình thường không.
Chạy lệnh sau để tạo SSL Chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo và mở tệp
Dán mã sau vào đó. Thay thế
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh Nginx của bạn cấu hình.
Khởi động lại máy chủ Nginx.
Tìm kiếm phần
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.
Tìm phần
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 Grafana Máy chủ.
Grafana có thể truy cập được tại
- 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 đẹp mắt và phân tích số liệu 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 Debian 12 với tối thiểu 1 GB RAM.
-
Một người dùng không dùng sudo có quyền root.
-
Tường lửa đơn giản (UFW) được bật và đang chạy.
-
Một Tên miền đủ điều kiện (FQDN) nhưgrafana.example.com
trỏ đến máy chủ của bạn.
-
Một tài khoản SMTP có dịch vụ email như Amazon SES hoặc Mailgun để nhận thông báo qua email về các cảnh báo dịch vụ.
-
Đảm bảo mọi thứ đều được cập nhật.
Mã:$ sudo apt update && sudo apt upgrade
-
Cần có một số gói thiết yếu để chạy hướng dẫn và Craft CMS. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Bước 1 - Cấu hình Tường lửa
Trước khi cài đặt bất kỳ gói nào, bước đầu tiên là cấu hình tường lửa để mở cổng cho InfluxDB và Grafana.Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Mã:
$ sudo ufw allow 8086
$ sudo ufw allow 3000
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
8086 ALLOW Anywhere
3000 ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
8086 (v6) ALLOW Anywhere (v6)
3000 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt InfluxDB
Chúng tôi sẽ sử dụng kho lưu trữ chính thức của InfluxDB để cài đặt nó.Tải xuống InfluxDB GPG key.
Mã:
$ wget -q https://repos.influxdata.com/influxdata-archive_compat.key
Mã:
$ echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
influxdata-archive_compat.key: OK
Mã:
$ echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install influxdb2
Mã:
$ sudo systemctl start influxdb
Mã:
$ sudo systemctl status influxdb
? influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; preset: enabled) Active: active (running) since Tue 2024-01-02 02:39:41 UTC; 1s ago Docs: https://docs.influxdata.com/influxdb/ Process: 5584 ExecStart=/usr/lib/influxdb/scripts/influxd-systemd-start.sh (code=exited, status=0/SUCCESS) Main PID: 5585 (influxd) Tasks: 8 (limit: 2299) Memory: 53.1M CPU: 735ms CGroup: /system.slice/influxdb.service ??5585 /usr/bin/influxd
........
Bước 3 - Tạo cơ sở dữ liệu InfluxDB và thông tin xác thực 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 Influx và người dùng.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ư là công cụ dòng lệnh mysql
.Chạy lệnh sau để thực hiện cấu hình ban đầu cho Dòng chảy.
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
User Organization Bucket
navjot howtoforge tigstack
/home/username/.influxdbv2/configs
.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 bằng thông tin đăng nhập đã tạo ở trên.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22315%22%20height=%22750%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=%22422%22%3E%3C/svg%3E
Quá trình thiết lập ban đầu sẽ tạo một token có quyền đọc và ghi đầy đủ vào tất cả các tổ chức trong cơ sở dữ liệu. Bạn cần một token mới cho mục đích bảo mật, token này sẽ chỉ kết nối với tổ chức và bucket mà chúng ta muốn kết nối.
Để tạo một token mới, hãy nhấp vào biểu tượng sau từ thanh bên trái và nhấp vào liên kết API Tokens để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22174%22%20height=%22205%22%3E%3C/svg%3E
Bạn sẽ được đưa đến trang API Tokens. Tại đây, bạn sẽ thấy mã thông báo mặc định mà chúng tôi đã tạo tại thời điểm cấu hình ban đầu.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22441%22%3E%3C/svg%3E
Nhấp vào nút Tạo mã thông báo API và chọn tùy chọn Mã thông báo API tùy chỉnh để khởi chạy cửa sổ bật lên lớp phủ mới. Đặt tên cho Token (
telegraf
) và mở rộng phần Tài nguyên rồi 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=%22750%22%20height=%22670%22%3E%3C/svg%3E
Nhấp vào Tạo để hoàn tất việc tạo token. Nhấp vào nút COPY TO CLIPBOARD để sao chép mã thông báo. Nút này có thể không hoạt động trong một số trường hợp, vì vậy hãy đảm bảo xác nhận trước khi đóng cửa sổ bật lên.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22744%22%20height=%22271%22%3E%3C/svg%3E
Lưu lại 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 apt install telegraf
Telegraf là một tác nhân được điều khiển bởi plugin và có 4 loại plugin:
- Các plugin đầu vào thu thập số liệu.
- Các plugin xử lý chuyển đổi, trang trí và lọc số liệu.
- Các plugin tổng hợp tạo và tổng hợp số liệu.
- Các plugin đầu ra xác định các đích đến mà số liệu đượ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ã:
# # Configuration for sending metrics to InfluxDB 2.0 [[outputs.influxdb_v2]]
# ## The URLs of the InfluxDB cluster nodes.
# ##
# ## Multiple URLs can be specified for a single cluster, only ONE of the
# ## urls will be written to each interval.
# ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"] urls = ["http://127.0.0.1:8086"]
#
# ## Token for authentication. token = "$INFLUX_TOKEN"
#
# ## Organization is the name of the organization you wish to write to. organization = "howtoforge"
#
# ## Destination bucket to write into. 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 ## If true and the info is available then add core_id and physical_id tags core_tags = 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"] ## Ignore mount points by mount options. ## The 'mount' command reports options of all mounts in parathesis. ## Bind mounts can be ignored with the special 'bind' option. # ignore_mount_opts = []
# Read metrics about disk IO by device
[[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]] # no configuration
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 các 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 hay không
Trước khi tiến hành các bước tiếp theo, 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 hay không. Mở Giao diện người dùng InfluxDB trong trình duyệt của bạn, nhấp vào biểu tượng thứ hai từ thanh bên trái và chọn menu Buckets.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22536%22%3E%3C/svg%3E
Nhấp vào tigstack và bạn sẽ được chào đón bằng trang sau.
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. Bạn có thể cần đợi một lúc để dữ liệu xuất hiện. Chúng tôi đã dịch chuyển khoảng thời gian từ 1 giờ qua thành 5 phút qua để tạo biểu đồ trên một khu vực rộng lớn.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22469%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
Chúng tôi sẽ sử dụng kho lưu trữ Grafana chính thức để cài đặt nó. Nhập khóa Grafana GPG.
Mã:
$ sudo mkdir -p /etc/apt/keyrings/
$ wget -q -O - https://apt.grafana.com/gpg.key | gpg --dearmor | sudo tee /etc/apt/keyrings/grafana.gpg > /dev/null
Mã:
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Mã:
$ echo "deb [signed-by=/etc/apt/keyrings/grafana.gpg] https://apt.grafana.com beta main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install grafana
Mã:
$ sudo systemctl enable grafana-server --now
Mã:
$ sudo systemctl status grafana-server
? grafana-server.service - Grafana instance Loaded: loaded (/lib/systemd/system/grafana-server.service; enabled; preset: enabled) Active: active (running) since Tue 2024-01-02 03:48:01 UTC; 3s ago Docs: http://docs.grafana.org Main PID: 8769 (grafana) Tasks: 7 (limit: 2299) Memory: 42.6M CPU: 1.804s CGroup: /system.slice/grafana-server.service ??8769 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.paths...
.......
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=%22750%22%20height=%22689%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=%22750%22%20height=%22741%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=%22532%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=%22583%22%3E%3C/svg%3E
Trên trang tiếp theo, hãy 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=%22476%22%3E%3C/svg%3E
Nhập các giá trị sau.
URL:
http://localhost:8086
Chi tiết xác thực cơ bản Người dùng: navjot Mật khẩu:
Chi tiết InfluxDB Tổ chức: howtoforge Mã thông báo:
Gầu mặc định: tigstackdata:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22489%22%20height=%22750%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=%22750%22%20height=%22198%22%3E%3C/svg%3E
Bước 8 - Thiết lập Bảng điều khiển Grafana
Bước tiếp theo là thiết lập Grafana Dashboards. Nhấp vào menu hamburger ở bên trái Trang chủ và nhấp vào Dashboards để mở màn hình Dashboard Create.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22349%22%20height=%22375%22%3E%3C/svg%3E
Nhấp vào nút Create Dashboard để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22343%22%3E%3C/svg%3E
Ở trang tiếp theo, nhấp vào nút Thêm hình ảnh để khởi chạy lớp phủ và nhấp vào
influxdb-1
để chọn lớp phủ đó làm nguồn dữ liệu.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22643%22%3E%3C/svg%3E
Bạn sẽ được đưa đến trang Bảng chỉnh sửa sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22463%22%3E%3C/svg%3E
Dán mã sau vào Truy vấn Biên tập viên.
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22486%22%3E%3C/svg%3E
Nhấp vào nút Trình kiểm tra truy vấn rồi nhấp vào nút Làm mới để xác minh xem truy vấn của bạn có hoạt động thành công không. Nhấp vào biểu tượng dấu thập để đóng trình kiểm tra.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22640%22%20height=%22750%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=%22392%22%20height=%22236%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=%22293%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=%22627%22%20height=%22397%22%3E%3C/svg%3E
Nó sẽ mở bảng điều khiển và sau đó nhấp vào nút Thêm hình ảnh để 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=%22307%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 Explore để 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 Script Editor 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=%22495%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22407%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=%22347%22%20height=%22270%22%3E%3C/svg%3E
Grafana tự động tạo và thiết lập điểm liên hệ email mặc định phải được cấu hình với địa chỉ email chính xác. Nhấp vào nút chỉnh sửa trên điểm liên hệ
grafana-default-email
.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Nhập thông tin chi tiết để thiết lập kênh thông báo qua Email.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22579%22%3E%3C/svg%3E
Nếu bạn muốn gửi thêm tin nhắn, hãy nhấp vào liên kết Cài đặt email tùy chọn và nhập tin nhắn.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22554%22%20height=%22298%22%3E%3C/svg%3E
Nhấp vào Kiểm tra để mở cửa sổ bật lên rồi nhấp vào nút Gửi thông báo thử nghiệm để xem cài đặt email có hoạt động không. Nhấp vào Lưu điểm liên hệ khi hoàn tất.
Bạn sẽ nhận được email sau để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22648%22%20height=%22750%22%3E%3C/svg%3E
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 những email này. Để thiết lập cảnh báo, bạn cần quay lại bảng điều khiển.
Quay lại màn hình Bảng điều khiển. 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 bảng điều khiể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=%22485%22%20height=%22357%22%3E%3C/svg%3E
Nhấp vào Bảng điều khiển cảnh báo và nhấp vào nút Quy tắc cảnh báo mới để thiết lập cảnh báo mới. Chúng tôi đang tạo cảnh báo cho bảng điều khiển sử dụng CPU.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22528%22%20height=%22193%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. Nhấp vào menu thả xuống liên kết Tùy chọn và chọn phạm vi thời gian mặc định (từ bây giờ đến 6 giờ) để thay đổi phạm vi thời gian thành 15 phút cuối, nghĩa là nó sẽ kiểm tra từ 15 phút trước đến bây giờ.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22255%22%3E%3C/svg%3E
Theo mặc định, loại cảnh báo được chọn là cảnh báo do Grafana quản lý. Có hai biểu thức được chọn theo mặc định. Xóa chúng bằng cách nhấn nút thùng rác vào chúng. Chọn menu thả xuống Thêm biểu thức và chọn Điều kiện cổ điển làm loại biểu thức.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22566%22%20height=%22213%22%3E%3C/svg%3E
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22690%22%20height=%22300%22%3E%3C/svg%3E
Nhấp vào Đặt làm điều kiện cảnh báo để chọn biểu thức đã chọn để gửi cảnh báo. Làm như vậy sẽ thay đổi hộp biểu thức như hiển thị bên dưới.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22692%22%20height=%22329%22%3E%3C/svg%3E
Đ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) IS ABOVE 0.8
- avg() kiểm soát cách giá trị của mỗi chuỗi sẽ được giảm xuống một giá trị tương đương so 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=%22237%22%20height=%22344%22%3E%3C/svg%3E
-
query(A) Chữ cái trong ngoặc vuông xác định truy vấn nào sẽ thực thi từ tab Metrics.
-
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=%22166%22%20height=%22198%22%3E%3C/svg%3E
Tiếp theo, chúng ta sẽ thiết lập hành vi đánh giá. Nhấp vào nút New folder để tạo một thư mục lưu trữ các quy tắc của bạn. Nhấp vào nút New evaluation group để tạo một nhóm các quy tắc nhóm sẽ được đánh giá sau cùng một khoảng thời gian. Đặt khoảng thời gian là 5 phút khi tạo nhóm.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22529%22%20height=%22338%22%3E%3C/svg%3E
Sau khi hoàn tất, trang sẽ trông như sau. Đặt Trạng thái cảnh báo nếu có lỗi thực thi hoặc hết thời gian chờ thành Đang cảnh báo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22706%22%20height=%22588%22%3E%3C/svg%3E
Quy tắc
- Tên - Nhập tên mô tả cho cảnh báo
- Thư mục - Tạo hoặc chọn thư mục có sẵn để lưu trữ quy tắc thông báo của bạn.
- Nhóm - Nhập tên cho nhóm cảnh báo của bạn. Các cảnh báo trong một nhóm duy nhất được đánh giá sau cùng một khoảng thời gian.
- Đang chờ - Chỉ định tần suất Grafana sẽ đá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.
Không có dữ liệu & 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á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
- Ok - Đặt trạng thái quy tắc cảnh báo thành
Ok
, vì 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
- Ok - Đặt trạng thái quy tắc cảnh báo thành
Ok
, vì bạn sẽ nhận được cảnh báo ngay cả khi mọi thứ vẫn ổn. - Lỗi - Đặt trạng thái quy tắc cảnh báo thành Lỗi để chỉ ra rằng có sự cố.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22673%22%20height=%22666%22%3E%3C/svg%3E
Bước 10 - Cài đặt Nginx
Debian 12 đi kèm với phiên bản Nginx cũ hơn. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.25.3
Mã:
$ sudo systemctl start nginx
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Tue 2024-01-02 09:21:10 UTC; 5s ago Docs: https://nginx.org/en/docs/ Process: 12964 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 12965 (nginx) Tasks: 3 (limit: 2299) Memory: 2.9M CPU: 86ms CGroup: /system.slice/nginx.service ??12965 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??12966 "nginx: worker process" ??12967 "nginx: worker process"
Jan 02 09:21:10 grafana systemd[1]: Starting nginx.service - nginx - high performance web server...
Jan 02 09:21:10 grafana systemd[1]: Started nginx.service - nginx - high performance web server.
Bước 11 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd.Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.8.0
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d grafana.example.com
/etc/letsencrypt/live/grafana.example.com
trên máy chủ của bạn.Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
-----------------------------------------------------------------------------------------------------------------------------------------
Tue 2024-01-02 15:24:52 UTC 6h left Mon 2024-01-01 15:24:52 UTC 17h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Tue 2024-01-02 20:05:29 UTC 10h left Tue 2024-01-02 09:02:47 UTC 21min ago apt-daily.timer apt-daily.service
Tue 2024-01-02 20:35:00 UTC 11h left - - snap.certbot.renew.timer snap.certbot.renew.service
Mã:
$ sudo certbot renew --dry-run
Bước 12 - Cấu hình Nginx cho Grafana và InfluxDB
Mở tệp/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Tạo và mở tệp
/etc/nginx/conf.d/grafana.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/grafana.conf
grafana.example.com
bằng tên miền của bạn.
Mã:
map $http_upgrade $connection_upgrade { default upgrade; '' close;
}
server { listen 443 ssl reuseport; listen [::]:443 ssl reuseport; http2 on; server_name grafana.example.com; access_log /var/log/nginx/grafana.access.log; error_log /var/log/nginx/grafana.error.log; ssl_certificate /etc/letsencrypt/live/grafana.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/grafana.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/grafana.example.com/chain.pem; ssl_session_timeout 5m; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1; ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem; resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=60s; resolver_timeout 2s; location / { proxy_set_header Host $http_host; proxy_pass http://localhost:3000; } location /api/live { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $http_host; proxy_pass http://localhost:3000; } location /influxdb/ { access_log /var/log/nginx/influx.access.log; error_log /var/log/nginx/influx.error.log; rewrite ^/influxdb$ /influxdb/ permanent; rewrite ^/influxdb/(.*)$ /$1 break; proxy_cookie_path ~*^/api /influxdb/api; proxy_connect_timeout 600s; proxy_http_version 1.1; proxy_pass http://localhost:8086; proxy_read_timeout 600s; proxy_send_timeout 600s; proxy_set_header Authorization $http_authorization; proxy_set_header Connection "upgrade"; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Real-IP $remote_addr; sub_filter '' ''; sub_filter 'src="/' 'src="/influxdb/'; sub_filter 'href="/' 'href="/influxdb/'; sub_filter 'data-basepath="' 'data-basepath="/influxdb/'; sub_filter 'n.p="/"' 'n.p="/influxdb/"'; sub_filter 'o.p="/"' 'o.p="/influxdb/"'; sub_filter '/api/' '/influxdb/api/'; sub_filter 'api/v2/query' 'influxdb/api/v2/query'; sub_filter '/health`' '/influxdb/health`'; sub_filter_types text/css text/javascript application/javascript application/json; sub_filter_once off; }
}
# enforce HTTPS
server { listen 80; listen [::]:80; server_name grafana.example.com; return 301 https://$host$request_uri;
}
Xác minh Nginx của bạn cấu hình.
Mã:
$ sudo nginx -t
Mã:
$ sudo systemctl restart nginx
Cấu hình Telegraf cho HTTPS
Mở tệp/etc/telegraf/telegraf.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/telegraf/telegraf.conf
[[outputs.influxdb_v2]]
và thay đổi giá trị của URL thành https://grafana.nspeaks.com/influxdb
để dữ liệu giữa InfluxDB và Telegraf là đã bảo mật.
Mã:
urls = ["https://grafana.example.com/influxdb"]
Khởi động lại dịch vụ Telegraf.
Mã:
$ sudo systemctl restart telegraf
Cấu hình Grafana cho HTTPS
Tiếp theo, chúng ta cần cấu hình Grafana để truy cập HTTPS. Mở tệp/etc/grafana/grafana.ini
để chỉnh sửa.
Mã:
$ sudo nano /etc/grafana/grafana.ini
[server]
và thay đổi biến domain
và root_url
như sau.
Mã:
# The public facing domain name used to access grafana from a browser
;domain = localhost
domain = grafana.example.com
# Redirect to correct domain if host header does not match domain
# Prevents DNS rebinding attacks
;enforce_domain = true
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
root_url = %(protocol)s://%(domain)s
Khởi động lại Grafana Máy chủ.
Mã:
$ sudo systemctl restart grafana-server
Đóng cổng tường lửa cho InfluxDB và Grafana
Bạn cũng nên đóng cổng InfluxDB và Grafana.
Mã:
$ sudo ufw delete allow 8086
$ sudo ufw delete allow 3000
https://grafana.example.com
và Giao diện người dùng và API InfluxDB đều có thể truy cập được tại URL https://grafana.example.com/influxdb
.