Thursday, November 21, 2024

Cách cài đặt Prometheus lên hệ điều hành Ubuntu

-

1. Tổng quan.

Prometheus là một công cụ mã nguồn mở dùng để giám sát và thu thập dữ liệu các hệ thống và ứng dụng. Nó thu thập các metric từ các mục tiêu khác nhau như máy chủ, ứng dụng, dịch vụ và lưu trữ chúng dưới dạng dữ liệu chuỗi thời gian (time-series data). Prometheus cho phép bạn lưu trữ, truy vấn, hiển thị và cảnh báo trên các metric này.

Ưu điểm của Prometheus bao gồm:

  • Thu thập dữ liệu chuỗi thời gian: Prometheus là một hệ thống giám sát dựa trên dữ liệu chuỗi thời gian, cho phép bạn lưu trữ và truy vấn các metric theo thời gian. Điều này cung cấp khả năng phân tích dữ liệu lịch sử và xem xu hướng phát triển của hệ thống và ứng dụng.
  • Truy vấn linh hoạt: Prometheus cung cấp một ngôn ngữ truy vấn mạnh mẽ (PromQL) cho phép bạn truy vấn và biểu diễn dữ liệu metric theo các tiêu chí tùy chỉnh. Điều này cho phép bạn tạo ra các truy vấn phức tạp và biểu đồ theo nhu cầu của bạn.
  • Hệ sinh thái phong phú: Prometheus có một hệ sinh thái phát triển mạnh mẽ, bao gồm nhiều công cụ mở rộng và tích hợp với các công cụ khác như Grafana. Điều này tạo ra sự linh hoạt và mở rộng cho việc triển khai và tùy chỉnh theo nhu cầu của từng dự án.
  • Đối tượng sử dụng của Prometheus: Prometheus thích hợp cho các nhà phát triển, quản trị viên hệ thống và những người quan tâm đến việc giám sát và thu thập metric từ hệ thống và ứng dụng. Nó có thể được sử dụng trong các môi trường phát triển, sản xuất và điều hành để giám sát hiệu suất, vận hành và tìm hiểu về hệ thống của mình.

2. Triển khai.

Bước 1 — Cài đặt và Cấu hình Prometheus.

Prometheus là một bộ công cụ mã nguồn mở để giám sát và cảnh báo hệ thống, thu thập và lưu trữ các số liệu thống kê dưới dạng chuỗi thời gian. Các thông tin số liệu được lưu trữ kèm theo thời điểm ghi nhận. Trong bước này, bạn sẽ cài đặt Prometheus và cấu hình để chạy như một dịch vụ.

Cài đặt Prometheus Trước tiên, bạn cần cài đặt Prometheus. Bắt đầu bằng cách cập nhật danh sách gói như sau:

sudo apt update

Tạo thư mục lưu trữ các file config của Prometheus.

sudo mkdir -p /etc/prometheus

Tạo thư mục lưu trữ data Prometheus.

sudo mkdir -p /var/lib/prometheus

Tải file cài đặt Prometheus về máy.

wget https://github.com/prometheus/prometheus/releases/download/v2.31.0/prometheus-2.31.0.linux-amd64.tar.gz

Giải nén file vừa tải về.

tar -xvf prometheus-2.31.0.linux-amd64.tar.gz

Di chuyển vào thư mục vừa giải nén xong.

cd prometheus-2.31.0.linux-amd64

Di chuyển 2 thư mục prometheus và promtool vào trong thư mục /usr/local/bin/.

sudo mv prometheus promtool /usr/local/bin/

Di chuyển consoles/ và console_libraries/ vào trong thư mục /etc/prometheus/.

sudo mv consoles/ console_libraries/ /etc/prometheus/

Di chuyển file cấu hình prometheus.yml vào thư mục /etc/prometheus/.

sudo mv prometheus.yml /etc/prometheus/prometheus.yml

Bây giờ bạn có thể kiếm tra phiên bản Prometheus bằng lệnh dưới.

prometheus --version

Kết quả đầu ra khi kiểm tra phiên bản.

$ prometheus --version
prometheus, version 2.31.0 (branch: HEAD, revision: d4c83da6d252d4edfdbd639fb817ebdb8e9ab2e4)
  build user:       root@395d507f537a
  build date:       20211102-10:28:54
  go version:       go1.17.2
  platform:         linux/amd64
root@ubuntu1804:~/prometheus-2.3

Bước 2 – Tạo dịch vụ Prometheus để khởi động nó.

Sau khi bạn đã cài đặt Prometheus, bạn hãy tạo file cấu hình để nó chạy như một dịch vụ của hệ thống.

Để thực hiện điều này, bạn cần tạo một nhóm và người dùng Prometheus. Bạn sẽ cần một người dùng riêng với quyền sở hữu đối với các thư mục cần thiết. Để tạo nhóm prometheus, chạy lệnh sau:

sudo groupadd --system prometheus

Gán cho nó vào nhóm prometheus mà bạn vừa tạo:

sudo useradd -s /sbin/nologin --system -g prometheus prometheus

Thay đổi sở hữu và quyền truy cập của thư mục như sau để người dùng chuyên dụng có quyền truy cập đúng:

sudo chown -R prometheus:prometheus /etc/prometheus/ /var/lib/prometheus/
sudo chmod -R 775 /etc/prometheus/ /var/lib/prometheus/

Tạo và thêm đoạn config dưới vào file /etc/systemd/system/prometheus.service. Đoạn cấu hình này là một file systemd unit để cấu hình và quản lý dịch vụ Prometheus. Dưới đây là giải thích từng phần trong đoạn cấu hình:

  • [Unit]
    • Description: Mô tả ngắn gọn về dịch vụ Prometheus.
    • network-online.target: Xác định rằng dịch vụ Prometheus cần được khởi động sau khi mạng đã hoạt động. Điều này đảm bảo rằng Prometheus sẽ có kết nối mạng khi khởi động.
    • network-online.target: Xác định rằng dịch vụ Prometheus sẽ được khởi động sau khi mạng đã hoạt động. Điều này đảm bảo rằng Prometheus sẽ có kết nối mạng khi khởi động.
  • [Service]
    • User: Người dùng được sử dụng để chạy dịch vụ Prometheus. Trong trường hợp này, người dùng là “prometheus”.
    • Group: Nhóm của người dùng prometheus.
    • Restart: Chế độ khởi động lại dịch vụ. Trong trường hợp này, dịch vụ sẽ được khởi động lại luôn khi cần thiết.
    • Type: Loại dịch vụ. Ở đây, nó được đặt thành “simple” để chỉ định rằng quá trình chạy của dịch vụ sẽ được theo dõi bởi systemd.
    • ExecStart: Lệnh khởi chạy dịch vụ. Trong trường hợp này, Prometheus được khởi chạy với các cờ cấu hình như --config.file, --storage.tsdb.path, --web.console.templates, --web.console.libraries, và --web.listen-address
  • [Install]
    • WantedBy: Mục tiêu cài đặt của dịch vụ. Trong trường hợp này, dịch vụ sẽ được cài đặt trong multi-user.target, nghĩa là dịch vụ sẽ được chạy khi hệ thống chuyển sang chế độ đa người dùng.

File cấu hình này giúp systemd quản lý và khởi động lại dịch vụ Prometheus theo cấu hình đã chỉ định.

cat > /etc/systemd/system/prometheus.service << 'OEF'
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Restart=always
Type=simple
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

[Install]
WantedBy=multi-user.target
OEF

Khởi động và bật tính năng khởi động theo OS dịch vụ Prometheus vừa tạo.

sudo systemctl start prometheus
sudo systemctl enable prometheus

Kiểm tra lại trạng thái của Prometheus.

sudo systemctl status prometheus

Đầu ra của lệnh systemctl status prometheus.

● prometheus.service - Prometheus
     Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-08-05 18:06:05 UTC; 13s ago
   Main PID: 7177 (prometheus)
      Tasks: 6 (limit: 527)
     Memory: 21.0M
     CGroup: /system.slice/prometheus.service
             └─7177 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/ --web.console.template>

Kết quả truy cập url của Prometheus http://<ipaddr>:9090.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories