KVM 使用 Libvirt远程获取虚拟机信息

Libvirt

Libvirt 是一个软件集合,便于使用者管理虚拟机和使用其他虚拟化功能。包括三个部分

  • API库
  • libvitd 守护进程 daemon
  • 命令行工具 virsh

Libivrt 目标是提供一种单一的方式管理多种不同的虚拟化方式

Libvirt 主要功能包括:

  • 虚拟机管理:比如:启动、停止、暂停、保存、恢复、迁移(支持多种设备热插拔包括磁盘、网卡、内存、CPU)
  • 远程机器支持:只要机器上运行了 libvirtd daemon
  • 存储管理
  • 网络接口管理
  • 虚拟NAT和基于路由的网络

获取每个 instance 的 domain 并获取一些基本信息

import libvirt
conn = libvirt.open("qemu:///system") 
conn.listDomainsID()
domain = conn.lookupByID(id)
print domain.name()  
###instance-0000094f
print domain.UUIDString()
###a14d2bb4-9f44-4580-b60a-fd94a9ad07f3
print domain.info()
###[1, 2097152L, 2097152L, 2, 123420000000L]
conn.close()

获取CPU使用率

import libvirt
conn = libvirt.open("qemu:///system") 
domain = conn.lookupByID(id)

可以通过dom.info()[4]获得cputime

通过dom.info()[3]获得cpu数

获取网流量

import libvirt
from xml.etree import ElementTree
conn = libvirt.open("qemu:///system")
for id in conn.listDomainsID():
    domain = conn.lookupByID(id)
    tree = ElementTree.fromstring(domain.XMLDesc())
    ifaces = tree.findall('devices/interface/target')
    for i in ifaces:
        iface = i.get('dev')
        ifaceinfo = domain.interfaceStats(iface)
        print domain.name(),iface,ifaceinfo
conn.close()
[root@kvm opt]# python libvirt_test.py 
instance1 vnet12 (90L, 1L, 0L, 0L, 1632L, 24L, 0L, 0L)
instance1 vnet13 (63120L, 256L, 0L, 371L, 0L, 0L, 0L, 0L)

domain.interfaceStats(iface)返回结果说明:

(rx_bytes:24194376L, rx_packets:363592L, rx_errs:0L, rx_drop:0L, tx_bytes:852996L, tx_packets:20302L, tx_errs:0L, tx_drop:0L)

rx:net_out 接收(receive)

tx:net_in 发送(transport)

iface = ifaces[1].get(‘dev’)

ifaceinfo = domain.interfaceStats(iface)【4】

https://blog.51cto.com/10616534/1878609

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值