vmware_exporter 是一个开源软件,用于将 VMware vSphere 环境的性能指标暴露给 Prometheus 监控系统。它充当一个代理,运行在与 VMware vSphere 实例相同的主机上,并通过查询 vSphere 提供的 API 来获取有关虚拟机、主机、存储等方面的信息。
vmware_exporter 从 VMware vSphere 收集各种有关虚拟机、主机、存储等的性能指标,如 CPU 利用率、内存使用量、磁盘 I/O、网络流量、存储容量等,并将这些指标数据转换成 Prometheus 可以理解的格式。然后,它将这些指标数据暴露给 Prometheus,使得 Prometheus 可以定期从 vmware_exporter 暴露的 HTTP 端点获取数据,并将其存储、分析和可视化。
通过与 Prometheus 结合使用,vmware_exporter 可以帮助管理员实时监控和管理 VMware vSphere 环境的性能和状态。管理员可以使用 Prometheus 查询语言构建自定义的监控规则和警报条件,以便在虚拟机、主机或存储出现问题或性能异常时及时发出警报。
编写docker-compose
cat <<'EOF'>>/vmware_exporter/docker-compose.yml version: '3' services: vmware-exporter: image: pryorda/vmware_exporter:latest container_name: vmware-exporter hostname: vmware-exporter restart: always ports: - '9272:9272' expose: - 9272 environment: VSPHERE_HOST: "You_vCenter" VSPHERE_IGNORE_SSL: "True" VSPHERE_USER: "administrator@vsphere.local" VSPHERE_PASSWORD: "YOU_password" labels: org.label-schema.group: "monitoring" EOF
使用docker-compose将容器运行起来。
docker-compose up -d
vmware_exporter采集结果查看,部分展示
Prometheus 配置
static_configs 此处vCenter 管理地址
replacement此处是vmware_exporter采集数据地址
scrape_configs: - job_name: 'web' scrape_interval: 5s static_configs: - targets: - localhost:9090 - job_name: 'vmware_vcenter' metrics_path: '/metrics' static_configs: - targets: - YOU_vCenter_IP relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: YOU_vmware_vcenter_IP:9272
Grafana 图形展示
- 11243 模板号 VMware stats
配置监控项报警规则
[root@monitor rules]# cat VsphereAlert.yml groups: - name: EXSi主机状态监控告警 rules: - alert: EXSi主机状态 expr: vmware_host_power_state ==0 for: 5m labels: type: lost severity: fatal annotations: summary: "EXSi主机 {{$labels.host_name}} 失联" description: "EXSi任务 {{$labels.job}} 下的主机 {{$labels.host_name}} 已经超过五分钟没有数据了." monitor_url: "http://10.0.10.120:3000/d/q1yCDNbWz/vmware-stats?orgId=1" - alert: EXSi主机CPU使用情况 expr: (vmware_host_cpu_usage / vmware_host_cpu_max) * 100 >80 for: 5m labels: type: cpu severity: warning annotations: summary: "EXSi主机 {{ $labels.host_name }} 的 CPU 使用率告警" description: "EXSi主机 {{ $labels.host_name }} CPU 使用率超过 80%, 当前值为: {{ $value }}" monitor_url: "http://10.0.10.120:3000/d/q1yCDNbWz/vmware-stats?orgId=1" - alert: EXSi主机内存使用 expr: (vmware_host_memory_usage/ vmware_host_memory_max) * 100 >85 for: 5m labels: type: mem severity: warning annotations: summary: "EXSi主机 {{ $labels.host_name }} 的内存使用率告警" description: "EXSi主机 {{ $labels.host_name }} 的内存使用率超过 85%, 当前值为: {{ $value }}" monitor_url: "http://10.0.10.120:3000/d/q1yCDNbWz/vmware-stats?orgId=1" - alert: EXSi主机磁盘容量 expr: ((vmware_datastore_capacity_size- vmware_datastore_freespace_size) / vmware_datastore_capacity_size) * 100 >70 for: 5m labels: type: cpu severity: warning annotations: summary: "EXSi主机 {{ $labels.host_name }} 的磁盘使用率告警" description: "EXSi主机 {{ $labels.host_name }} 的磁盘使用率超过 70%, 挂载点: {{ $labels.mountpoint }} 当前值为:{{ $value }}%" monitor_url: "http://10.0.10.120:3000/d/q1yCDNbWz/vmware-stats?orgId=1"
微信扫描下方的二维码阅读本文