у меня есть следующая инфраструктура:
1x балансировщик нагрузки (nginx) 4x восходящий поток apache 1x сервер mysql
Веб-сайт довольно загружен, и я купил еще 6 серверов, которые предназначены для замены предыдущей инфраструктуры.
Поскольку настройка отличается, я бы хотел протестировать свою новую серверную инфраструктуру с живыми данными. я нашел https://github.com/wangbin579/tcpcopy но у меня почему-то не работает (99% запросов не отправляет).
Я должен сказать, что у меня нет физического доступа к серверу, и я не могу управлять переключателем. Два сервера находятся в 2 разных сетях (но, конечно, видят друг друга).
Спасибо за ваше время :)
Вы можете попробовать дублировать трафик на уровне балансировщика нагрузки с помощью iptables. TEE
цель, из iptables(8)
страница руководства:
TEE
The TEE target will clone a packet and redirect this clone to another machine on the local network segment. In other words, the nexthop must be the target, or you will have to configure the nexthop to forward it further if so desired.
--gateway ipaddr
Send the cloned packet to the host reachable at the given IP address. Use of 0.0.0.0 (for IPv4 packets) or :: (IPv6) is invalid.
To forward all incoming traffic on eth0 to an Network Layer logging box:
-t mangle -A PREROUTING -i eth0 -j TEE --gateway 2001:db8::1
Исправьте логирование.
Лучший способ сделать это - воспроизвести трафик (возможно, с другой скоростью), используя фактические данные из ваших журналов. Стандартных журналов apache недостаточно, поскольку они не включают все заголовки (при условии, что ваше приложение использует эти заголовки, например, для обслуживания упрощенных страниц для поисковых роботов) и не содержат данных POST.
Так что сделайте журнал ваших приложений правильно и воспроизведите журналы при новой настройке. И убедитесь на 200%, что вы не отправляете никаких данных обратно и не меняете живые данные :)