Позади AWS ELB: Как получить реальный IP из "netstat"?

Я использую AWS Elastic Load Balancing (ELB) перед 2 Linux веб-серверов. Но (исходя из моих требований) мне нужно знать реальные IP-адреса с точки зрения веб-серверов, особенно когда я использую netstat,

Мне нужно знать количество входящих подключений с каждого IP-адреса (из NETSTAT), как в режиме реального времени. Так в основном в Linux (без ELB впереди), ниже netstat команда отлично работает:

netstat -tn 2>/dev/null | grep :80

Но теперь я могу видеть только внутренние IP-адреса ELB; что делает все это довольно сложно.

Какое решение для этого, пожалуйста? Благодарю.

2 ответа

Вы можете получить исходный IP-адрес клиента из журналов доступа ELB и использовать EMR с Hive для подсчета количества запросов клиента с одного и того же IP-адреса.

Если вы предпочитаете более "ручные" способы: вы можете использовать tcpdump или ngrep и искать заголовок "x- forwarded -for" на своих веб-серверах.

Если вы хотите правильный путь: установите в своем приложении какую-либо регистрацию, регистрируйте запросы клиентов с заголовком x-forwarded-for.

Какой бы метод вы ни выбрали, вы можете установить агент журналов cloudwatch на своих компьютерах, чтобы отслеживать сгенерированные журналы. Этот агент заботится о ротации журналов, отправляя ваши журналы в AWS в виде потока (через kinesis за кулисами), а затем вы можете создавать метрики журналов, чтобы отслеживать все, что вам нравится в ваших журналах, например, количество соединений в режиме реального времени, и даже настроить сигналы тревоги на основе этого, если хотите. Затем вы можете создавать панели мониторинга с вашими метриками и иметь хорошую панель мониторинга, включающую ваши собственные метрики журнала.

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