Cách cài đặt Grafana và Prometheus trên Ubuntu 24.04

theanh

Administrator
Nhân viên
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.

Đ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
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:
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ại localhost 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
Bây giờ bạn có thể bắt đầu và kích hoạt 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
Trong kết quả đầu ra sau, bạn có thể thấy 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
Thay đổi cấu hình mặc định bằng lệnh sau. Đảm bảo thay đổi tùy chọn 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
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 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 cho grafana-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
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 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/; }
}
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 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
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 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
Tạo thư mục dữ liệu mới /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
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.
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 -
Sau khi tải xuống, hãy giải nén tệp nhị phân Prometheus bằng lệnh tar và vào nó.
Mã:
tar xvf prometheus*.tar.gz
cd prometheus*/
Di chuyển tệp nhị phân prometheuspromtool đế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/
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 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ụng basic_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
Tiếp theo, chạy lệnh nano bên dưới để tạo tệp mới /etc/prometheus/web.yml.
Mã:
sudo nano /etc/prometheus/web.yml
Thêm cấu hình sau và đảm bảo thay đổi mật khẩu bcrypt bên dưới.
Mã:
# basic_auth
basic_auth_users: admin: $2y$05$s8U/BrE5JhSO31XKSbtj8u8cPECULs3emEhlDfCB2GW1UefQ9x00C
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 /etc/prometheus/prometheus.yml bằng nano.
Mã:
sudo nano /etc/prometheus/prometheus.yml
Thay đổi mặc định 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"]
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 prometheus.ymlweb.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
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 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
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.
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
Trong kết quả đầu ra sau, bạn có thể thấy dịch vụ 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 -
Sau khi tải xuống, hãy giải nén node_exporter và vào nó.
Mã:
tar -xvf node_exporter*.tar.gz cd node_exporter*/
Bây giờ hãy sao chép tệp nhị phân node_exporter vào /usr/local/bin thư mục.
Mã:
sudo cp node_exporter /usr/local/bin
Sau đó, chạy lệnh sau để tạo tệp dịch vụ systemd mới /etc/systemd/system/node_exporter.service cho node_exporter.
Mã:
sudo tee /etc/systemd/system/node_exporter.service
 
Back
Bên trên