Hướng dẫn cấu hình SNMP trên VMware ESXi và vCenter: Giám sát toàn diện phần cứng và máy ảo qua Zabbix, PRTG

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Bối cảnh & Tại sao cần

Vận hành hạ tầng ảo hóa VMware vSphere trong môi trường production, kịch bản đáng sợ nhất là một thanh RAM chập chờn, một ổ cứng RAID bị degraded hay quạt tản nhiệt server ngưng quay giữa đêm mà đội trực không hề hay biết. Chờ đến lúc máy ảo (VM) sập nguồn hoặc vCenter báo crash thì sự cố đã gây gián đoạn dịch vụ diện rộng.

Nhiều anh em mới quản trị thường nghĩ chỉ cần mở vCenter Client lên xem là đủ. Thực tế, khi số lượng host lên tới hàng chục node, việc cắm SNMP (Simple Network Management Protocol) để đẩy metrics và traps về các hệ thống giám sát tập trung như Zabbix hay PRTG là bước bắt buộc. SNMP cho phép chúng ta query trực tiếp trạng thái cảm biến phần cứng (Hardware Health qua IPMI/CIM sensor), tải CPU/RAM của hypervisor, lưu lượng mạng qua vSwitch và dung lượng Datastore theo thời gian thực.

Khi migrate từ VMware sang Proxmox cho lab cá nhân, mình nhận thấy nhiều điểm khác biệt thú vị. Ở Proxmox, việc push metrics qua InfluxDB hoặc Prometheus diễn ra rất tự nhiên ngay trên giao diện web. Trong khi đó, vSphere vẫn giữ kiến trúc enterprise truyền thống: cực kỳ tin cậy nhưng đòi hỏi quản trị viên phải cấu hình SNMP qua CLI nếu muốn can thiệp sâu và tối ưu luồng giám sát.

Cài đặt

Trước khi gõ lệnh, anh em cần chuẩn bị sẵn sàng một số thông tin mạng và dịch vụ trên cụm hạ tầng:

  • Quy hoạch Community String: Hạn chế tối đa dùng string mặc định public. Hãy đặt một chuỗi phức tạp như itfromzero-snmp-ro để đảm bảo an toàn mạng nội bộ.
  • Cổng dịch vụ: Mở port UDP 161 (SNMP Polling) và UDP 162 (SNMP Traps) trên tường lửa giữa Monitoring Server và các ESXi host/vCenter.
  • Bật SSH trên ESXi: Đăng nhập vSphere Client > Chọn Host > Configure > Services > Bật service SSH.

Cấu hình chi tiết

1. Cấu hình SNMP trên VMware ESXi qua esxcli

Mặc định, dịch vụ SNMP agent trên ESXi bị vô hiệu hóa. Mình khuyên anh em nên SSH trực tiếp vào host và dùng bộ lệnh esxcli system snmp để thiết lập, vừa nhanh vừa tránh lỗi giao diện.

# 1. Đặt community string (chế độ Read-Only)
esxcli system snmp set --communities itfromzero-snmp-ro

# 2. Khai báo thông tin quản trị và vị trí đặt máy chủ
esxcli system snmp set --syscontact "[email protected]" --syslocation "DC-Hanoi-Rack05"

# 3. Mở port cho dịch vụ SNMP trên tường lửa nội tại của ESXi
esxcli network firewall ruleset set --ruleset-id snmp --allowed-all true
esxcli network firewall ruleset set --ruleset-id snmp --enabled true

# (Tùy chọn nâng cao) Giới hạn IP của Monitoring Server truy cập SNMP
# esxcli network firewall ruleset set --ruleset-id snmp --allowed-all false
# esxcli network firewall ruleset allowedip add --ruleset-id snmp --ip-address 192.168.10.15/32

# 4. Kích hoạt dịch vụ SNMP
esxcli system snmp set --enable true

# 5. Khởi động lại dịch vụ snmpd để nhận cấu hình mới
/etc/init.d/snmpd restart

Kiểm tra lại toàn bộ thông số vừa gán bằng lệnh sau:

esxcli system snmp get

2. Cấu hình SNMP trên vCenter Server Appliance (VCSA)

Nếu muốn giám sát toàn cụm cluster, tài nguyên tổng và trạng thái các service lõi của vCenter, anh em cấu hình thêm SNMP ngay trên VCSA thông qua Appliance Shell:

# Đăng nhập SSH vào VCSA bằng tài khoản root
# Gõ lệnh thiết lập community string
snmp.set --communities itfromzero-snmp-ro

# Thiết lập thông tin liên hệ
snmp.set --syscontact "[email protected]"

# Kích hoạt SNMP
snmp.enable

# Kiểm tra trạng thái chạy của SNMP service trên vCenter
snmp.get

Kiểm tra & Monitoring

1. Kiểm tra phản hồi bằng snmpwalk từ Monitoring Server

Đứng từ server Zabbix hoặc máy trạm Linux trong cùng dải mạng quản trị, chạy lệnh snmpwalk để test xem ESXi host đã trả data về chưa:

# Query OID hệ thống cơ bản
snmpwalk -v 2c -c itfromzero-snmp-ro 192.168.10.51 1.3.6.1.2.1.1.1

# Query cây MIB phần cứng chuyên biệt của VMware (Enterprise OID 6876)
snmpwalk -v 2c -c itfromzero-snmp-ro 192.168.10.51 1.3.6.1.4.1.6876.1

Nếu màn hình xuất ra chuỗi định danh VMware ESXi 7.0.3 ... nghĩa là gói tin UDP 161 đã thông suốt và agent phản hồi chuẩn xác.

2. Tích hợp giám sát qua Zabbix

Zabbix hỗ trợ template giám sát VMware rất mạnh mẽ:

  1. Gán Template: Trên giao diện Zabbix Server, add Host mới với IP của ESXi host. Link host đó với template VMware ESXi via SNMP hoặc VMware Hypervisor by SNMP.
  2. Cấu hình Macro: Chuyển sang tab Macros, thêm macro {$SNMP_COMMUNITY} với giá trị itfromzero-snmp-ro đã đặt ở bước trước.
  3. Thu thập dữ liệu: Sau chu kỳ discovery (thường mất 5-10 phút), Zabbix sẽ tự động bóc tách trạng thái các cảm biến phần cứng (Power Supply, Fan RPM, Nhiệt độ CPU, RAID controller) và toàn bộ card mạng vmnic vật lý.

3. Tích hợp giám sát qua PRTG Network Monitor

Đối với anh em dùng PRTG:

  • Vào Add Device > Nhập IP của ESXi host > Tại mục Credentials for SNMP Devices, chọn SNMP v2c và điền community string.
  • Thêm sensor SNMP VMware Host Hardware Sensor. Sensor này sẽ tự động query các OID thuộc CIM/IPMI provider trên ESXi.
  • Thêm sensor SNMP Traffic để vẽ đồ thị băng thông trên các vSwitch uplink.

Một lưu ý xương máu từ các dự án thực chiến: anh em không nên để polling interval quá ngắn (dưới 30 giây) cho các sensor phần cứng. Cây MIB phần cứng của VMware tương đối nặng do phải query ngược lại lớp CIM provider, nếu quét liên tục sẽ khiến tiến trình hostd hoặc sfcbd trên ESXi tăng vọt CPU không đáng có. Thiết lập lý tưởng nhất là 60 giây cho Network Traffic và 300 giây cho Hardware Health Sensor.

Share: