logo
0
0
WeChat Login

1、代码来源

2、在此基础上进行了功能扩展

2.1 升级了 python 版本,以及包版本

  • python 3.12-alpine
  • twisted==24.7.0

2.2 增加了鉴权功能

引入了一个web.config 的文件;这个文件用于客户端的 metrics 鉴权,使用 bcrypt 进行加密, bcrypt 哈希值不可逆,因此不能通过反向解密来验证密码。注意保存凭据。

  • 凭证生成,使用 htpasswd -nbBC 12 admin <password> 获取 $2b$... 哈希

3、docker-compose 运行所需文件

  • web.config 的文件
basic_auth_users:
  prometheus: $2b$12$abcdefghijklmnopqrstuvwxYZ0123456789abcdefghijklmnopqrstuv
  • env 文件,cofig.env
VSPHERE_USER=administrator@vsphere.local
VSPHERE_PASSWORD=xxxx
VSPHERE_HOST=xxx
VSPHERE_IGNORE_SSL=TRUE
VSPHERE_SPECS_SIZE=2000

4、运行

docker-compose up -d

5、访问监控页面

http://xxx:9272/metrics

6、和prometheus集成

一定要注意标签的定义规范, 如果自带的标签值不好用,可以替换

#vmware_exporter
  - job_name: 'vmware_vcenter'
    ## 认证信息
    basic_auth:
      username: prometheus
      password: xxxx
    metrics_path: '/metrics'
    static_configs:
    - targets: ['172.22.33.218:9272']
      labels:
        project_name: "Datacenter-srebro"
        nodename: "EXSI-172.1.5.17"
    relabel_configs:
      - source_labels: [__address__]
        target_label: __param_target
      - source_labels: [__param_target]
        target_label: instance
      - source_labels: [__address__]
        regex: '.*:9272$'
        target_label: datacenter
        replacement: 'Datacenter-srebro'
    ##用于标签值的自定义
    metric_relabel_configs:
      - action: replace
        target_label: host_name
        replacement: 'EXSI-172.1.5.17'  # 新值
      - action: replace
        target_label: dc_name
        replacement: 'EXSI-172.1.5.17'  # 新值

7、大屏与告警实现

8、参考

About

https://github.com/pryorda/vmware_exporter.git

Language
Python99.4%
Dockerfile0.6%