Uploaded image for project: 'Observium'
  1. Observium
  2. OBS-494

Initial support for Proxmox VE guest monitoring

Details

    Description

      This patch against r4386 adds preliminary support for
      monitoring guests running on Proxmox VE platform. Both
      OpenVZ containers and KVM virtual machines are supported.

      Poller connects to Proxmox node via Proxmox's PVE2 API
      and polls stats from all guests on all hosts in a cluster.
      Stores RRD files under proxmox subdir for each device.

      Included PVE2 API client code used by poller is taken from
      https://github.com/CpuID/pve2-api-php-client.

      It also adds "Proxmox VE Guests" tab on the device page
      that displays CPU, Memory, Disk Usage, Disk I/O and Network
      Traffic statistics for each guest.

      Attachments

        Issue Links

          Activity

            [OBS-494] Initial support for Proxmox VE guest monitoring

            Haven't looked at this in a long while; I'm also running proxmox these days though. Have some plans regarding "vm as entity", which would incorporate proxmox api access (we already do this now for the vm detection itself) for the vm stats, but obviously I'd want that infrastructure to also work on libvirt/vmware/... VMs.

            sid3windr Tom Laermans added a comment - Haven't looked at this in a long while; I'm also running proxmox these days though. Have some plans regarding "vm as entity", which would incorporate proxmox api access (we already do this now for the vm detection itself) for the vm stats, but obviously I'd want that infrastructure to also work on libvirt/vmware/... VMs.
            moxrox Mr Roger added a comment -

            +1 vote, would be great to find a way to adapt this into Observium. It will help us monitor a large part of our network.

            moxrox Mr Roger added a comment - +1 vote, would be great to find a way to adapt this into Observium. It will help us monitor a large part of our network.

            Is this still relevant?

            adama Adam Armstrong added a comment - Is this still relevant?

            Hey, i have one Question.

            i add the Patch with "patch -p0 < proxmox_ve3.3.patch" and add the SQL.

            But i have no menu point where i can see the OpenVZ Container. Somebody can give me a tip what is wrong?

            thanks
            Mike

            mech Mike Kaldig added a comment - Hey, i have one Question. i add the Patch with "patch -p0 < proxmox_ve3.3.patch" and add the SQL. But i have no menu point where i can see the OpenVZ Container. Somebody can give me a tip what is wrong? thanks Mike
            anthonysomerset Anthony Somerset added a comment - - edited

            Updated Patch: allow graphs to be changed via dropdown submenu when you click a single graph on Proxmox VE tab

            anthonysomerset Anthony Somerset added a comment - - edited Updated Patch: allow graphs to be changed via dropdown submenu when you click a single graph on Proxmox VE tab
            anthonysomerset Anthony Somerset added a comment - - edited

            Updated Patch:

            Graphs now split out to separate graphtype primitives where i could (CPU, DiskIO, NetworkIO)

            also cleaned up unneccesary code checks in graph types where possible and corrected the $rrdfile variable to the officially used $rrd_filename variable

            the patch also was generated differently - so copy the patch into your observium dir and apply it rather than from the directory above

            eg assuming your svn checkout is /opt/observium copy the patch into /opt/observium/proxmox_ve3.2.patch and run
            patch -p0 < proxmox_ve3.2.patch from within /opt/observium

            anthonysomerset Anthony Somerset added a comment - - edited Updated Patch: Graphs now split out to separate graphtype primitives where i could (CPU, DiskIO, NetworkIO) also cleaned up unneccesary code checks in graph types where possible and corrected the $rrdfile variable to the officially used $rrd_filename variable the patch also was generated differently - so copy the patch into your observium dir and apply it rather than from the directory above eg assuming your svn checkout is /opt/observium copy the patch into /opt/observium/proxmox_ve3.2.patch and run patch -p0 < proxmox_ve3.2.patch from within /opt/observium

            replacing 3.1 patch as it had some typos in....

            still rolled againse R4727

            anthonysomerset Anthony Somerset added a comment - replacing 3.1 patch as it had some typos in.... still rolled againse R4727

            fresh proxmox patch rolled against R4727 - minor fix for displaying menu bar item on device page

            anthonysomerset Anthony Somerset added a comment - fresh proxmox patch rolled against R4727 - minor fix for displaying menu bar item on device page

            @rlex - i need to update the patch to work with current revisions of observium - i'd personally say that things are somewhat stalled at the moment for 2 reasons

            1) my time to work on some of the items @adama has highlighted relating to graphing
            2) possible wider discussion of how to make this fit in with other supported virtualisation platforms in observium - in a consistent manner and to avoid UI bloat

            at the moment the patch does work (when i upload a new version shortly)

            anthonysomerset Anthony Somerset added a comment - @rlex - i need to update the patch to work with current revisions of observium - i'd personally say that things are somewhat stalled at the moment for 2 reasons 1) my time to work on some of the items @adama has highlighted relating to graphing 2) possible wider discussion of how to make this fit in with other supported virtualisation platforms in observium - in a consistent manner and to avoid UI bloat at the moment the patch does work (when i upload a new version shortly)
            rlex Lex R added a comment -

            Just wondering if you still work on proxmox support or this is abandoned?

            rlex Lex R added a comment - Just wondering if you still work on proxmox support or this is abandoned?
            anthonysomerset Anthony Somerset added a comment - - edited

            sounds like a much bigger task there that might need carefully planning and mapping out - i like the desired outcome and i suspect it could be done with a bit of work - the migration of current stuff might be the bigger challenge (although not such an issue with vmware as right now its only a VM listing) - we may need to create seperate tickets for this:

            • Do initial ground work on a generic virtual machines backend and UI that will fit with all existing technologies supported (vmware/libvirt/proxmox)
            • Work on the tech specific discoverers and pollers
            • code to migrate existing vm data to new setup (libVirt/VMWare)

            i think the generic poller would still have to have specific proxmox/vmware/libvirt code that runs depending on the value of a specific field in the DB row because of the very different way the data is obtained - e.g

            • VMware uses SNMP
            • Proxmox uses the HTTP API via php-curl (nothing proxmox specific is exposed on SNMP) it also downloads the RRD's direct too
            • libVirt - via the libvirt tools - i did see the following that may simplify this depending on the data we discover/poll for already - not sure how fit for purpose that would be - but may be food for thought if the need to make things more generic were to arise: http://wiki.libvirt.org/page/Libvirt-snmp
            anthonysomerset Anthony Somerset added a comment - - edited sounds like a much bigger task there that might need carefully planning and mapping out - i like the desired outcome and i suspect it could be done with a bit of work - the migration of current stuff might be the bigger challenge (although not such an issue with vmware as right now its only a VM listing) - we may need to create seperate tickets for this: Do initial ground work on a generic virtual machines backend and UI that will fit with all existing technologies supported (vmware/libvirt/proxmox) Work on the tech specific discoverers and pollers code to migrate existing vm data to new setup (libVirt/VMWare) i think the generic poller would still have to have specific proxmox/vmware/libvirt code that runs depending on the value of a specific field in the DB row because of the very different way the data is obtained - e.g VMware uses SNMP Proxmox uses the HTTP API via php-curl (nothing proxmox specific is exposed on SNMP) it also downloads the RRD's direct too libVirt - via the libvirt tools - i did see the following that may simplify this depending on the data we discover/poll for already - not sure how fit for purpose that would be - but may be food for thought if the need to make things more generic were to arise: http://wiki.libvirt.org/page/Libvirt-snmp

            People

              sid3windr Tom Laermans
              anthonysomerset Anthony Somerset
              Votes:
              1 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated: