Ответ
Для сбора, хранения и анализа логов применяются следующие стек-решения и инструменты:
- ELK/Elastic Stack (Elasticsearch, Logstash, Kibana) — стандартный стек для агрегации, полнотекстового поиска и визуализации. Logstash парсит и обогащает логи, Elasticsearch хранит, Kibana предоставляет дашборды.
- Grafana + Loki — легковесная альтернатива, особенно эффективна в микросервисных средах, где Loki индексирует только метаданные, а Grafana используется для запросов и графиков.
- Graylog — open-source система с мощными возможностями фильтрации, парсинга и алертинга.
- Splunk — коммерческое решение с мощным языком запросов SPL и аналитикой в реальном времени.
Пример конфигурации Logstash для парсинга JSON-логов:
input {
file {
path => "/var/log/app/*.json"
codec => json
}
}
filter {
# Дополнительная обработка при необходимости
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "app-logs-%{+YYYY.MM.dd}"
}
}
Облачные сервисы: Для проектов в облаке часто используются нативные сервисы, такие как AWS CloudWatch Logs, Google Cloud Logging (ранее Stackdriver) и Azure Monitor, которые легко интегрируются с другими облачными ресурсами.
Ответ 18+ 🔞
Да ты посмотри, какая хуйня развелась для логов! Прямо как в зоопарке — выбирай на вкус, все хотят твои строчки текста собрать, проиндексировать и красиво показать.
Ну, классика жанра, само собой, ELK-стек, он же Elastic Stack. Три богатыря, блядь: Logstash, который всё засасывает и парсит, Elasticsearch, который это всё складирует в свою ненасытную утробу, и Kibana — этакая мартышлюшка с графиками, которая рисует тебе красивые картинки из этой кучи данных. Стандарт де-факто, хотя и прожорливый иногда, сука.
А если тебе на микросервисах, где каждый контейнер пукает логами, и денег на Elasticsearch жалко? Тогда, чувак, смотри в сторону Grafana + Loki. Принцип у них хитрожопый: сам лог они не индексируют, только метаданные (типа «от кого» и «когда»). А когда надо что-то найти — они просто по меткам файлы находят и там уже grep'ом ищут. Гениально и дёшево, ёпта!
Есть ещё Graylog — open-source монстр с кучей встроенных плюшек для фильтрации и алертинга. И, конечно, жирный коммерческий кабан Splunk с его собственным языком запросов SPL. Мощно, но стоит, блядь, как крыло от боинга.
Вот, смотри, как Logstash'у скормить JSON-логи, чтоб он не подавился:
input {
file {
path => "/var/log/app/*.json"
codec => json
}
}
filter {
# Тут можешь его ещё поколдовать, если хочешь
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "app-logs-%{+YYYY.MM.dd}"
}
}
Ну и если ты, ленивая жопа, всё в облаках держишь, то там свои сервисы-няньки есть. В AWS — CloudWatch Logs, в Google — Cloud Logging, в Azure — Monitor. Они сами всё с потрохами из твоих сервисов вытянут, тебе только заплатить останется. Удобно, блядь, но привязывает намертво.