Grafana là một nền tảng trực quan hóa dữ liệu đa nền tảng và mã nguồn mở do Grafana Labs phát triển. Grafana cung cấp một ứng dụng web trực quan hóa dữ liệu tương tác bao gồm biểu đồ, đồ thị và cảnh báo. Với Grafana, bạn có thể truy vấn, trực quan hóa, thiết lập cảnh báo và khám phá các số liệu, nhật ký và dấu vết của TSDB. Đây là một công cụ mạnh mẽ biến dữ liệu cơ sở dữ liệu chuỗi thời gian (TSDB) thành biểu đồ và trực quan hóa sâu sắc.
Trong Grafana, bạn có thể thêm dữ liệu cơ sở dữ liệu chuỗi thời gian của mình thông qua 'Nguồn dữ liệu'. Grafana hỗ trợ nhiều nguồn dữ liệu như Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor và nhiều nguồn khác nữa.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Grafana, Prometheus và node_exporter trên máy chủ Ubuntu 24.04. Bạn cũng sẽ cài đặt Nginx làm proxy ngược cho Grafana, tích hợp node_exporter và Prometheus, sau đó thêm Prometheus làm nguồn dữ liệu vào bảng điều khiển Grafana.
Đầu tiên, hãy chạy lệnh bên dưới để cài đặt các phụ thuộc cho Grafana. Nhập
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22306%22%3E%3C/svg%3E
Bây giờ hãy thêm khóa Grafana GPG và kho lưu trữ với nội dung sau lệnh.
Sau đó, cập nhật và làm mới chỉ mục gói của bạn bằng lệnh bên dưới:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Để cài đặt Grafana, hãy chạy lệnh sau Lệnh
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22307%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy tải lại trình quản lý systemd bằng lệnh bên dưới:
Bây giờ bạn có thể bắt đầu và kích hoạt
Trong kết quả đầu ra sau, bạn có thể thấy
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Với
Mở cấu hình Grafana
Thay đổi cấu hình mặc định bằng lệnh sau. Đảm bảo thay đổi tùy chọn
Khi hoàn tất, hãy lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh bên dưới để khởi động lại
Tạo cấu hình khối máy chủ Nginx mới
Thêm cấu hình sau để thiết lập Nginx làm proxy ngược cho Grafana. Đảm bảo thay đổi tùy chọn
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh sau để kích hoạt
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh
Bạn sẽ thấy máy chủ web Nginx đang chạy:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22219%22%3E%3C/svg%3E
Tiếp theo, hãy truy cập tên miền Grafana của bạn như http://howtoforge.local/. Nếu cài đặt thành công, bạn sẽ được nhắc đến trang đăng nhập Grafana.
Đăng nhập bằng người dùng mặc định
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22531%22%20height=%22550%22%3E%3C/svg%3E
Sau khi đăng nhập, hãy nhập mật khẩu mới cho cài đặt Grafana của bạn và nhấp vào Gửi để xác nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22521%22%20height=%22658%22%3E%3C/svg%3E
Bạn sẽ thấy bảng điều khiển Grafana như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22388%22%3E%3C/svg%3E
Trước tiên, hãy chạy lệnh bên dưới để thêm người dùng và nhóm mới
Tạo thư mục dữ liệu mới
Tải xuống Prometheus phiên bản mới nhất cho Linux với các nội dung sau lệnh.
Sau khi tải xuống, hãy giải nén tệp nhị phân Prometheus bằng lệnh
Di chuyển tệp nhị phân
Cuối cùng, hãy chạy lệnh bên dưới để thay đổi quyền và quyền sở hữu thư mục dữ liệu và cấu hình Prometheus cho người dùng
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22118%22%3E%3C/svg%3E
Cài đặt Gói
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22303%22%3E%3C/svg%3E
Bây giờ hãy chạy Lệnh
Tiếp theo, chạy lệnh
Thêm cấu hình sau và đảm bảo thay đổi mật khẩu bcrypt bên dưới.
Lưu và thoát tệp khi hoàn tất.
Bây giờ hãy mở cấu hình Prometheus mặc định
Thay đổi mặc định
Lưu và thoát tệp.
Cuối cùng, chạy lệnh bên dưới để thay đổi quyền sở hữu tệp
Thêm các dòng sau vào tệp. Với điều này, bạn sẽ chạy Prometheus ở chế độ nền như một dịch vụ systemd và bảng điều khiển web an toàn thông qua tệp
Lưu tệp và thoát khỏi trình chỉnh sửa.
Bây giờ hãy chạy lệnh bên dưới để tải lại trình quản lý systemd và áp dụng thay đổi.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22351%22%3E%3C/svg%3E
Sau đó, khởi động và kích hoạt
Trong kết quả đầu ra sau, bạn có thể thấy dịch vụ
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22235%22%3E%3C/svg%3E
Tải xuống tệp nhị phân node_exporter bằng lệnh
Sau khi tải xuống, hãy giải nén node_exporter và vào nó.
Bây giờ hãy sao chép tệp nhị phân
Sau đó, chạy lệnh sau để tạo tệp dịch vụ systemd mới
Trong Grafana, bạn có thể thêm dữ liệu cơ sở dữ liệu chuỗi thời gian của mình thông qua 'Nguồn dữ liệu'. Grafana hỗ trợ nhiều nguồn dữ liệu như Prometheus, InfluxDB, PostgreSQL, Loki, Jaeger, Graphite, Google Cloud Monitoring, AWS CloudWatch, Azure Monitor và nhiều nguồn khác nữa.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Grafana, Prometheus và node_exporter trên máy chủ Ubuntu 24.04. Bạn cũng sẽ cài đặt Nginx làm proxy ngược cho Grafana, tích hợp node_exporter và Prometheus, sau đó thêm Prometheus làm nguồn dữ liệu vào bảng điều khiển Grafana.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo rằng bạn có:- Hai hoặc ba máy chủ Ubuntu 24.04.
- Người dùng không phải root có quyền quản trị viên.
Cài đặt Grafana trên Ubuntu
Grafana là ứng dụng web để trực quan hóa dữ liệu. Để cài đặt Grafana, bạn cần thêm kho lưu trữ Grafana. Trong ví dụ này, bạn cũng sẽ cài đặt Nginx làm proxy ngược cho Grafana.Cài đặt các phụ thuộc và thêm kho lưu trữ
Trong phần này, bạn sẽ cài đặt các phụ thuộc bao gồm Nginx, sau đó thêm kho lưu trữ Grafana.Đầu tiên, hãy chạy lệnh bên dưới để cài đặt các phụ thuộc cho Grafana. Nhập
Y
để xác nhận cài đặt.
Mã:
sudo apt install gnupg2 apt-transport-https software-properties-common wget nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22306%22%3E%3C/svg%3E
Bây giờ hãy thêm khóa Grafana GPG và kho lưu trữ với nội dung sau lệnh.
Mã:
wget -q -O - https://packages.grafana.com/gpg.key > grafana.key cat grafana.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/grafana.gpg > /dev/null
Mã:
echo ‘deb [signed-by=/etc/apt/trusted.gpg.d/grafana.gpg] https://packages.grafana.com/oss/deb stable main’ | sudo tee /etc/apt/sources.list.d/grafana.list
Mã:
sudo apt update
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22218%22%3E%3C/svg%3E
Cài đặt và cấu hình Grafana
Sau khi thêm kho lưu trữ Grafana, bạn sẽ cài đặt gói Grafana bằng trình quản lý gói APT. Sau đó cấu hình Grafana để chạy tạilocalhost
với tên miền như howtoforge.local
.Để cài đặt Grafana, hãy chạy lệnh sau Lệnh
apt
. Nhập Y
để tiếp tục cài đặt.
Mã:
sudo apt install grafana
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22307%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy tải lại trình quản lý systemd bằng lệnh bên dưới:
Mã:
sudo systemctl daemon-reload
grafana-server
bằng lệnh systemctl
sau. Sau đó, hãy xác minh để đảm bảo dịch vụ đang chạy.
Mã:
sudo systemctl enable --now grafana-server
sudo systemctl status grafana-server
grafana-server
đang chạy và được bật.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22280%22%3E%3C/svg%3E
Với
grafana-server
đang chạy, bạn sẽ cấu hình nó để chạy tại máy chủ cục bộ.Mở cấu hình Grafana
/etc/grafana/grafana.ini
với nano
editor.
Mã:
sudo nano /etc/grafana/grafana.ini
domain
bằng tên miền cục bộ của bạn cho Grafana. Đối với ví dụ này, bạn sẽ chạy Grafana trong miền howtoforge.local
.
Mã:
[server]
# The IP address to bind to, empty will bind to all interfaces
http_addr = localhost
# The http port to use
http_port = 3000
# The public facing domain name used to access grafana from a browser
domain = howtoforge.local
Bây giờ hãy chạy lệnh bên dưới để khởi động lại
grafana-server
và áp dụng các thay đổi của bạn. Với điều này, Grafana sẽ chạy trên máy chủ cục bộ với cổng HTTP mặc định 3000
.
Mã:
sudo systemctl restart grafana-server
Thiết lập Nginx làm proxy ngược
Trong phần này, bạn sẽ tạo một khối máy chủ Nginx mới làm proxy ngược chografana-server
đang chạy trên localhost
với cổng 3000
.Tạo cấu hình khối máy chủ Nginx mới
/etc/nginx/sites-available/grafana.conf
với Trình chỉnh sửa nano
.
Mã:
sudo nano /etc/nginx/sites-available/grafana.conf
server_name
bằng tên miền Grafana của bạn.
Mã:
# this is required to proxy Grafana Live WebSocket connections.
map $http_upgrade $connection_upgrade { default upgrade; '' close;
}
server { listen 80; server_name howtoforge.local; root /usr/share/nginx/html; index index.html index.htm; access_log /var/log/nginx/grafana-access.log; error_log /var/log/nginx/grafana-error.log; location / { proxy_set_header Host $http_host; proxy_pass http://localhost:3000/; } # Proxy Grafana Live WebSocket connections. location /api/live { rewrite ^/(.*) /$1 break; 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/; }
}
Bây giờ hãy chạy lệnh sau để kích hoạt
grafana.conf
chặn máy chủ và xác minh cú pháp Nginx của bạn. Nếu bạn có cú pháp đúng, bạn sẽ thấy đầu ra test is Successful - syntax is OK
.
Mã:
sudo ln -s /etc/nginx/sites-available/grafana.conf /etc/nginx/sites-enabled/
sudo nginx -t
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E
Tiếp theo, chạy lệnh
systemctl
bên dưới để khởi động lại và xác minh máy chủ web Nginx trạng thái.
Mã:
sudo systemctl restart nginx
sudo systemctl status nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22219%22%3E%3C/svg%3E
Tiếp theo, hãy truy cập tên miền Grafana của bạn như http://howtoforge.local/. Nếu cài đặt thành công, bạn sẽ được nhắc đến trang đăng nhập Grafana.
Đăng nhập bằng người dùng mặc định
admin
và mật khẩu admin
.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22531%22%20height=%22550%22%3E%3C/svg%3E
Sau khi đăng nhập, hãy nhập mật khẩu mới cho cài đặt Grafana của bạn và nhấp vào Gửi để xác nhận.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22521%22%20height=%22658%22%3E%3C/svg%3E
Bạn sẽ thấy bảng điều khiển Grafana như sau:
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22388%22%3E%3C/svg%3E
Cài đặt và cấu hình Prometheus
Prometheus là một nền tảng giám sát và cảnh báo. Khi Grafana đang chạy, bạn sẽ cài đặt Prometheus trên máy chủ192.168.5.16
.Cài đặt Prometheus
Trong phần này, bạn sẽ cài đặt Prometheus theo cách thủ công bằng cách tải xuống tệp nhị phân của Prometheus vào hệ thống của mình. Trước đó, bạn cũng sẽ tạo một người dùng hệ thống mới vàprometheus
.Trước tiên, hãy chạy lệnh bên dưới để thêm người dùng và nhóm mới
prometheus
.
Mã:
sudo groupadd --system prometheus
sudo useradd -s /sbin/nologin --system -g prometheus prometheus
/var/lib/prometheus
và các thư mục cấu hình /etc/prometheus
.
Mã:
sudo mkdir -p /var/lib/prometheus
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done
Mã:
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest|grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -
tar
và vào nó.
Mã:
tar xvf prometheus*.tar.gz
cd prometheus*/
prometheus
và promtool
đến /usr/local/bin
thư mục. Sau đó di chuyển các thư mục cấu hình và tệp prometheus.yml
đến /etc/prometheus
thư mục.
Mã:
sudo mv prometheus promtool /usr/local/bin/
sudo mv consoles console_libraries prometheus.yml /etc/prometheus/
prometheus
.
Mã:
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done
for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done
sudo chown -R prometheus:prometheus /var/lib/prometheus/
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22118%22%3E%3C/svg%3E
Cấu hình Prometheus
Sau khi cài đặt Prometheus, bạn sẽ bảo mật Prometheus bằng cách sử dụngbasic_auth
hoặc xác thực cơ bản.Cài đặt Gói
apache2-utils
với nội dung sau apt
lệnh.
Mã:
sudo apt install apache2-utils -y
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22303%22%3E%3C/svg%3E
Bây giờ hãy chạy Lệnh
htpasswd
bên dưới để tạo mật khẩu bcrypt cho người dùng admin. Nhập mật khẩu của bạn và lặp lại, sau đó sao chép mật khẩu đã tạo.
Mã:
htpasswd -nB admin
nano
bên dưới để tạo tệp mới /etc/prometheus/web.yml
.
Mã:
sudo nano /etc/prometheus/web.yml
Mã:
# basic_auth
basic_auth_users: admin: $2y$05$s8U/BrE5JhSO31XKSbtj8u8cPECULs3emEhlDfCB2GW1UefQ9x00C
Bây giờ hãy mở cấu hình Prometheus mặc định
/etc/prometheus/prometheus.yml
bằng nano
.
Mã:
sudo nano /etc/prometheus/prometheus.yml
job_name
cho prometheus
như sau và đảm bảo thay đổi basic_auth
người dùng và mật khẩu.
Mã:
scrape_configs: # The job name is added as a label `job=` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. # add settings for certificate and authentication scheme: http basic_auth: username: "admin" password: "password" static_configs: # if using a valid certificate, set the same hostname in the certificate - targets: ["localhost:9090"]
Cuối cùng, chạy lệnh bên dưới để thay đổi quyền sở hữu tệp
prometheus.yml
và web.yml
cho người dùng prometheus
.
Mã:
sudo chown prometheus: /etc/prometheus/{prometheus.yml,web.yml}
Chạy Prometheus dưới dạng dịch vụ systemd
Tạo tệp dịch vụ systemd mới/etc/systemd/system/prometheus.service
bằng nội dung sau nano
biên tập viên.
Mã:
sudo nano /etc/systemd/system/prometheus.service
web.yml
.
Mã:
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \ --config.file=/etc/prometheus/prometheus.yml \ --storage.tsdb.path=/var/lib/prometheus \ --web.console.templates=/etc/prometheus/consoles \ --web.console.libraries=/etc/prometheus/console_libraries \ --web.listen-address=0.0.0.0:9090 \ --web.config.file=/etc/prometheus/web.yml \
SyslogIdentifier=prometheus
Restart=always
[Install]
WantedBy=multi-user.target
Bây giờ hãy chạy lệnh bên dưới để tải lại trình quản lý systemd và áp dụng thay đổi.
Mã:
sudo systemctl daemon-reload
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22351%22%3E%3C/svg%3E
Sau đó, khởi động và kích hoạt
prometheus
dịch vụ sử dụng lệnh systemctl
bên dưới và đảm bảo rằng dịch vụ là đang chạy.
Mã:
sudo systemctl enable --now prometheus
sudo systemctl status prometheus
prometheus
đang chạy và được bật.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22235%22%3E%3C/svg%3E
Đang cài đặt node_exporter
Bây giờ Grafana và Prometheus đang chạy, bạn sẽ tải xuống và cài đặt node_exporter. Node_exporter cho phép bạn thu thập dữ liệu để giám sát hệ thống cơ bản.Tải xuống tệp nhị phân node_exporter bằng lệnh
curl
bên dưới.
Mã:
curl -s https://api.github.com/repos/prometheus/node_exporter/releases/latest| grep browser_download_url|grep linux-amd64|cut -d ‘"’ -f 4|wget -qi -
Mã:
tar -xvf node_exporter*.tar.gz cd node_exporter*/
node_exporter
vào /usr/local/bin
thư mục.
Mã:
sudo cp node_exporter /usr/local/bin
/etc/systemd/system/node_exporter.service
cho node_exporter.
Mã:
sudo tee /etc/systemd/system/node_exporter.service