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

            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

            Yeah, the existing vmware/libvirt stuff is also non-generic, so it's a pain to keep updated.

            It all needs to be merged in to a single database table and UI with a bit of logic to show graphs and data where they apply.

            I think the correct way to do it would be to have the proxmox/libvirt/vmware pollers build a generic array which is processed by a generic vm poller module.

            One of our primary pushes at the moment is to try to limit/reduce UI code growth, as the last major UI migration was a huge headache (and still isn't completed).

            adama Adam Armstrong added a comment - Yeah, the existing vmware/libvirt stuff is also non-generic, so it's a pain to keep updated. It all needs to be merged in to a single database table and UI with a bit of logic to show graphs and data where they apply. I think the correct way to do it would be to have the proxmox/libvirt/vmware pollers build a generic array which is processed by a generic vm poller module. One of our primary pushes at the moment is to try to limit/reduce UI code growth, as the last major UI migration was a huge headache (and still isn't completed).

            Adam, i've gone through the VMware code for the UI and the db, and while it looks to be possible to share a DB table, I wouldn't recommend it in my personal opinion because of the fundamental UI differences I mention below (at least at this stage anyway)

            Sharing the UI isn't really possible at this stage as VMware section only lists the vm's and status but no RRD's by the looks of things (i say this having only looked at the code as i don't have a VMware server in which to test the UI with) whereas Proxmox is just pulling and displaying the RRD's in the UI - unless there is a plan to extend the VMware/libVirt stuff to start pulling perf/rrd data (i've assumed its possible but haven't looked into it)

            If the issue is in maintenance due to not having access to Proxmox servers/clusters to test, i'd be happy to step up to maintain these parts assuming it makes it into SVN - i live on the bleeding edge with Observium anyway so would know quite quickly if it broke!

            anthonysomerset Anthony Somerset added a comment - Adam, i've gone through the VMware code for the UI and the db, and while it looks to be possible to share a DB table, I wouldn't recommend it in my personal opinion because of the fundamental UI differences I mention below (at least at this stage anyway) Sharing the UI isn't really possible at this stage as VMware section only lists the vm's and status but no RRD's by the looks of things (i say this having only looked at the code as i don't have a VMware server in which to test the UI with) whereas Proxmox is just pulling and displaying the RRD's in the UI - unless there is a plan to extend the VMware/libVirt stuff to start pulling perf/rrd data (i've assumed its possible but haven't looked into it) If the issue is in maintenance due to not having access to Proxmox servers/clusters to test, i'd be happy to step up to maintain these parts assuming it makes it into SVN - i live on the bleeding edge with Observium anyway so would know quite quickly if it broke!

            People

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

              Dates

                Created:
                Updated: