External Metric Server: Difference between revisions

From Proxmox VE
Jump to navigation Jump to search
No edit summary
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 4: Line 4:
[[Category:Reference Documentation]]
[[Category:Reference Documentation]]
<pvehide>
<pvehide>
Starting with Proxmox VE 4.0, you can define external metric servers, which will
In Proxmox VE, you can define external metric servers, which will periodically
be sent various stats about your hosts, virtual machines and storages.
receive various stats about your hosts, virtual guests and storages.
Currently supported are:
Currently supported are:
Graphite (see http://graphiteapp.org )
Graphite (see https://graphiteapp.org )
InfluxDB (see https://www.influxdata.com/time-series-platform/influxdb/ )
InfluxDB (see https://www.influxdata.com/time-series-platform/influxdb/ )
The server definitions are saved in /etc/pve/status.cfg
The external metric server definitions are saved in /etc/pve/status.cfg, and
can be edited through the web interface.
Graphite server configuration
Graphite server configuration
The definition of a server is:
The default port is set to 2003 and the default graphite path is proxmox.
graphite: your-id
By default, Proxmox VE sends the data over UDP, so the graphite server has to be
    server your-server
configured to accept this. Here the maximum transmission unit (MTU) can be
    port your-port
configured for environments not using the standard 1500 MTU.
    path your-path
You can also configure the plugin to use TCP. In order not to block the
where your-port defaults to 2003 and your-path defaults to proxmox
important pvestatd statistic collection daemon, a timeout is required to cope
Proxmox VE sends the data over UDP, so the graphite server has to be configured
with network problems.
for this.
Influxdb plugin configuration
Influxdb plugin configuration
The definition is:
Proxmox VE sends the data over UDP, so the influxdb server has to be configured for
influxdb: your-id
this. The MTU can also be configured here, if necessary.
    server your-server
    port your-port
Proxmox VE sends the data over UDP, so the influxdb server has to be configured
for this.
Here is an example configuration for influxdb (on your influxdb server):
Here is an example configuration for influxdb (on your influxdb server):
[[udp]]
[[udp]]
   enabled = true
   enabled = true
   bind-address = "0.0.0.0:8089"
   bind-address = "0.0.0.0:8089"
Line 33: Line 29:
   batch-size = 1000
   batch-size = 1000
   batch-timeout = "1s"
   batch-timeout = "1s"
With this configuration, your server listens on all IP addresses on
With this configuration, your server listens on all IP addresses on port 8089,
port 8089, and writes the data in the proxmox database
and writes the data in the proxmox database
Multiple Definitions and Example
Alternatively, the plugin can be configured to use the http(s) API of InfluxDB 2.x.
The id is optional, but if you want to have multiple definitions of a single
InfluxDB 1.8.x does contain a forwards compatible API endpoint for this v2 API.
type, then the ids must be defined and different from each other.
To use it, set influxdbproto to http or https (depending on your configuration).
Here is an example of a finished status.cfg
By default, Proxmox VE uses the organization proxmox and the bucket/db proxmox
graphite:
(They can be set with the configuration organization and bucket respectively).
    server 10.0.0.5
Since InfluxDB&#8217;s v2 API is only available with authentication, you have
influxdb: influx1
to generate a token that can write into the correct bucket and set it.
    server 10.0.0.6
In the v2 compatible API of 1.8.x, you can use user:password as token
    port 8089
(if required), and can omit the organization since that has no meaning in InfluxDB 1.x.
influxdb: influx2
You can also set the HTTP Timeout (default is 1s) with the timeout setting,
    server 10.0.0.7
as well as the maximum batch size (default 25000000 bytes) with the
    port 8090
max-body-size setting (this corresponds to the InfluxDB setting with the
same name).
</pvehide>
</pvehide>
<!--PVE_IMPORT_END_MARKER-->
<!--PVE_IMPORT_END_MARKER-->

Latest revision as of 17:08, 7 May 2021

screenshot/gui-datacenter-metric-server-list.png

In Proxmox VE, you can define external metric servers, which will periodically receive various stats about your hosts, virtual guests and storages.

Currently supported are:

The external metric server definitions are saved in /etc/pve/status.cfg, and can be edited through the web interface.

Graphite server configuration

screenshot/gui-datacenter-metric-server-graphite.png

The default port is set to 2003 and the default graphite path is proxmox.

By default, Proxmox VE sends the data over UDP, so the graphite server has to be configured to accept this. Here the maximum transmission unit (MTU) can be configured for environments not using the standard 1500 MTU.

You can also configure the plugin to use TCP. In order not to block the important pvestatd statistic collection daemon, a timeout is required to cope with network problems.

Influxdb plugin configuration

screenshot/gui-datacenter-metric-server-influxdb.png

Proxmox VE sends the data over UDP, so the influxdb server has to be configured for this. The MTU can also be configured here, if necessary.

Here is an example configuration for influxdb (on your influxdb server):

[[udp]]
   enabled = true
   bind-address = "0.0.0.0:8089"
   database = "proxmox"
   batch-size = 1000
   batch-timeout = "1s"

With this configuration, your server listens on all IP addresses on port 8089, and writes the data in the proxmox database

Alternatively, the plugin can be configured to use the http(s) API of InfluxDB 2.x. InfluxDB 1.8.x does contain a forwards compatible API endpoint for this v2 API.

To use it, set influxdbproto to http or https (depending on your configuration). By default, Proxmox VE uses the organization proxmox and the bucket/db proxmox (They can be set with the configuration organization and bucket respectively).

Since InfluxDB’s v2 API is only available with authentication, you have to generate a token that can write into the correct bucket and set it.

In the v2 compatible API of 1.8.x, you can use user:password as token (if required), and can omit the organization since that has no meaning in InfluxDB 1.x.

You can also set the HTTP Timeout (default is 1s) with the timeout setting, as well as the maximum batch size (default 25000000 bytes) with the max-body-size setting (this corresponds to the InfluxDB setting with the same name).