Sidebar

Combodo

iTop Extensions

Data collector for Proxmox

name:
Data collector for Proxmox
description:
Synchronize Proxmox managed devices into iTop
version:
1.0.0
release:
2026-04-14
itop-version-min:
3.2.0
code:
combodo-proxmox-data-collector
state:
Prototype
php-version-max:
8.3

This stand-alone application enables administrators to automatically feed iTop with relevant and accurate information from their Proxmox infrastructure. It must be used with the Data model for Proxmox that brings dedicated Proxmox elements to iTop's CMDB.

Proxmox Data Collector

Features

The Data collector for Proxmox is a stand-alone PHP software that extracts information about a set of configuration items (CIs) from the Proxmox infrastructure and synchronizes it with the iTop's CMDB.

  • Collection of CI informations is done through Proxmox standard web services,
  • Synchronization follows iTop's built-in Data Synchronization mechanism.
This collector makes use of iTop's built-in Data Synchronization mechanism. For more information about how the data synchronization works, refer to Data Synchronization Overview and relies on Data collector Base mechanism

The collector currently focuses on the following classes of objects, for which collection can be activated or deactivated on an individual basis:

  • OS Family
  • OS Version
  • Proxmox Cluster
  • Proxmox HA Group
  • Proxmox Node / Serveur
  • Physical Interface
  • Proxmox Disk
  • Proxmox Storage Type
  • Proxmox Storage
  • Virtual machine
  • Proxmox Container
  • Logical Interface
  • IPv4 Address - Requires TeemIP / IPAM for iTop extension
  • IPv6 Address - Requires TeemIP / IPAM for iTop extension
  • Link Logical Interface / P address - Requires TeemIP / IPAM for iTop extension

The collection mechanism can be extended.

Revision History

Version Release Date Comments
1.0.0 2026-01-14 First version

Limitations

None

Requirements

Usage of the collector requires you to comply with a few points:

  • An access to the Proxmox web services API must be granted,
  • An access to the iTop web services API must be granted as well,
  • The Proxmox objects synchronized by the collector must exist in iTop as CMDB CIs:
  • From a system standpoint:
    • You'll need to comply with the requirements expressed in the Data collector Base documentation.
    • PHP version should be 8.1, 8.2 or 8.3.

Installation

Do not install this extension in your webserver directories (like apache) otherwise your configuration files (with URLs, credentials) may be accessible from outside

Simply expand the content of the zip archive into a folder on the machine where the collector will be run.

Configuration

The configuration of the application is built by concatenating 4 files:

  1. conf/params.distrib.xml that is provided by the collector framework, Data collector Base. It should not be modified.
  2. collectors/params.distrib.xml that holds the entries that are specific to the Data collector for Proxmox. It should not be modified.
  3. collectors/extensions/params.distrib.xml that holds entries that have been created and added by the customer to answer its specific needs. This file is optional.
  4. conf/params.local.xml where the collector can be adapted to the specific customer needs.
The Itop data collector documentation describes the configuration process in details

The collectors/params.distrib.xml configuration file contains parameters that must (for some) or can (for others) be changed when configuring the collector, which is done via the conf/params.local.xml file.

<?xml version="1.0" encoding="UTF-8"?><!-- Default values for parameters. Do NOT alter this file, use params.local.xml instead -->
<parameters>
        <!-- Connection parameters -->
        ...
           List of parameters to connect to the remote Proxmox application
        ...
 
        <!-- Proxmox classes parameters -->
        ...
           List of Proxmox classes with their parameters
        ...
 
        <!-- Class collection sequence -->
        ...
           List of classes to collect with the rank in the collection process
        ...
 
        <!-- Global parameters -->
        ...
           List of parameters that are global to the collector
        ...
 
        <!-- Data synchronization parameters -->
        ...
           Placeholders for the synchro data sources
        ...
 
        <!-- Mapping tables -->
        ...
           Set of mapping tables
        ...
 
</parameters>

The collectors/extensions/params.distrib.xml configuration file contains the parameters used to collect additional classes required by a customer.

