Hostname-Lookup
logstash-gelf contains a class (biz.paluch.logging.RuntimeContainer) which performs a hostname resolution on the first use of the framework. This can take some time, especially, when your DNS is not set up for all host addresses.
The lookup is performed in that way:
- Retrieve all
InetAddress
es from allNetworkInterface
s - Skip
LoopbackAdress
es - Skip all
InetAddress
es which cannot be resolved to a FQDN (HostAddress
equalsCanonicalHostName
) - Use first
InetAddress
that passes that rules. - If none passes, use
LocalHost
InetAddress
- If the lookup fails, hostname and FQDN hostname will be set to “unknown”
You can take control over the lookup order. Sometimes your host's have a real address on the localhost but a cluster name on the network devices and sometimes the other way arournd.
Controlling lookup order
You can provide a system property, logstash-gelf.resolutionOrder
to control the lookup order.
- Use
localhost,network
for: First inspect the localhost name, then try to get the host name from network devices. - Use
network,localhost
for: First inspect the network devices to retrieve a hos name, then try to get the hostname from the localhost (default).
Bypassing Hostname-Lookup
You can bypass that process by setting some SystemProperties. Set logstash-gelf.skipHostnameResolution
to true
to bypass the resolution. If you've set the originHost
property on
your logger, so the properties value will be used anyway. If you didn't set the originHost
property, and lookup is disabled, the value “unknown” will be used as hostname.
Default/Fallback Values for Hostname-Lookup
- Set
logstash-gelf.hostname
to use a fixed hostname (simple). This property can be handy in case the lookup runs into IO Exceptions. - Set
logstash-gelf.fqdn.hostname
to use a fixed hostname (fully qualified). This property can be handy in case the lookup runs into IO Exceptions.
See Javadoc for further details.