Сразу скажу, не стоит серьёзно относиться к подобным сервисам. Для этого есть несколько причин:
1️⃣ Он иностранный.
2️⃣ Речь идёт про бесплатный тариф.
3️⃣ Он просто чужой для вас.
Тем не менее, я когда-то давно рассказывал про axiom.co, куда я дублирую некоторые логи веб серверов. С тех пор он так и продолжает нормально работать, я им иногда пользуюсь, чтобы посмотреть некоторую информацию.
Betterstack примерно то же самое, что и axiom, только более функциональный, и на базе привычного стека Grafana, только перепиленный немного. Он много чего умеет, так как совмещает в себе мониторинг и хранение логов, но лично мне он был интересен только в качестве анализа логов, поэтому делаю акцент на этом.
Кратко поясню, как эта шутка может быть полезна. В комплекте с сервисом идёт преднастроенный сборщик логов vector, который не только отправляет логи в хранилище, но и парсит их, вычленяя информацию об IP, урле, агенте и т. д. То есть разбирает всю информацию из лога. Далее в обзоре логов вы можете делать выборку на основе этих данных. Например, может посмотреть:
◽️кто и когда обращался к конкретному url;
◽️какие страницы посещал клиент с конкретным IP адресом;
◽️кому показывались 404-е ошибки;
◽️ и т.д.
Работа с сервисом выглядит следующим образом:
1️⃣ Вы регистрируетесь. Уже не помню, что надо для регистрации, я давно это сделал, а пишу только сейчас. Вроде только почту спросили.
2️⃣ Устанавливаете через готовый скрипт setup-vector.sh сборщик логов, в который уже будет зашит готовый конфиг и ваш токен. После установки логи сразу потекут в ваш аккаунт. По умолчанию он соберёт логи веб сервера в
/var/log/nginx и некоторые системные логи. 3️⃣ Идёте в веб интерфейс и смотрите логи в режиме live tail, то есть в реальном времени, смотрите преднастроенные дашборды, либо делаете свои выборки на основе каких-то правил.
Всё это удобно организовано и каких-то особых знаний не требуется. Хотя это может быть и субъективно. Я часто работаю с логами, поэтому может просто привык уже.
Vector не обязательно ставить на рабочий веб сервер. Можете завести для этого отдельную машину и передавать туда логи. Это если вам не хочется ставить что-то постороннее на рабочие сервера. Хотя в Vector нет ничего особенного. Это уже известный и привычный инструмент для сбора логов. Можно у него конфиг подсмотреть. К примеру, вот регулярка для разбора логов веб сервера:
nginx = parse_regex(.message, r'^\s*(-|(?P<client>\S+))\s+(-|(?P<remote_user>\S+))\s+(-|(?P<user>\S+))\s+\[(?P<timestamp>.+)\]\s+"(?P<request>-\s+-|(?P<method>\w+)\s+(?P<path>\S+)\s+(?P<protocol>\S+))"\s+(?P<status>\d+)\s+(?P<size>\d+)\s+"(-?|(?P<referrer>.+))"\s+"(-?|(?P<agent>.+))"\s*')Выглядит жутковато. Мне grok фильтры для этих задач видятся проще.
#logs
