mirror of
				https://github.com/vyos/vyos-documentation.git
				synced 2025-10-26 08:41:46 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			290 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			290 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
| ##########
 | |
| Monitoring
 | |
| ##########
 | |
| 
 | |
| VyOS supports monitoring through Telegraf as well as through Prometheus exporters.
 | |
| 
 | |
| ********
 | |
| Telegraf
 | |
| ********
 | |
| 
 | |
| Telegraf is the open source server agent to help you collect metrics, events
 | |
| and logs from your routers.
 | |
| 
 | |
| The following Telegraf plugins are configurable to export metrics and logs:
 | |
|  * Azure Data Explorer
 | |
|  * Prometheus Client
 | |
|  * Splunk
 | |
|  * InfluxDB
 | |
|  * Loki
 | |
| 
 | |
| 
 | |
| Azure data explorer
 | |
| ===================
 | |
| Telegraf output plugin azure-data-explorer_.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer authentication client-id <client-id>
 | |
| 
 | |
|    Authentication application client-id.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer authentication client-secret <client-secret>
 | |
| 
 | |
|    Authentication application client-secret.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer authentication tenant-id <tenant-id>
 | |
| 
 | |
|    Authentication application tenant-id
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer database <name>
 | |
| 
 | |
|    Remote database name.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer group-metrics <single-table | table-per-metric>
 | |
| 
 | |
|    Type of metrics grouping when push to Azure Data Explorer. The default is
 | |
|    ``table-per-metric``.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer table <name>
 | |
| 
 | |
|    Name of the single table Only if set group-metrics single-table.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf azure-data-explorer url <url>
 | |
| 
 | |
|    Remote URL.
 | |
| 
 | |
| 
 | |
| Prometheus client
 | |
| =================
 | |
| Telegraf output plugin prometheus-client_
 | |
| This plugin allows export of Telegraf metrics to Prometheus,
 | |
| for Prometheus native metrics through exporters see section below.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client
 | |
| 
 | |
|    Output plugin Prometheus client
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client allow-from <prefix>
 | |
| 
 | |
|    Networks allowed to query this server
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client authentication username <username>
 | |
| 
 | |
|    HTTP basic authentication username
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client authentication password <password>
 | |
| 
 | |
|    HTTP basic authentication username
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client listen-address <address>
 | |
| 
 | |
|    Local IP addresses to listen on
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client metric-version <1 | 2>
 | |
| 
 | |
|    Metris version, the default is ``2``
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf prometheus-client port <port>
 | |
| 
 | |
|    Port number used by connection, default is ``9273``
 | |
| 
 | |
| Example:
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|   set service monitoring telegraf prometheus-client
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|   vyos@r14:~$ curl --silent localhost:9273/metrics | egrep -v "#" |  grep cpu_usage_system
 | |
|   cpu_usage_system{cpu="cpu-total",host="r14"} 0.20040080160320556
 | |
|   cpu_usage_system{cpu="cpu0",host="r14"} 0.17182130584191915
 | |
|   cpu_usage_system{cpu="cpu1",host="r14"} 0.22896393817971655
 | |
| 
 | |
| 
 | |
| Splunk
 | |
| ======
 | |
| Telegraf output plugin splunk_ HTTP Event Collector.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf splunk authentication insecure
 | |
| 
 | |
|    Use TLS but skip host validation
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf splunk authentication token <token>
 | |
| 
 | |
|    Authorization token
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf splunk authentication url <url>
 | |
| 
 | |
|    Remote URL to Splunk collector
 | |
| 
 | |
| Example:
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|   set service monitoring telegraf splunk authentication insecure
 | |
|   set service monitoring telegraf splunk authentication token 'xxxxf5b8-xxxx-452a-xxxx-43828911xxxx'
 | |
|   set service monitoring telegraf splunk url 'https://192.0.2.10:8088/services/collector'
 | |
| 
 | |
| 
 | |
| InfluxDB
 | |
| ========
 | |
| Telegraf output plugin influxdb_ to write metrics to ``InfluxDB`` via HTTP.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf influxdb authentication organization <organization>
 | |
| 
 | |
|    Authentication organization name
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf influxdb authentication token <token>
 | |
| 
 | |
|    Authentication token
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf bucket <bucket>
 | |
| 
 | |
|    Remote ``InfluxDB`` bucket name
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf influxdb port <port>
 | |
| 
 | |
|    Remote port
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf influxdb url <url>
 | |
| 
 | |
|    Remote URL
 | |
| 
 | |
| 
 | |
| Example:
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|   set service monitoring telegraf influxdb authentication organization 'vyos'
 | |
|   set service monitoring telegraf influxdb authentication token 'ZAml9Uy5wrhA...=='
 | |
|   set service monitoring telegraf influxdb bucket 'bucket_vyos'
 | |
|   set service monitoring telegraf influxdb port '8086'
 | |
|   set service monitoring telegraf influxdb url 'http://r1.influxdb2.local'
 | |
| 
 | |
| 
 | |
