This article introduces a simple method to monitor VMware EXSi and VMs with VMware-exporter, related metrics can be pulled by Prometheus, and visualized by Grafana.
Here we use docker to run 4 containers that compose of the entire environment.
First of all, git clone the project from the URL: VMware-ESXI-Monitoring-Tools: Prometheus / Grafana / VMWare ESXi Metrics for Prometheus
then, you need to download docker: Get Docker | Docker Docs, and install the docker for providing docker environment.
Finally, run the command:
SMTP_HELLO=[yourdomain.com] SMTP_TO=[first.last@gmail.com] SMTP_FROM=[prometheus@yourdomain.com] SMTP_SMARTHOST=smtp.gmail.com:587 SMTP_USER=[your_gmail_user@gmail.com] SMTP_PASS=[your_google_app_password]
HOST_IP=[host_ip_running_docker_compose] VSPHERE_HOST=[esxi_host_ip_or_hostname] VSPHERE_USER=[vsphere_user] VSPHERE_PASS=[vsphere_pass] ./start_containers.sh
If there's no need to use alert function, just remove the SMTP parameters from the command.
That's it!
If you want to get metrics from multiple vCenters, you can modify ./configs/prometheus.yml.tpl
to add more jobs, for example,
- job_name: 'vmware_vcenter_0'
......
static_configs:
- targets:
- '{{HOST_IP}}:9272'
- job_name: 'vmware_vcenter_1'
......
static_configs:
- targets:
- '{{HOST_IP}}:9273'
Run docker ps
to get containers, and docker compose logs
to get logs.
If it's too slow to download images, you can configure Aliyun docker image mirror to speed up.
Navigate to 容器镜像服务 to get registry-mirrors
Modify daemon configuration file /etc/docker/daemon.json
to use accelerator:
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://{{serial number}}.mirror.aliyuncs.com"] } EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
After all set. you can get Dashboard template from Grafana Dashboard. Searching the dashboards with filters vmware
or exsi
and lable of prometheus
to get the one you want. Remember to configure the data source first: https://{``{host_ip}}:3000