Hướng dẫn cài đặt prometheus để giám sát VMware

Nhu cầu giám sát hạ tầng là vấn đề thiết yếu mà các sysadmin mong muốn. Với mục đích quảng bá, chia sẻ thêm cách phương án giám sát hạ tầng VMware bằng các giải pháp nguồn mở để tăng cường khả năng quản lý, đổi mới tưu duy của người quản tri. Học chủ động xin giới thiệu với bạn bài hướng dẫn sử dụng prometheus để giám sát hạ tầng VMware và tích hợp với Grafana để có các biểu đồ đẹp, linh hoạt trong công việc theo dõi hàng hàng.

Trong phạm vi bài viết này, tôi sẽ hướng dẫn bạn trên hệ thống LAB của tôi, nếu có ý định áp dụng trong hệ thống của bạn thì hãy thay đổi các địa chỉ IP cho phù hợp nhé. Ngoài ra, các bài về kiến trúc, tính năng hay ho hay xu hướng tại sao prometheus HCĐ sẽ không đi sâu vào nữa, vì trên google hoặc các blog đã quá nhiều rồi. Nếu chưa biết gì thì hãy thử tìm kiếm thêm xem sao nha.

Giả sử bạn đã có hạ tầng VMware và máy chủ để cài Prometheus + grafana gồm:

  • vCenter: Lab sử dụng vCenter 7.x
  • ESXi host (có các máy ảo). Lab sử dụng ESXi 7.x
  • 01 máy chủ Ubuntu Server 18.04 64 bit (có khả năng kết nối internet). Máy chủ này sẽ cài prometheus, grafana và vmware_exporter để thu thập metric từ vCenter hoặc ESXi host.

Hình ảnh cụm vSphere trên Homlab của HDC

Hình ảnh cụm vSphere sẽ được giám sát

Mô hình và IP Planning

Mô hình triển khai prometheus và grafana để giám sát VMware

Bài viết gồm các phần sau:

  • Phần 0: Chuẩn bị máy chủ Ubuntu Server 18.04 64 bit đã được thiết lập hostname, ntp, địa chỉ IP tĩnh cho phù hợp. Phần này bạn tự làm, hoặc tham khảo từ blog HCĐ nhé 🙂
  • Phần 1: Cài đặt Prometheus.
  • Phần 2: Cài đặt VMware_exporter.
  • Phần 3: Cài đặt grafana.
  • Phần 4: Tạo mới hoặc sử dụng các dashboard có sẵn.

Lưu ý: Bạn có thể sử dụng các script được cung cấp kèm để giảm thời gian cài đặt nhưng tôi sẽ hướng dẫn bạn từng bước một để có các trải nghiệm khi dựng hệ thống nhé. Nào, hãy bắt đầu follow theo hướng dẫn nhé.

Bài viết sẽ sử dụng thành phần VMware_exporter được cài cùng với server Prometheus theo mã nguồn tại: https://github.com/pryorda/vmware_exporter. Bài viết cũng được lấy cảm hứng từ github của D3spereaux tại: https://github.com/D3spereaux/ về môi trường cài đặt và các bước trong script cài đặt VMware_exporter (Cám ơn D3spereaux)

Phần 1: Cài đặt prometheus

Bạn cần SSH vào server ubuntu, trong hướng dẫn này sẽ sử dụng MobaxTerm (hoặc putty, SecureCRT tùy bạn). Tài khoản cài đặt trong suốt quá trình là root

Bước 1: Kiểm tra các thông tin cần thiết.

Kiểm tra lại xem đã đúng phiên bản Ubuntu cần hay chưa 🙂 bằng lệnh lsb_release -a. Ta có kết quả như dưới là OK.

root@servermon01:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.2 LTS
Release:        18.04
Codename:       bionic

