607 字
3 分钟
vCenter 6.7的postgresql数据库

设想#

原始的设想是想要做一个可视化的关于虚拟机数量的dashboard。 如果用遍历的方式,感觉有点low,就想着直接从vmware的数据库上面找找,希望能更直接的获得点信息。

但是现在的vcenter不是以前的用mssql的了,用的PostgreSQL,我想要搞出数据来,需要两个工具。

一个就是notepad++,还有一个就是pgadmin。

安装这两个软件后,进入直接的操作部分。

操作#

  • 用notepad++打开这个文件 c:\programdata\vmware\vcenterserver\cfg\vmware-vpx\vcdb.properties

  • 获得pgadmin连接数据库需要的条目

    • database name: VCDB
    • username: vc
    • password: …
    • url: jdbc:postgresql://server:5432/VCDB
  • 第一次打开pgadmin的时候,要求输入一个master密码用于保护以后建立的连接信息

    • 这个密码仅仅是为了保护以后的数据,和连接服务器的信息无关
  • 连接成功后,就可以看到VCDB的数据库信息 pgadmin.jpg

  • 查询数据库table的语句和sql的一样

    TablesComment
    select * from vpx_entity(用于query所有的对象)
    select * from vpx_entity where type_id=0(这个用于query所有的虚拟机)
    select * from vpx_event_33(查询所有的事件日志,从第33表开始)
    select * from vpx_event_arg_33(查询event对应的参数信息,应该是vmware api的接口模式,我这里用了pyvmomi和golang的http)
    select * from vpx_ext(查询vmware vcenter注册的其他vmware服务,包括vcops,nsx等的版本好,和指纹信息,以及心跳时间)
    select * from vpx_ext_client(查询扩展服务的url地址,版本号,以及厂商信息等)
    select * from vpx_host(查询所有的物理主机信息)
    select * from vpx_host_cpu(查询host的cpu数量以及cpu信息)
    select * from vpx_host_cpu_thread(查询主机所有的cpu的线程数)
    select * from vpx_ip_address(查询所有的IP地址记录,包括ipv4和ipv6)
    select * from vpx_network(查询所有的网络名称,包括动态和静态的VLAN名称)
    select * from vpx_snapshot(查询所有做过的snapshot的信息)
    select * from vpx_uptime查询vcenter机器的开机和重启记录,非常的详细
    select * from vpx_vm查询vm的一些信息,包括dns名称和ip地址以及存储位置等
    • 关联查询
    1. 查询时间戳之前哪些虚拟机做了snapshot,用于清理这些snapshot sql-join-select
    select * from vpx_entity join vpx_snapshot
    on vpx_snapshot.vm_id=vpx_entity.id
    and vpx_snapshot.create_time < timestamp '2018-01-01 00:00:00';
    1. 利用pgadmin图形界面的download按钮可以将output直接下载为csv文件。
vCenter 6.7的postgresql数据库
https://dididudu998.github.io/posts/关于vmware的postgresql数据库/
作者
滴滴嘟嘟
发布于
2020-01-17
许可协议
CC BY-NC-SA 4.0