Advertisement
msemochkin

Proxmox

Feb 7th, 2017
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.60 KB | None | 0 0
  1. import json
  2. from proxmoxer import ProxmoxAPI
  3. from pyzabbix import ZabbixMetric, ZabbixSender
  4.  
  5. proxmox = ProxmoxAPI('ip.ip.ip.ip',
  6.                      user='root@pam',
  7.                      password='password',
  8.                      verify_ssl=False)
  9.  
  10. discovery = {'data': []}
  11. packet = []
  12.  
  13. for node in proxmox.nodes.get():
  14.     for vm in proxmox.nodes(node['node']).lxc.get():
  15.         discovery['data'].append({'{#CONTAINER_NAME}': vm['name'],
  16.                                   '{#CONTAINER_ID}': vm['vmid']})
  17.  
  18.         packet.append(ZabbixMetric('host', 'vmidcpu[{id}]'.format(id=vm['vmid']), vm['cpu']))
  19.         packet.append(ZabbixMetric('host', 'vmidfreemem[{id}]'.format(id=vm['vmid']),
  20.                                    int(100*int(vm['mem'])/int(vm['maxmem']))))
  21.         packet.append(ZabbixMetric('host', 'vmidfreedisk[{id}]'.format(id=vm['vmid']),
  22.                                    int(100*int(vm['disk'])/int(vm['maxdisk']))))
  23.  
  24.     for vm in proxmox.nodes(node['node']).qemu.get():
  25.         discovery['data'].append({'{#CONTAINER_NAME}': vm['name'],
  26.                                   '{#CONTAINER_ID}': vm['vmid']})
  27.         packet.append(ZabbixMetric('host', 'vmidcpu[{id}]'.format(id=vm['vmid']), vm['cpu']))
  28.         packet.append(ZabbixMetric('host', 'vmidfreemem[{id}]'.format(id=vm['vmid']), int(100*int(vm['mem'])/int(vm['maxmem']))))
  29.         packet.append(ZabbixMetric('host', 'vmidfreedisk[{id}]'.format(id=vm['vmid']), int(100*int(vm['disk'])/int(vm['maxdisk']))))
  30.  
  31. packet.append(ZabbixMetric('host', 'vmids', json.dumps(discovery, indent=2)))
  32.  
  33. result = ZabbixSender(use_config=True).send(packet)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement