Трафик-запрос живой / мертвый бэкэндс - PullRequest
0 голосов
/ 05 марта 2019

У нас есть установка treafik на Docker Swarm с несколькими службами, сбалансированными через traefik.У каждой службы есть как минимум два бэкэнда, сбалансированных с помощью wrr и проверки работоспособности.

Есть ли способ (API, конечная точка отдыха, файл журнала и т. Д.), Чтобы выяснить, у каких веб-интерфейсов есть мертвые бэкэнды?Под мертвым я подразумеваю, какие бэкэнды treafik обнаружили с помощью Healthcheck, что они не имеют права на балансировку?

Каков наилучший метод для этого?

1 Ответ

0 голосов
/ 06 марта 2019

Я вижу два способа получения этой информации:

Журнал Traefik

Посмотрите на Журнал Traefik , который предоставляет следы для проверок работоспособности:

time="2019-03-05T22:19:35Z" level=debug msg="Refreshing health check for backend: backend-web-so-55004614",
time="2019-03-05T22:19:35Z" level=warning msg="Health check still failing. Backend: \"backend-web-so-55004614\" URL: \"http://192.168.80.2:80\" Reason: received error status code: 404",
time="2019-03-05T22:19:36Z" level=debug msg="Refreshing health check for backend: backend-web-so-55004614",
time="2019-03-05T22:19:36Z" level=warning msg="Health check still failing. Backend: \"backend-web-so-55004614\" URL: \"http://192.168.80.2:80\" Reason: received error status code: 404",

Traefik /metrics

Если анализировать журналы Traefik неудобно, вы можете активировать метрики Traefik Prometheus (которые включены по умолчанию):

docker run -d -v /var/run/docker.sock:/var/run/docker.sock -p "80:80" -p "8080:8080" traefik --api --docker

Затем вы можете сделать HTTP-запрос на http://localhost:8080/metrics и найти строки, содержащие _backend_server_up.Каждая из этих строк говорит о том, что ваш бэкэнд работает и здоров.Если серверная часть отсутствует, это означает, что она неработоспособна или остановлена:

traefik_backend_server_up{backend="backend-robots",url="http://172.23.0.3:80"} 1
traefik_backend_server_up{backend="backend-smtp-ui",url="http://172.25.0.3:8025"} 1
traefik_backend_server_up{backend="backend-varnish-admin",url="http://172.23.0.8:6085"} 1
traefik_backend_server_up{backend="backend-varnish-http",url="http://172.23.0.8:6081"} 1
traefik_backend_server_up{backend="backend-web-apps",url="http://172.21.0.2:80"} 1
traefik_backend_server_up{backend="backend-web-report",url="http://172.19.0.6:80"} 1

У вас может быть скрипт, запрашивающий этот URL-адрес, или вы можете установить Prometheus с правилами оповещения

...