Comments 6
Вопрос. Почему не лучше всегда пользоваться Filebeat? Тогда все логи идут в локальные файлы и в деве или поддержке можно быстро глянуть локальный файл. А уж если надо что-то обозреть, сделать сложные фильтры с условиями и расчётами, то можно и в ELK зайти. К тому же, в этом случае приложение ничего не знает про ELK и это вроде бы как хорошо. Нет?
Да, думаю, лучше всегда пользоватся Filebeat. Проигнорировал его только потому, что он что-то вроде "необязателен" в отличие от других компонентов
Единственный минус такого решения - небольшой, но дополнительный сервис по сбору логов и отправке их в Logstash. И он должен крутиться на каждой машине или докеее. Но... Думаю, это не так критично. К тому же k8s имеет такую опцию - объявить сервис, который надо запускать везде. Хотя там будут разные конфигурации... Ну все равно это решаемо.
Во-первых, лучше называть не ELK-стеком, а Elastic-стеком. Beats, который тут не упомянут напрямую (только один Filebeat), является четвертым компонентом стека Elastic.
Кроме Serilog, есть еще NLog и log4net, которые тоже прекрасно работают с Elastic'ом.
Пробрасывать логи через файлы - это такое себе, все вышеуказанные библиотеки логирования позволяют указывать несколько приемников логов, поэтому лучше отправлять данные во все приемники параллельно, это добавит простоты, гибкости и надежности, сохраняя при этом возможность хорошо структурировать логи - проще говоря, разбивать по полям, что позволит потом осуществлять поиск и визуализацию в непринужденной манере. А штуки типа Filebeat хороши для сбора логов от third-party систем, которые логи уже пишут в файлы и перенастроить их нельзя.
Почему бы не писать все в консоль, а там уже кому надо заберет сам?)
Я не разработчик .NET приложений, но в Node.js реализовывал такой стек:
Opentelemetry
SigNoz
Все сводится к инструментированию приложения с помощью Opentelemetry. Инструментарии уже написаны под все возможные языки.
Настройка SigNoz не занимает более 2 часов. Взял docker-compose с оффсайта настроил необходимые параметры и в бой. Сам по себе он использует под капотом Clickhouse, много ресурсов, как с elastic, он не потребляет. Весь кайф SigNoz в объединени все в одном приложении, логи, метрики и трейсы.
Я разобрался с ELK в .NET, чтобы вам не пришлось