Таинственные ошибки запроса HAProxy

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

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

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

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

2 ответа

Вы смотрели на dmesg? A common problem with Proxy servers is to hit the max Linux connection tracking since each request is using to connections. If this is the case you will see ip_conntrack: table full, dropping packet. in dmesg. You can see the current count and raise it via sysctl or proc:

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

You can also bypass connection tracking with the NOTRACK цель, то есть:

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

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

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

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

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

Другие вопросы по тегам