Page MenuHomePhabricator

pdns auth metrics unreachable on prod network
Closed, ResolvedPublic

Description

While investigating T336854 it was noticed that cloudmetrics hosts try talking to cloudservices100[56]:8081 and fail. It looks like pdns auth listens only on the cloud vps address and not the production address:

cloudservices1005:~# lsof -i tcp:8081
COMMAND      PID USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
pdns_serv 796099 pdns    7u  IPv4 157511252      0t0  TCP cloudservices1005.private.eqiad.wikimedia.cloud:tproxy (LISTEN)
root@cloudservices1005:~# curl cloudservices1005.private.eqiad.wikimedia.cloud:8081/metrics -s | wc -l
255
root@cloudservices1005:~# curl cloudservices1005.eqiad.wmnet:8081/metrics -s | wc -l
0

There's of course a bunch of solutions here, what do you think @taavi ?

Event Timeline

It seems like the pdns web server can't listen on multiple interfaces, and we need it on the cloud-private address for designate to do DNS updates. I can see a few possible solutions here:

  • Use socat or similar on the host to proxy traffic from the prod-private (10.x) address to the cloud-private address
  • Collect the metrics from some other host that's connected to cloud-private
  • Collect the metrics from something in Cloud VPS

See also T347148, which is about deciding a more general strategy for this instead of deciding it case-by-case.

Thank you, that's a bummer re: pdns not listening on multiple interfaces.

I don't feel strongly about either implementing something like socat you mentioned or move pdns auth monitoring to Prometheus running in metricsinfra.

The mental model I've been using whether to decide between prod and metricsinfra is whether the service to be monitored is essentially available to cloud-vps or not (FWIW)

fgiunchedi claimed this task.

Change 966494 had a related patch set uploaded (by Majavah; author: Majavah):

[operations/puppet@production] P:openstack::pdns::auth: make pdns web server listen on all IPs

https://gerrit.wikimedia.org/r/966494

Change 966494 merged by Majavah:

[operations/puppet@production] P:openstack::pdns::auth: make pdns web server listen on all IPs

https://gerrit.wikimedia.org/r/966494