Подача logstash из лазурного веб-приложения. Как?

У меня есть веб-приложение, размещенное на платформе Azure, и стек ELK, размещенный на виртуальной машине, также в Azure (та же подписка), и я изо всех сил пытаюсь найти способ доставки журналов из приложения в logstash.

Веб-приложение хранит все свои файлы в хранилище, доступном только через FTP, для которого logstash не имеет входного плагина.

Что люди используют для отправки журналов в ELK из веб-приложений? Если бы он работал как виртуальная машина, я бы использовал NXlog, но это невозможно для веб-приложения.

Я также использую Log4Net и попробовал сервер пересылки UDP, который работал на моем локальном стеке ELK, но не на хосте Azure, несмотря на то, что я добавил общедоступную конечную точку UDP.

2 ответа

В настоящее время я использую Serilog для отправки сообщений журнала приложений (в пакетном режиме) в очередь Redis, которая, в свою очередь, читается Logstash, чтобы обогатить их и передать в Elasticsearch. Это приводит к надежной распределенной установке, которая не теряет журналы приложений, если не превышена максимальная длина очереди redis. Добавлен бонус; Serilog испускает json, поэтому ваша конфигурация logstash может оставаться довольно простой. Пример кода можно найти здесь: https://gist.github.com/crunchie84/bcd6f7a8168b345a53ff

У Azure теперь есть проект на GitHub, называемый azure- Diagnostics -tools, который, помимо прочего, содержит плагины LogStash для чтения из хранилища больших двоичных объектов и таблиц.

Предположительно, вы можете просто включить ведение журнала диагностики в хранилище больших двоичных объектов или таблиц для своего WebApp и использовать плагин LogStash, чтобы добавить их в ElasticSearch.

Что касается того, как получить файлы log4net в хранилище BLOB-объектов - вы можете использовать log4net.Appender.TraceAppender для записи в систему Trace, что приведет к тому, что он будет собран в хранилище BLOB-объектов / таблиц, когда эта опция включена в WebApp.

Существует также альтернатива FTP для локальных файлов - вы можете использовать Kudu REST VFS API для доступа (и изменения) файлов по HTTP. Я обнаружил, что это значительно быстрее и надежнее, чем FTP.

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