<?xml version="1.0" encoding="UTF-8"?><!-- Default values for parameters. Do NOT alter this file, use params.local.xml instead -->
<parameters>
        <!-- Additional Proxmox classes parameters  -->
        ...
           List of additional classes to collect
        ...
 
        <!-- Class collection sequence -->
        ...
           List of additional classes to collect with the rank in the collection process
        ...
 
</parameters>

Connection parameters

This set of parameters is required to connect to the iTop application or the Proxmox environment. Some of them must or may be adapted to meet customers' own environment.

Parameter Meaning Sample value
itop_url URL to the iTop Application https://localhost/myitop
itop_login Login (user account) to connect to iTop. Must have admin rights with rest profile to execute the data synchro admin
itop_password Password for the iTop account admin_pwd
itop_token Token defined in iTop for a given user. Please, refer to the Authentication by Token extension
itop_login_mode Redefine the login_mode defined in URLs that access iTop
proxmox_host Host name or IP of the Proxmox cluster my.proxmoxserver.com
proxmox_port Port to use to reach the cluster 8006
proxmox_authentication_type Proxmox provides 2 types of login: ticket_cookie or api_tokens ticket_cookie
proxmox_username Login with enough priviledges to connect to the Proxmox application root@pam
proxmox_password Related password myproxmoxpwd

Proxmox classes parameters

In addition to the connection parameters described above, the collectors/params.distrib.xml file provides the list of all Proxmox classes that need to be discovered together with their subset of parameters that should be synchronized within iTop. Since Proxmox data retrieval is performed in JSON format, this list must be aligned with the requirements expected by the standard JSON collector defined in the data collector base.

Looking, for instance, at the Virtual Machine class, we have:

    <!-- Virtual machines -->
    <itopvirtualmachineproxmoxcollector>
        <jsonfile>$jsonfile_path$/ProxmoxVirtualMachine.json</jsonfile>
        <path>data</path>
        <fields>
            <primary_key>id</primary_key>
            <business_criticity>business_criticity</business_criticity>
            <cores_per_socket>cores_per_socket</cores_per_socket>
            <cpu>cpu</cpu>
            <cpu_model>cpu_model</cpu_model>
            <description>description</description>
            <host_id>node</host_id>
            <logicalvolumes_list></logicalvolumes_list>
            <managementip>managementip</managementip>
            <managementip_id>managementip</managementip_id>
            <name>name</name>
            <numa>numa</numa>
            <org_id>org_id</org_id>
            <osfamily_id>ostype</osfamily_id>
            <osversion_id>ostype</osversion_id>
            <power_state>power_state</power_state>
            <proxmoxhagroup_id>hagroup</proxmoxhagroup_id>
            <ram>memory</ram>
            <socket_count>socket_count</socket_count>
            <status>status</status>
            <uuid>vmid</uuid>
        </fields>
        <defaults>
            <business_criticity>medium</business_criticity>
            <logicalvolumes_list></logicalvolumes_list>
            <org_id>Demo</org_id>
            <status>production</status>
        </defaults>
    </itopvirtualmachineproxmoxcollector>
Parameter Meaning Sample value
jsonfile Define path to the JSON file where Proxmox data have been extracted and saved $jsonfile_path$/ProxmoxVirtualMachine.json
path Path to find the data to synchronize in JSON file data
fields List of objects' fields to be considered by the synchro engine See xml default above
defaults List of default values to be used, if required See xml default above
The $jsonfile_path$ placeholder allows you to easily define an absolute path for the json file and use if for the collected classes

The list defined within the <fields> section must comply with the following syntax: <itop_attribute_name>proxmox_attribute_name</itop_attribute_name>

With:

  • The XML tag defines the exact name of an iTop attribute for the class, such as host_id, org_id, or uuid in the example above.
  • The value contained in the XML tag defines the name of the attribute in the Proxmox environment.

Class collection sequence

