Summary
When configuring the Blackbox Exporter/FRR Exporter/Node Exporter service to use an IPv6 address as the listen-address, the service fails to start and reports an error due to improper formatting of the address. The error message indicates that there are "too many colons in address," which is a result of the systemd unit not enclosing the IPv6 address in brackets.
This could be considered to be a regression of https://vyos.dev/T4680.
Error Message
The following error is logged when the Node Exporter attempts to start with an IPv6 address:
Sep 07 17:15:55 <redacted> node_exporter[6798]: time=2025-09-07T17:15:55.599Z level=ERROR source=node_exporter.go:247 msg="listen tcp: address XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1:9100: too many colons in address"
Systemd Unit Status
The service status indicates a failure:
# systemctl status node_exporter
× node_exporter.service - Node Exporter
Loaded: loaded (/etc/systemd/system/node_exporter.service; disabled; preset: enabled)
Active: failed (Result: exit-code) since Sun 2025-09-07 17:15:55 UTC; 31s ago
Duration: 386ms
Docs: https://github.com/prometheus/node_exporter
Process: 6798 ExecStart=/usr/sbin/node_exporter --web.listen-address=XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1:9100 (code=exited, status=1/FAILURE)
Main PID: 6798 (code=exited, status=1/FAILURE)
CPU: 340msRoot Cause
The issue arises from the systemd service unit template service.j2 located at this path in vyos-1x. The template does not include checks for IPv6 addresses and fails to add the necessary brackets ([]) around the address.
Steps to Reproduce
To replicate the issue, use one of the following configurations:
set service monitoring prometheus blackbox-exporter listen-address ::1 set service monitoring prometheus frr-exporter listen-address ::1 set service monitoring prometheus node-exporter listen-address ::1
Suggested Fix
Modify the service.j2 template to include | bracketize_ipv6 for the {{ address }} (so it becomes {{ address | bracketize_ipv6 }}) so that it automatically adds brackets around IPv6 listen-addresses. This will ensure that the various exporter service can start successfully when configured with an IPv6 address.