Hi, how to force promtail to use hostname of the machine? I tried -client.external-labels
, but it does not work. It seems I am missing something . Thanks for your help.
Have you seen this thread? https://github.com/grafana/loki/issues/636
First of all, I sorry I mentioned Loki, but I thought Promtail.
Yes, I saw it. But did not read it too carefully. I did it again. But I guess, I should use different way.
There is -config.expand-env=true
and I can save the hostname in env variable. I did some test, hostname
is stored in env variables, but promtail is not using it for instance
in promtail.yml
configuration file. I modified the service file to exec the command with the -config.expand-env=true
and put ${hostname}
to promtail.yml
. But promtail is not pulling the hostname from the env variable.
Are you deploying promtail with some sort of configuration management? I use ansible and set the hostname as a label that way
Yes, I use ansible too. Before we did it via ansible too. Now we need to dynamically change the hostname and I am looking for the way to do it. The script which overwrite the hostname, can also overwrite the ansible yml. I am only looking for the way, how to do it without hardcoding the hostname to the yml config.
Having only ever done it via ansible, it’s not something I have run into. Are you able to extract the hostname from a log line perhaps? I suppose you could set /etc/hostname as a scrape target
That wasn’t a particularly serious suggestion btw… let me also have a think about it
I have made it as env variable, because of this article https://grafana.com/docs/loki/latest/clients/promtail/configuration/#use-environment-variables-in-the-configuration
But I was not able to pull it via the config
I tried ${HOSTNAME}
etc., but no success. The promtail sees instance=""
Can you show your promtail config where you set the label?
Seems it’s not working for me either when i test now with -config.expand-env=true
Yes, thats the point. I send the conf later today. I already erased the test device and doing fresh install.
I tried also -config.expand-env
or -config.expand-env true
, but no luck
I was setting it directly in the service file for promtail.
I tested on a super old server with sysvinit, no luck
It is supported on promtail version 2.1+
I am trying it on fresh Archlinux with latest packages
Promtail i was using is 2.2
My try:
journal:
max_age: 12h
labels:
job: systemd-journal
instance: ${HOSTNAME}
relabel_configs:
- source_labels: ['__journal__systemd_unit']
target_label: 'unit'```
I tried it even with quotes etc.