
У меня есть два сервера. На сервере A запущены Elasticsearch и Logstash. На сервере B запущен filebeat, и это также сервер, на котором хранятся все логи, которые я пытаюсь проанализировать.
Сервер A находится за брандмауэром, он может выйти в Интернет, но нет возможности разрешить какой-либо входящий трафик.
Сервер B находится в AWS и находится под моим контролем входящего и исходящего трафика.
Есть ли способ перенести данные с сервера B на logstash сервера A? Filebeat обычным способом должен был бы иметь возможность отправлять данные в logstash, но в моем сценарии это невозможно.
решение1
С Filebeat (или любым другим Beat) на B ваши возможности ограничены:
- Elasticsearch — здесь не подходит.
- Redis — Некоторые возможности.
- Кафка — Похожие возможности.
Если A может обращаться к сетевым пространствам B, Filebeat B может размещать логи в Redis (или Elasticache Redis) или Kafka (или AWS Managed Kafka Services), где Logstash на A может подключаться к Redis или Kafka.
Для тех, кто заботится о безопасности, Redis теперь может поддерживать как аутентификацию, так и TLS через соединение. В версиях 6.x и более поздних, особенно в разновидностях AWS, Redis имеет фактическую поддержку ACL.