Kiểm tra địa chỉ IP đã đúng mô hình hay chưa (nếu chưa biết cách đặt IP tĩnh bằng Netplan hoặc theo cách sửa file truyền thống cho Ubuntu 18.04 thì google nha). Sử dụng lệnh ip a. Kết quả ta có.

root@servermon01:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:a7:41:37 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.85/24 brd 192.168.20.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fea7:4137/64 scope link
       valid_lft forever preferred_lft forever

Kiểm tra giờ của bạn đã đúng theo múi giờ Việt Nam hay chưa bằng lệnh timedatectl. Nếu chưa đúng thì google các bước này nhé 🙂

Cách chỉnh giờ nhanh có thể thực hiện bằng lệnh timedatectl set-timezone Asia/Ho_Chi_Minh

Và kiểm tra lại bằng lệnh timedatectl

root@servermon01:~/loggen# timedatectl
               Local time: Tue 2021-06-08 23:24:45 +07
           Universal time: Tue 2021-06-08 16:24:45 UTC
                 RTC time: Tue 2021-06-08 16:24:46
                Time zone: Asia/Ho_Chi_Minh (+07, +0700)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

Tới đây bạn đã có thể bắt đầu cài đặt Prometheus rồi.

Bước 2: Tạo group và user cho linux để prometheus sử dụng.

sudo groupadd --system prometheus

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

Bước 3: Tạo các thư mục cần thiết cho prometheus

sudo mkdir /var/lib/prometheus


for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

Các thư mục này sẽ chứa file chạy, file cấu hình của prometheus.

Bước 4: Tải và cài đặt prometheus

Trong hướng dẫn này sẽ cài bản mới nhất vào thời điểm viết hướng dẫn. Phiên bản prometheus là prometheus-2.27.1.linux-amd64

Cài đặt các gói cần thiết để tải và cài prometheus

sudo apt update

sudo apt -y install wget curl vim

Tạo thư mục tạm chứa bộ cài và down bản mới nhất của prometheus từ repo github.

mkdir -p /tmp/prometheus && cd /tmp/prometheus


curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

Giải nén file vừa tải về và di chuyển vào thư mục vừa giải nén.

tar xvf prometheus*.tar.gz

cd prometheus*/

Di chuyển file binary của prometheus /usr/local/bin/ để có thể chạy được prometheus trực tiếp. Lúc này ta đang ở thư mục /tmp/prometheus/prometheus-2.27.1.linux-amd64

sudo mv prometheus promtool /usr/local/bin/

Kiểm tra lại version của`promethues & promtool` bằng lệnh prometheus --versionpromtool --version. Kết quả như bên dưới là OK.

# prometheus --version
prometheus, version 2.27.1 (branch: HEAD, revision: db7f0bcec27bd8aeebad6b08ac849516efa9ae02)
  build user:       root@fd804fbd4f25
  build date:       20210518-14:17:54
  go version:       go1.16.4
  platform:         linux/amd64


# promtool --version
promtool, version 2.27.1 (branch: HEAD, revision: db7f0bcec27bd8aeebad6b08ac849516efa9ae02)
  build user:       root@fd804fbd4f25
  build date:       20210518-14:17:54
  go version:       go1.16.4
  platform:         linux/amd64

Di chuyển các file cấu hình cần thiết của prometheus vào các thư mục.

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

sudo mv consoles/ console_libraries/ /etc/prometheus/

Bước 5: Kiểm tra file cấu hình của promtheus

Di chuyển về thư mục root bằng lệnh: cd /root/

Trước khi sửa file /etc/prometheus/prometheus.yml, sử dụng lệnh egrep dưới để lọc ra các cấu hình được áp dụng (lệnh này sẽ bỏ qua các comment và dòng trống)

cat /etc/prometheus/prometheus.yml | egrep -v '^#|^$'

Kết quả lệnh trên như bên dưới:

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['localhost:9090']

