Подтвердить что ты не робот

Какой хороший способ собирать журналы из экземпляров Amazon EC2?

Мое приложение размещено на кластере Amazon EC2. Каждый экземпляр записывает события в файлы журнала. Мне нужно собрать (и данные мои) по этим журналам в конце каждого дня. Какой рекомендуемый способ сбора этих журналов в центральном месте? Я подумал о нескольких вариантах, не уверен, куда идти:

  • scp их к экземпляру с использованием задания cron
  • Записывать все события через TCP/IP в экземпляр
4b9b3361

Ответ 1

Мы используем Logstash на каждом хосте (развернутом через Puppet) для сбора и отправки событий журнала в очередь сообщений (RabbitMQ, но может быть Redis) на центральном хосте. Другой экземпляр Logstash извлекает события, обрабатывает их и записывает результат в ElasticSearch. A Kibana веб-интерфейс используется для поиска через эту базу данных.

Он очень способный, легко масштабируется и очень гибкий. В Logstash имеется множество фильтров для обработки событий с различных входов и может выводиться на множество сервисов, одним из которых является ElasticSearch. В настоящее время мы отправляем около 1,2 миллиона событий журнала в день из наших экземпляров EC2, на легком оборудовании. Задержка для события журнала от события до поиска составляет около 1 секунды в нашей настройке.

Вот некоторые документы по этой настройке: https://www.elastic.co/guide/en/logstash/current/getting-started-with-logstash.html и демонстрация интерфейса поиска Kibana с некоторыми живыми данными.

Ответ 2

Этот вопрос старый (декабрь 2014 года), но по-прежнему занимает высокое место во время поиска Google по этой теме.

Теперь Amazon предоставляет возможность сделать это через CloudWatch. Он имеет возможность сопоставлять шаблону с сообщением журнала и запускать аварийные сигналы на основе событий, происходящих в приложении. В зависимости от характера данных, которые необходимо выполнить, может быть возможно использовать их API для получения желаемых, совокупных событий. См. http://aws.amazon.com/blogs/aws/cloudwatch-log-service/

Ответ 3

Я использую Loggly и, похоже, трюк

http://loggly.com/

Он позволяет мне отправлять все мои журналы через tcp на свою службу и иметь центральное место для мониторинга всех моих файлов журнала,

Он также позволяет мне архивировать мои файлы журналов на S3, который тоже хорош.

Ответ 5

Посмотрите бесплатную версию Splunk - она ​​будет обрабатывать коллекцию файлов удаленных журналов, а также даст вам действительно хороший инструменты поиска и анализа.

Ответ 6

Использовать syslog-ng, популярный инструмент, который передает сообщения журнала через TCP, факультативно зашифрованный.

http://www.balabit.com/network-security/syslog-ng/

Ответ 7

Я еще не реализовал его, но я столкнулся с Facebook Scribe, и это кажется хорошей идеей. https://github.com/facebookarchive/scribe

Пока я получаю это, я делаю то, что вы упоминаете для # 1 - у меня есть задание cron, которое использует sftp для вытягивания файлов. Я выбрал это, потому что, даже если я сделал # 2, у меня были экземпляры, где машина ec2 сработала, и мне все равно пришлось вытаскивать лог файлы.

Ответ 8

* Отказ от ответственности: я работаю в Сумо:

Sumo Logic Free - относительно простой вариант:

https://www.sumologic.com/pricing/