Use the udplog receiver, not the syslog receiver
The HSM emits a non-standard RFC 3164 variant with no hostname field and no tag field. The collector’ssyslog receiver accepts these messages without reporting an error, but it discards the useful structure: it produces no hostname and collapses the entire event into one string.
This guide therefore takes the raw datagram with the udplog receiver and applies an explicit regular expression. For the message anatomy and a side-by-side comparison of both approaches, see Appendix A: Futurex syslog message format.
Configuration
Save the following asotel-collector.yaml. Change listen_address if you chose a different port.
Collector versions from
v0.159.0 onward log a deprecation warning for the otlphttp exporter name and prefer otlp_http. The otlphttp name still works and remains compatible with older collectors, so this guide keeps it. If you standardize on a recent collector, rename it.memory_limiter processor must be listed first in the pipeline so that it can reject data before other processors allocate memory.
Run the collector
Both methods below read the token from the environment so it never appears in the configuration file.Docker
latest, so a future release cannot change parsing behavior without your knowledge.
systemd
Install the Contrib binary, then create/etc/systemd/system/otelcol-observe.service:
Confirm the collector started
udplog receiver.
Restrict access to the listener
The syslog listener accepts unauthenticated UDP from any host that can reach it. Restrict it to the HSM addresses at the host firewall. For example, withfirewalld:
10.0.0.10 with the address of each HSM that forwards logs.