Tới bước này chú ý dòng - targets: ['localhost:9090'] bạn nên thay đổi thành IP của server cài đặt prometheus để bước sau có thể truy cập được vào để quan sát metric. Tôi sử sửa lại kết quả như sau. Dùng vim, nano hay winscp để sửa file cấu hình /etc/prometheus/prometheus.yml là tùy bạn nhé.

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['192.168.20.85:9090']

Tạm thời bỏ qua các dòng cấu hình hoặc tìm thêm các bài viết để hiểu rõ hơn các dòng.

Tiếp theo cần tạo service dành cho prometheus để systemd quản lý, có nghĩa là bạn sẽ dùng các lệnh của systemd để start, stop, enable, restart được prometheus như các dịch vụ khác.

sudo tee /etc/systemd/system/prometheus.service<<EOF
[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.external-url=

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target
EOF

Phân quyền cho các file của prometheus với user đã được tạo ở bước trên

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/

Kích hoạt prometheus

sudo systemctl daemon-reload

sudo systemctl start prometheus

sudo systemctl enable prometheus

Kiểm tra lại trạng thái của prometheus bằng lệnh systemctl status prometheus, kết quả như sau là OK.

root@servermon01:~# systemctl status prometheus
● prometheus.service - Prometheus
   Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2021-06-06 12:28:03 +07; 21min ago
     Docs: https://prometheus.io/docs/introduction/overview/
 Main PID: 1531 (prometheus)
    Tasks: 8 (limit: 4661)
   CGroup: /system.slice/prometheus.service
           └─1531 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus --

Jun 06 12:28:03 servermon01 prometheus[1531]: level=info ts=2021-06-06T05:28:03.555Z caller=head.go:741 component=tsdb msg="Replayi
Jun 06 12:28:03 servermon01 prometheus[1531]: level=info ts=2021-06-06T05:28:03.555Z caller=head.go:755 component=tsdb msg="On-disk

Ấn tổ hợp phím Ctl +C để thoát khỏi lệnh kiểm tra trạng thái của prometheus.

Bước 6: Truy cập vào trang quản lý prometheus để quan sát các kết quả.

Tới đây bạn đã cấu hình xong prometheus server, trạng quản trị này đeẻ quan sát hoặc truy vấn các metric mà prometheus thu thập được. Trong bài viết này tôi không hướng dẫn phần sử dụng node_exporter để thu thập dữ liệu của máy chủ mà chỉ tập trung vào giám sát vmware.

Truy cập vào máy chủ prometheus: http://192.168.20.85:9090 ta sẽ có giao diện như bên dưới. Tại màn hình này có tab để nhập câu truy vấn của prometheus nhưng trong phần này tạm để hướng dẫn khai thác sau nhé. Hoặc bạn đã có kỹ năng này rồi thì có thể gõ thử một dòng nào đó :).

Giao diện quản trị prometheus

Click vào tab Status ==> Targets để sang màn hình qyản lý trạng thái tổng quan của các exporter. Tại đây ta sẽ thấy prometheus sẽ tự động thu thập các metric của prometheus (Lưu ý đây là metric của prometheus chứ không phải của server nhé. Muốn thu thập được các tham số cơ bản của server linux thì cần cài thêm Node_exporter)

Màn hình quan sát các đối tượng giám sát (hay còn gọi là target)

Tiếp theo ta sẽ nhìn thấy endpoint của các target, click vào endpoint http://192.168.20.85:9090/metrics để theo thấy kết quả. Trong thực tế có thể gõ thẳng đường dẫn này vào web brower để xem kết quả nhé.

Màn hình hiển thị trạng thái tổng quan của các target.

Sẽ có màn hình liệt kê các metric của endpoint được hiển thị ra. Màn hình thường dùng để tra cứu nhanh hoặc biết được việc thu thập metric của các target đã OK. Còn trọng thực tế việc quan sát sẽ được tích hợp thông qua grafana.

Màn hình hiển thị metric và giải thích ngắn các metric là gì của target

Kết thúc phần 1 bạn đã cài đặt xong prometheus. Ta sẽ chuyển sang cài đặt VMware_exporter để thu thập dữ liệu từ hạ tầng VMware.

Phần 2: Cài đặt VMware_exporter

VMware_exporter có thể hiểu là một plugin bổ sung cho Prometheus (hay còn gọi là exporter trong prometheus) để có thể giám sát được hạ tầng VMware thông qua việc kết nối tới vCenter hoặc ESXi host. Theo github của tác gải tại [1] thì nó được viết bằng python, bạn cần cài đặt nó lên một máy chủ linux nào đó (trong hướng dẫn này sẽ cài chung với server prometheus) và nó cần sử dụng user có quyền read only do hệ thống VMware tạo ra.

Trong hướng dẫn này sẽ cài đặt gói VMware_exporter 0.1.6 và cần có python 3.6 trở lên. Việc cài đặt VMware_exporter sẽ được thực hiện thông qua pip3 (chứ không dùng apt-get). Hãy bắt đầu các bước cài đặt VMware_Exporter nào.

Bước 7: Cài đặt các gói bổ trợ trước khi cài VMware_exporter

Update và cài đặt các gói bổ trợ.

sudo apt update -y

sudo apt install python3 curl net-tools git wget python3-pip -y

Bước 8: Cài đặt & cấu hình vmware_exporter

pip3 install --ignore-installed PyYAML

pip3 install vmware_exporter

Di chuyển vào thư mục chưa file cài đặt vmware_exporter.

cd /usr/local/lib/python*/dist-packages/vmware_exporter

Tạo file tên là config.yml trong thư mục /usr/local/lib/python*/dist-packages/vmware_exporter bằng lệnh

touch config.yml

Passte nội dung cho file config.yml như bên dưới (có thể sử dụng lệnh echo ở dưới để tạo file này.)

default:
    vsphere_host: 192.168.20.3
    vsphere_user: '[email protected]'
    vsphere_password: 'mat_khau_vcenter'
    ignore_ssl: True
    specs_size: 5000
    fetch_custom_attributes: True
    fetch_tags: True
    fetch_alarms: True
    collect_only:
        vms: True
        vmguests: True
        datastores: True
        hosts: True
        snapshots: True"

Trong dó lưu ý thay đổi các tham số:

  • vsphere_host: IP của vCenter. Bạn hoàn toàn có thể khai báo IP của host ESXi mà bạn có để thay cho vCenter nhé.
  • vsphere_user: Tên đăng nhập
  • vsphere_password: Mật khẩu

Các trường hợp có nhiều vCenter, hoặc nhiều host ESXi muốn giám sát sẽ để sau.

Vì file yml cần yêu cầu việc căn lề chính xác, bạn có thể sử dụng đoạn lệnh dưới được để cấu hình cho chính xác. Lưy ý trước khi chạy thì thay đổi 03 tham số cần thiết. Các tham số khác tạm thời để nguyên.

touch config.yml
echo "
default:
    vsphere_host: 192.168.20.3
    vsphere_user: '[email protected]'
    vsphere_password: 'mat_khau_vcenter'
    ignore_ssl: True
    specs_size: 5000
    fetch_custom_attributes: True
    fetch_tags: True
    fetch_alarms: True
    collect_only:
        vms: True
        vmguests: True
        datastores: True
        hosts: True
        snapshots: True" > /usr/local/lib/python*/dist-packages/vmware_exporter/config.yml

Kiểm tra lại nội dung file trên

Nội dung file config cảu vmware_exporter

Tạo user để phân quyền cho vmware_exporter

#Di chuyển về thư mục root
cd /root/

useradd -M -r -s /bin/false vmware_exporter

Thực hiện phân quyền file cấu hình và file thực thi.

chown -R vmware_exporter:vmware_exporter /usr/local/lib/python*/dist-packages/vmware_exporter

chown vmware_exporter:vmware_exporter /usr/local/bin/vmware_exporter

Kiểm tra lại việc phân quyền xem đã đúng chưa bằng lệnh ls -alh. Ta có kết quả như bên dưới là ok.

Kết quả sau khi phân quyền

Bước 8: Tạo file service cho vmware_exporter để systemd quản lý.

Sử dụng lệnh cat dưới đây để tạo file service cho vmware_exporter.

cat <<EOF > /etc/systemd/system/vmware_exporter.service
[Unit]
Description=VMWare Exporter
Wants=network-online.target
After=network-online.target

[Service]
User=vmware_exporter
Group=vmware_exporter
Type=simple
ExecStart=/usr/bin/python3 /usr/local/bin/vmware_exporter -c /usr/local/lib/python3.6/dist-packages/vmware_exporter/config.yml
ExecReload=/bin/kill -HUP \$MAINPID
SyslogIdentifier=vmware_exporter
Restart=always

[Install]
WantedBy=multi-user.target
EOF

Kiểm tra lại xem file được tạo bằng lệnh cat /etc/systemd/system/vmware_exporter.service ta có kết quả sau.

Nội dung file /etc/systemd/system/vmware_exporter.service

Khởi động vmware_exporter và kiểm tra trạng thái.

systemctl daemon-reload

systemctl start vmware_exporter

systemctl enable vmware_exporter

systemctl status vmware_exporter

Kiểm tra xem port 9272 mà vmware_exporter được chạy hay chưa.

Sử dụng lệnh ss -lan | egrep 9272

Bước 9: Khai báo bổ sung target cho prometheus để thu thập từ vmware_exporter.

Bạn có thể dùng vi/vim sửa file /etc/prometheus/prometheus.yml để thêm đoạn cấu hình dưới hoặc dùng lệnh echo dưới để bổ sung vào dưới cùng của file cấu hình prometheus.

Lệnh echo để chèn cầu hình vào file /etc/prometheus/prometheus.yml

Lưu ý: bạn nên copy ra file notepad và thay dòng được bôi màu.

echo "
  ## Khai bao target cho vcenter
  - job_name: 'vcenter_node'
    scrape_timeout: 15s
    scrape_interval: 15s
    metrics_path: '/metrics'
    static_configs:
      - targets:
        - '192.168.20.3' 
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.20.85:9272" >> /etc/prometheus/prometheus.yml

Sau khi chèn xong ta, dùng lệnh sau để xem đầy đủ file cấu hình.

cat /etc/prometheus/prometheus.yml | egrep -v '^$|^#'

Ta có kết quả. Lưu ý file yml cần có căn lê chuẩn nên hãy dùng lệnh echo trên để bảm bảo chính xác, thay đổi các tham số cần thiết trước khi cài.

global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.
    static_configs:
    - targets: ['192.168.20.85:9090']

  
  ## Khai bao target cho vcenter
  - job_name: 'vcenter_node'
    scrape_timeout: 15s
    scrape_interval: 15s
    metrics_path: '/metrics'
    static_configs:
      - targets:
        - '192.168.20.3'
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - target_label: __address__
        replacement: 192.168.20.85:9272
 

Khởi động lại prometheus

systemctl restart prometheus.service

Bước 10: Truy cập vào UI của prometheus để xem đã thấy target của vCenter

Truy cập vào địa chỉ: http://192.168.20.85:9090/ sau đó vào tab Status ==> Targets hoặc vào thẳng địa chỉ http://192.168.20.85:9090/targets

Màn hình hiển thị target của prometheus

Chọn vào show more để thấy link endpoint. Ta có giao diện sau.

Màn hình endpoint

Tab mới sẽ liệt kê các metric mà vmware_exporter thu thập được từ vCenter. Bao gồm các metric về host, vm, datastore, disk …

Màn hình hiển thị metric của cụm cụm VMware lab.

Bước đầu bạn đã lấy được metric giám sát của cụm vSphere ở đầu bài viết, hãy thử thao tác một vài câu truy vấn của prometheus thông qua promtool để thấy được sự thú vị của Prometheus trước khi chuyển sang tích hợp với grafana nhé.

Bước 11: Trải nghiệm các câu truy vấn của prometheus

Truy cập vào UI của prometheus với IP: http://192.168.20.85:9090/, ta sẽ có giao diện sau.

Giao diện của prometheus

Ô khoanh đỏ sẽ là nơi nhập các câu truy vấn, sau khi nhập xong chọn Execute để quan sát kết quả. Việc trích xuất từ các thông tin sau này sẽ được hướng dẫn.

Truy vấn vmware_host_hardware_info để xem thông tin về phần cứng của host, ta sẽ thấy

vmware_host_hardware_info

Truy vấn phiên bản ESXi của host vmware_host_product_info

vmware_host_product_info

Truy vấn trạng thái của vmware tool vmware_vm_guest_tools_running_status. Kết quả hiển thị trạng thái của vmware tool trong các vm.

vmware_vm_guest_tools_running_status

Hiển thị trạng thái vmware tool của một VM cụ thể bằng cách bổ sung thêm điều kiện với lable cụ thể vmware_vm_guest_tools_running_status{vm_name="O-VCENTER7"}, trong ví dụ này là vm_name="O-VCENTER7". Ta có kết quả

Trạng thái vmware tool của vm cụ thể.

Hiển thị dung lượng disk con trống của VM bằng vmware_vm_guest_disk_free. Kết quả sẽ hiển thị toàn bộ dung lượng trống của các partion trong từng VM.

Dung lượng disk trống của VM.

Cũng có thể truy vấn dung lượng đĩa trống của một VM cụ thể, ví dụ của vm có tên là O-VCENTER7 bằng câu truy vấn vmware_vm_guest_disk_free{vm_name="O-VCENTER7"}

Kết quả vmware_vm_guest_disk_free{vm_name=”O-VCENTER7″}

Đơn vị cột bên file là byte.

Hiển thị tốc độ quạt của host bằng truy vấn vmware_host_sensor_fan

Kết quả của vmware_host_sensor_fan

Tới đây, bạn có thể trải nghiệm câu truy vấn bằng cách gõ vào mục tìm kiếm trong UI để biết thêm nhé.

Chuyển sang phần tiếp theo HCD sẽ hương dẫn bạn cài Grafana, tạo hoặc import các biểu đồ mẫu có sẳn để quan sát giống như mẫu này.

Quan sát theo cluster

Phần 3: Cài đặt grafana

Để xem tiếp phần 3 và phần 4, mời các bạn tham khảo tại link này.

Tham khảo

  1. https://github.com/pryorda/vmware_exporter
  2. https://computingforgeeks.com/install-prometheus-server-on-debian-ubuntu-linux/
  3. https://github.com/D3spereaux/PortableTools/tree/main/Monitor

2 thoughts on “Hướng dẫn cài đặt prometheus để giám sát VMware”

  1. Xin chào, cho mình hỏi để add thêm một esxi thì làm như thế nào nhỉ, mình có thử cấu hình như dưới, nhưng chỉ get được metric của default
    default:
    vsphere_host: ip
    vsphere_user: ‘user’
    vsphere_password: ‘passwd’
    ignore_ssl: True
    specs_size: 5000
    fetch_custom_attributes: True
    fetch_tags: True
    fetch_alarms: True
    collect_only:
    vms: True
    vmguests: False
    datastores: True
    hosts: True
    snapshots: True
    esxi02:
    vsphere_host: ip
    vsphere_user: ‘user’
    vsphere_password: ‘passwd’
    ignore_ssl: True
    specs_size: 5000
    fetch_custom_attributes: True
    fetch_tags: True
    fetch_alarms: True
    collect_only:
    vms: True
    vmguests: False
    datastores: True
    hosts: True
    snapshots: True

    Reply

Leave a Comment