| Loki
 | |
| ====
 | |
| 
 | |
| Telegraf can be used to send logs to loki_ using tags as labels.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf loki port <port>
 | |
| 
 | |
|    Remote Loki port
 | |
| 
 | |
|    Default is 3100
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf loki url <url>
 | |
| 
 | |
|    Remote Loki url
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf loki authentication username <username>
 | |
| .. cfgcmd:: set service monitoring telegraf loki authentication password <password>
 | |
| 
 | |
|    HTTP basic authentication.
 | |
| 
 | |
|    If either is set both must be set.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring telegraf loki metric-name-label <label>
 | |
| 
 | |
|    Label to use for the metric name when sending metrics.
 | |
| 
 | |
|    If set to an empty string, the label will not be added.
 | |
|    This is NOT recommended, as it makes it impossible to differentiate
 | |
|    between multiple metrics.
 | |
| 
 | |
| .. _azure-data-explorer: https://github.com/influxdata/telegraf/tree/master/plugins/outputs/azure_data_explorer
 | |
| .. _prometheus-client: https://github.com/influxdata/telegraf/tree/master/plugins/outputs/prometheus_client
 | |
| .. _influxdb: https://github.com/influxdata/telegraf/tree/master/plugins/outputs/influxdb_v2
 | |
| .. _splunk: https://www.splunk.com/en_us/blog/it/splunk-metrics-via-telegraf.html
 | |
| .. _loki: https://github.com/influxdata/telegraf/tree/master/plugins/outputs/loki
 | |
| 
 | |
| 
 | |
| **********
 | |
| Prometheus
 | |
| **********
 | |
| 
 | |
| The following Prometheus exporters are configurable to export metrics:
 | |
|  * Node Exporter
 | |
|  * FRR Exporter
 | |
| 
 | |
| 
 | |
| Node Exporter
 | |
| =============
 | |
| Prometheus node_exporter_ which provides a wide range of hardware and OS metrics.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus node-exporter listen-address <address>
 | |
| 
 | |
|   Configure the address node_exporter is listening on.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus node-exporter port <port>
 | |
| 
 | |
|   Configure the port number node_exporter is listening on.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus node-exporter vrf <name>
 | |
| 
 | |
|   Configure name of the :abbr:`VRF (Virtual Routing and Forwarding)` instance.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus node-exporter collectors textfile
 | |
| 
 | |
|   Configure textfile collector to export custom metrics read from
 | |
|   `/run/node_exporter/collector`
 | |
| 
 | |
| 
 | |
| FRR Exporter
 | |
| ============
 | |
| Prometheus frr_exporter_ which provides free range routing metrics.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus frr-exporter listen-address <address>
 | |
| 
 | |
|   Configure the address frr_exporter is listening on.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus frr-exporter port <port>
 | |
| 
 | |
|   Configure the port number frr_exporter is listening on.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus frr-exporter vrf <name>
 | |
| 
 | |
|   Configure name of the :abbr:`VRF (Virtual Routing and Forwarding)` instance.
 | |
| 
 | |
| 
 | |
| Blackbox Exporter
 | |
| =================
 | |
| Prometheus blackbox_exporter_ which allows probing of endpoints over
 | |
| HTTP, HTTPS, DNS, TCP, ICMP and gRPC .
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus blackbox-exporter listen-address <address>
 | |
| 
 | |
|   Configure the address blackbox_exporter is listening on.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus blackbox-exporter port <port>
 | |
| 
 | |
|   Configure the port number blackbox_exporter is listening on.
 | |
| 
 | |
| .. cfgcmd:: set service monitoring prometheus blackbox-exporter vrf <name>
 | |
| 
 | |
|   Configure name of the :abbr:`VRF (Virtual Routing and Forwarding)` instance.
 | |
| 
 | |
| Configuring modules
 | |
| -------------------
 | |
| Blackbox exporter can be configured with different modules for probing DNS or ICMP.
 | |
| 
 | |
| DNS module example:
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|   set service monitoring prometheus blackbox-exporter modules dns name dns4 preferred-ip-protocol ip4
 | |
|   set service monitoring prometheus blackbox-exporter modules dns name dns4 query-name vyos.io
 | |
|   set service monitoring prometheus blackbox-exporter modules dns name dns4 query-type A
 | |
| 
 | |
| ICMP module example:
 | |
| 
 | |
| .. code-block:: none
 | |
| 
 | |
|   set service monitoring prometheus blackbox-exporter modules icmp name ping6 preferred-ip-protocol ip6
 | |
|   set service monitoring prometheus blackbox-exporter modules icmp name ping6 ip-protocol-fallback
 | |
|   set service monitoring prometheus blackbox-exporter modules icmp name ping6 timeout 3
 | |
| 
 | |
| .. _node_exporter: https://github.com/prometheus/node_exporter
 | |
| .. _frr_exporter: https://github.com/tynany/frr_exporter
 | |
| .. _blackbox_exporter: https://github.com/prometheus/blackbox_exporter
 |