i’m trying to setup grafana promtail to receive logs from a remote system via syslog, but i’m running into an issue. i’ve allocated an ipv6 address, and deployed a simple app with the following configuration.
fly.toml:
app = "promtail"
kill_signal = "SIGINT"
kill_timeout = 5
processes = []
[build]
dockerfile = "Dockerfile.promtail"
[env]
[[services]]
internal_port = 1514
protocol = "tcp"
[[services.ports]]
port = 1514
Dockerfile.promtail
FROM grafana/promtail:2.8.4
COPY promtail-config.yaml /etc/promtail/config.yaml
CMD ["-config.file=/etc/promtail/config.yaml", "-config.expand-env=true"]
promtail-config.yaml
server:
http_listen_port: 9080
grpc_listen_port: 0
positions:
filename: /tmp/positions.yaml
clients:
- url: http://${LOKI_USERNAME}:${LOKI_PASSWORD}@${LOKI_HOST}:3100/loki/api/v1/push
scrape_configs:
- job_name: syslog1
syslog:
listen_address: 0.0.0.0:1514
labels:
job: "syslog"
relabel_configs:
- source_labels: ['__syslog_message_hostname']
target_label: 'host'
ssh’ing into the app, i see it’s listening on *:1514 as IPv6
-> flyctl ssh console -a promtail
root@9185700db73d38:/# lsof -nP -iTCP -sTCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
promtail 255 root 7u IPv6 6374 0t0 TCP *:1514 (LISTEN)
promtail 255 root 8u IPv6 6375 0t0 TCP *:9080 (LISTEN)
promtail 255 root 9u IPv6 6376 0t0 TCP *:45875 (LISTEN)
hallpass 256 root 6u IPv6 6355 0t0 TCP [fdaa:2:6c61:a7b:162:3d14:776b:2]:22 (LISTEN)
but any attempt to reach it fails:
-> mtr $(fly ips list -j -a promtail | jq -r '.[] .Address')
mtr: udp socket connect failed: No route to host
-> nc -v6 $(fly ips list -j -a promtail | jq -r '.[] .Address') 1514
nc: connectx to 2a09:8280:1::42:63a8 port 1514 (tcp) failed: No route to host
i thought leaving off the handlers in the fly toml would just be a pass through. is there something else i’m missing?