# curl https://logdy.dev/install.sh | shСкрипт на один экран, который просто определяет версию системы и скачивает скомпилированный бинарник из github. Можно и вручную скачать.
Использовать logdy можно в разных режимах. Самый простой - отправить в него через пайп содержимое лога:
# tail -f /var/log/syslog | logdy --ui-ip=0.0.0.0По умолчанию он стартует на localhost, поэтому я принудительно через ключ запустил его на всех интерфейсах. Если не указать порт, то он запустится на 8080. Можно идти по IP адресу сервера на порт 8080 и смотреть в браузере содержимое лога syslog. Можно то же самое сделать вот так:
# logdy --ui-ip=0.0.0.0 follow /var/log/syslogВообще, эта штука придумана в первую очередь для разработчиков. В блоге авторов есть пример использования во время локальной разработки. Допустим, вы у себя на машине запускаете проект под node.js:
# node app.js | logdyДалее перемещаетесь в VS Code, открываете через консоль команд (Ctrl+Shift+P) "Simple Browser: Show" и там указываете адрес веб интерфейса. Для локальной разработки это будет http://localhost:8080. Таким образом вы в одном месте можете править код, перезапускать приложение и тут же видеть его логи.
То же самое можно делать для Docker контейнеров:
# docker logs 761965fa13b2 --follow | logdy --ui-ip=0.0.0.0И погнали смотреть логи контейнера. Можно объединить разные контейнеры или логи. Делается это следующим образом:
# logdy --ui-ip=0.0.0.0 socket 8123 8124# docker logs d20339949095 --follow | logdy forward 8123# docker logs 761965fa13b2 --follow | logdy forward 8124Запустили logdy в режиме сокетов, на которые он принимает логи и отображает в веб интерфейсе. И отправили каждый контейнер в свой сокет. В веб интерфейсе можно как вместе смотреть эти логи, так и разделять по сокетам.
У logdy даже API есть для отправки туда логов с аутентификацией по токену. Выглядит это примерно так. Запускаем logdy с api:
# logdy --ui-ip=0.0.0.0 --api-key=secrettokenОтправляем в него логи:
curl --location --request POST 'http://1.2.3.4:8080/api/log' \--header 'Authorization: Bearer secrettoken' \--header 'Content-Type: application/json' \--data '{"logs": [{"log": "this is a log message as a string" }],"source":"machine identifier"}'В веб интерфейс прилетит этот лог. В него можно stdin отправить:
# logdy stdinУ logdy хорошая подробная документация, где описаны все ключи CLI и приведены примеры разных режимов работы и использования. Такой небольшой, нишевый, удобный продукт. Через ключи запуска веб интерфейс можно закрыть паролем.
Рекомендую взять на заметку. Иногда хочется открыть какой-то лог или логи в браузере. Через logdy это удобно сделать. Он может не только отобразить логи, но и сразу распарсить их, разбить на колонки, сделать какую-то сортировку и т.д. В документации есть примеры. На картинке ниже показано, как он распарсил лог веб севрера в формате json.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
⇨ Сайт / Исходники / Demo
#logs #devops
