Назад | Перейти на главную страницу

Загадочные ошибки запроса HAProxy

Я вижу множество ошибок запроса на одном из моих внешних прокси (порядка нескольких в секунду), но я не могу понять, что их вызывает. Я пробовал использовать команду "показать ошибки" в сокете статистики ...

echo "show errors" | socat unix-connect:/var/run/haproxy.stat stdio

Но это ничего не возвращает. Журнал отладки также не дает мне никаких подсказок. Есть еще какое-то место, где мне стоит поискать?

Изменить: Чтобы уточнить, нет «сообщения об ошибке» как такового (хотя было бы обязательно иметь его). Я просто смотрю на счетчик с надписью «ошибки запроса» в веб-интерфейсе и вывод socat, и я пытаюсь выяснить, что его увеличивает.

Вы смотрели на dmesg? Распространенная проблема с прокси-серверами - это отслеживание максимального количества подключений Linux, поскольку каждый запрос используется для подключений. Если это так, вы увидите ip_conntrack: table full, dropping packet. в dmesg. Вы можете увидеть текущий счетчик и увеличить его с помощью sysctl или proc:

[kbrandt@lb01: ~] cat /proc/sys/net/netfilter/nf_conntrack_max
131072
[kbrandt@lb01: ~] cat /proc/sys/net/netfilter/nf_conntrack_count
185

Вы также можете обойти отслеживание подключений с помощью NOTRACK цель, то есть:

sudo /sbin/iptables -t raw -A PREROUTING -p tcp --sport 80 -j NOTRACK

Имейте в виду, что отключение отслеживания представляет собой угрозу безопасности, вы не захотите этого делать, если вы уже не находитесь за брандмауэром с отслеживанием состояния.

Можете ли вы публиковать сообщения об ошибках, которые вы видите?

Я подозреваю, что Майкл видит их только на странице статистики. Скорее всего, эти ошибки вызваны сканированием портов. Если в вашей конфигурации haproxy есть «option dontlognull», вы не получите для них никаких журналов, но все же они правильно учтены. Вы бы увидели их в «показать ошибки», если бы они были недопустимым HTTP-запросом, а это, похоже, не так. Не беспокойтесь о нескольких в секунду, это почти ничего, если вы поняли, что это просто сканирование портов. Некоторые тяжелые сайты получают от сотен до тысяч в секунду!

@Tim: в последних версиях исправлена ​​проблема старых версий, из-за которой некоторые из этих ошибок не сообщались (случайно они были учтены в бэкэнде, откуда они не извлекались). Я уверен, что это так.