Таинственные ошибки запроса 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: в последних версиях исправлена ошибка, из-за которой в старых версиях некоторые из этих ошибок не сообщались (они случайно были учтены в бэкэнде, где они не были извлечены). Я уверен, что это просто так.