This section defines the list of classes that will be collected and in which order. It also allows you to disable the collection of a class.

  <collectors_launch_sequence type="array">
    <!-- OS Families -->
    <collector>
        <name>iTopOSFamilyProxmoxCollector</name>
        <enable>yes</enable>
        <rank>1</rank>
    </collector>
    <!-- OS Versions -->
    <collector>
        <name>iTopOSVersionProxmoxCollector</name>
        <enable>yes</enable>
        <rank>2</rank>
    </collector>
    <!-- IPv4 Addresses -->
    <collector>
        <name>iTopIPv4AddressProxmoxCollector</name>
        <enable>yes</enable>
        <rank>3</rank>
    </collector>
    <!-- IPv6 Addresses -->
    <collector>
        <name>iTopIPv6AddressProxmoxCollector</name>
        <enable>yes</enable>
        <rank>4</rank>
    </collector>
    <collector>
        <name>iTopProxmoxStorageTypeProxmoxCollector</name>
        <enable>yes</enable>
        <rank>4</rank>
    </collector>
    <!-- ProxmoxClusters -->
    <collector>
        <name>iTopProxmoxClusterProxmoxCollector</name>
        <enable>yes</enable>
        <rank>10</rank>
    </collector>
    ...
  </collectors_launch_sequence>
Parameter Meaning Sample value
name Name of the Proxmox class collector iTopVirtualMachineProxmoxCollector
enable Enable or disable its collect yes / no
rank Relative rank in the collection 70

Global parameters

This section contains some settings that are global to the application.

<?xml version="1.0" encoding="UTF-8"?>
  <parameters>
    ...
    <jsonfile_path>/var/www/html/dev/collectors/proxmox/proxmox-collector/data</jsonfile_path>
    <manage_ipv6>no</manage_ipv6>
    ...
  </parameters>
Parameter Meaning Sample value
jsonfile_path Path where collected json data will be stored /var/www/html/dev/collectors/proxmox/proxmox-collector/data
manage_ipv6 Defines if IPv6 should be considered or not no

Synchro data source parameters

These are dedicated to the synchronization data sources that the collector creates. Some of them must or may be adapted to meet customers' own environment.

Parameter Meaning Sample value
name_prefix String used to prefix the name of all Proxmox synchro data sources Proxmox
name_postfix String used to postfix the name of all Proxmox synchro data sources Discovery
class_synchro_name Name of the synchro as it will appear in iTop $name_prefix$ Proxmox Clusters $name_postfix$
full_load_interval The delay (expressed in seconds) between two complete imports of the data. The objects which have not been detected by the collector during a timespan longer than this interval will be considered as obsolete and marked as such in iTop. Adjust this value depending on the scheduling recurrence. 604800
synchro_status Default status for the synchro data source production
synchro_user If the user account used for running this synchronization is not an Administrator, then its login must be specified here, since iTop allows only the administrators and the specified user to run the synchronization.
contact_to_notify The email address of an existing contact (person or team) in iTop to be notified of the results of the synchronization. it.support@demo.com

Mapping tables

This section groups the mapping tables used by the collector.

Parameter Meaning
server_status_mapping Mapping table for the servers' status
server_quorum_status_mapping Mapping table for the quorum status on servers
server_powerstate_mapping Mapping table for the servers' power state
os_family_mapping Mapping table for the OS Family
os_version_mapping Mapping table for the OS Version
virtual_machine_numa_mapping Mapping table for the VMs' numa

Should you require further details on how mapping tables should be built and use, please refer to the Data mapping chapter of the Data collector Base documentation.

Usage

The launch of the Proxmox collector will be driven by the command and parameters defined in the usage section of iTop Data collector base. Once launched:

  1. The configuration files are consolidated.
  2. The collection plan is built, based on the list of classes that have been enabled in the configuration file.
  3. Synchronisation data sources are created or updated if required.
  4. The collector authenticates and connects to Proxmox, retrieves all the required data from it and stores it in the ProxmoxData.json file under the <collector>/data directory.
  5. For each of the classes that should be collected, a dedicated json file is built from the data extracted from Proxmox.
  6. The collector then builds csv files with all the data that are required in iTop.
  7. Synchronisation runs and the Proxmox objects are pushed to iTop where they will be created or updated.
You may schedule the collector either with cron on Unix systems or with the Task Scheduler on Windows
extensions/combodo-proxmox-data-collector.txt ยท Last modified: 2026/01/07 10:51 by 127.0.0.1
Back to top
Contact us