Несмотря на то, что сейчас существует очень много современных решений по сбору и обработке логов, старый текстовый формат syslog не потерял полностью актуальность. Причин тому несколько. Перечислю то, что сам вспомнил:
◽️Формат популярен для сетевого оборудования, IPMI серверов.
◽️Нетребователен к ресурсам железа.
◽️Нет необходимости изменения конфигурации сервера для приёма новых логов.
◽️Это стандарт для ведения логов в POSIX-совместимых системах.
◽️Много софта поддерживают формат syslog, нет необходимости устанавливать дополнительное ПО на клиентах.
◽️Легко ротировать логи с помощью logrotate.
Я использую syslog регулярно, несмотря на то, что для глобального хранения логов устанавливаю ELK Stack. Использую его, если нужна какая-то аналитика по логам, а не просто хранение текстовых данных.
Наиболее частое использование формата syslog - сбор логов с Микротиков. Сами они хранят логи только до перезагрузки. Если где-то есть любой Linux сервер, собираю там текстовые логи с Микротиков. Аналитика обычно не нужна. Важно просто иметь представление о том, что происходило на устройстве, так как перезагрузка по различным причинам логи очистит. Писал когда-то давно статью по этому поводу. Она не потеряла актуальность, так как ни настройка роутеров не поменялась, ни rsyslog.
Второй пример использования - быстро собрать логи для анализа содержимого с помощью Zabbix. Для анализа обычных текстовых логов не нужны никакие костыли и дополнительные настройки. Zabbix встроенными средствами может их читать и анализировать с помощью regex. Это позволяет очень просто и быстро настроить какие-нибудь уведомления на события. Например, аутентификацию по SSH.
Соответственно, если вам нужно что-то быстро связать с системой мониторинга Zabbix и это что-то умеет писать логи в формате syslog, настройка мониторинга очень сильно упрощается. Можно прямо на Zabbix Server настроить rsyslog на приём логов по сети. Для этого необходимо в
И перезапустить службу:
Проверяем, слушает ли rsyslog входящие подключения:
Если слушает 514 порт, то можно отправлять на него логи. Обычно в настройках оборудования или софта достаточно просто указать IP адрес сервера с rsyslog, чтобы потекли данные на сервер. Дополнительно можно задать порт, если используете не стандартный, facility (категория), severity (важность).
Если больше не менять настройки, то все логи будут писаться в общий syslog файл. Обычно это
Данное правило будет автоматически раскладывать все логи с удаленных устройств по файлам в директории
Для удобного просмотра подобных логов можно использовать какой-то простенький веб интерфейс. Я описывал некоторые из них:
▪️tailon
Ожидал тут сделать список из таких инструментов, но оказалось, что кроме tailon больше ничего и не знаю. Если кто-то знает, чем удобно просматривать текстовые логи Linux через браузер, поделитесь информацией.
Можно взять тот же Webmin. Там неплохой раздел для просмотра локальных логов. Похожая возможность есть и в Cockpit.
☝️ Кстати, кто-то может не знает, что rsyslog агент есть и под Windows. Он формат виндовых логов преобразует в syslog и отправляет на rsyslog сервер.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs
◽️Формат популярен для сетевого оборудования, IPMI серверов.
◽️Нетребователен к ресурсам железа.
◽️Нет необходимости изменения конфигурации сервера для приёма новых логов.
◽️Это стандарт для ведения логов в POSIX-совместимых системах.
◽️Много софта поддерживают формат syslog, нет необходимости устанавливать дополнительное ПО на клиентах.
◽️Легко ротировать логи с помощью logrotate.
Я использую syslog регулярно, несмотря на то, что для глобального хранения логов устанавливаю ELK Stack. Использую его, если нужна какая-то аналитика по логам, а не просто хранение текстовых данных.
Наиболее частое использование формата syslog - сбор логов с Микротиков. Сами они хранят логи только до перезагрузки. Если где-то есть любой Linux сервер, собираю там текстовые логи с Микротиков. Аналитика обычно не нужна. Важно просто иметь представление о том, что происходило на устройстве, так как перезагрузка по различным причинам логи очистит. Писал когда-то давно статью по этому поводу. Она не потеряла актуальность, так как ни настройка роутеров не поменялась, ни rsyslog.
Второй пример использования - быстро собрать логи для анализа содержимого с помощью Zabbix. Для анализа обычных текстовых логов не нужны никакие костыли и дополнительные настройки. Zabbix встроенными средствами может их читать и анализировать с помощью regex. Это позволяет очень просто и быстро настроить какие-нибудь уведомления на события. Например, аутентификацию по SSH.
Соответственно, если вам нужно что-то быстро связать с системой мониторинга Zabbix и это что-то умеет писать логи в формате syslog, настройка мониторинга очень сильно упрощается. Можно прямо на Zabbix Server настроить rsyslog на приём логов по сети. Для этого необходимо в
/etc/rsyslog.conf раскомментировать:module(load="imudp")input(type="imudp" port="514")module(load="imtcp")input(type="imtcp" port="514")И перезапустить службу:
# systemctl restart rsyslogПроверяем, слушает ли rsyslog входящие подключения:
# ss -tulnp | grep rsyslogdЕсли слушает 514 порт, то можно отправлять на него логи. Обычно в настройках оборудования или софта достаточно просто указать IP адрес сервера с rsyslog, чтобы потекли данные на сервер. Дополнительно можно задать порт, если используете не стандартный, facility (категория), severity (важность).
Если больше не менять настройки, то все логи будут писаться в общий syslog файл. Обычно это
/var/log/syslog. Удобно их разделять либо по IP адресам отправителей, либо по приложениям, которые их отправляют. Я чаще по хостам разделяю логи. Для этого надо задать шаблон формирования лог-файлов. Добавляем в rsyslog.conf:$template FILENAME,"/var/log/syslog/%fromhost-ip%.log"if $fromhost-ip != '127.0.0.1' then ?FILENAME& stopДанное правило будет автоматически раскладывать все логи с удаленных устройств по файлам в директории
/var/log/syslog с именами в виде IP адресов. При этом мы исключаем туда запись локальных логов, иначе они появятся под адресом 127.0.0.1, и предотвращаем их запись в системный syslog файл. По шаблонам наглядные примеры есть в документации. Для удобного просмотра подобных логов можно использовать какой-то простенький веб интерфейс. Я описывал некоторые из них:
▪️tailon
Ожидал тут сделать список из таких инструментов, но оказалось, что кроме tailon больше ничего и не знаю. Если кто-то знает, чем удобно просматривать текстовые логи Linux через браузер, поделитесь информацией.
Можно взять тот же Webmin. Там неплохой раздел для просмотра локальных логов. Похожая возможность есть и в Cockpit.
☝️ Кстати, кто-то может не знает, что rsyslog агент есть и под Windows. Он формат виндовых логов преобразует в syslog и отправляет на rsyslog сервер.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs
👍162👎3
Вчера в комментариях посоветовали удобную программу для просмотра серверных логов браузером. Сразу попробовал - очень понравилась утилита. Речь пойдёт про logdy. Это одиночный бинарник на Go. Установить можно так:
Скрипт на один экран, который просто определяет версию системы и скачивает скомпилированный бинарник из github. Можно и вручную скачать.
Использовать logdy можно в разных режимах. Самый простой - отправить в него через пайп содержимое лога:
По умолчанию он стартует на localhost, поэтому я принудительно через ключ запустил его на всех интерфейсах. Если не указать порт, то он запустится на 8080. Можно идти по IP адресу сервера на порт 8080 и смотреть в браузере содержимое лога syslog. Можно то же самое сделать вот так:
Вообще, эта штука придумана в первую очередь для разработчиков. В блоге авторов есть пример использования во время локальной разработки. Допустим, вы у себя на машине запускаете проект под node.js:
Далее перемещаетесь в VS Code, открываете через консоль команд (Ctrl+Shift+P) "Simple Browser: Show" и там указываете адрес веб интерфейса. Для локальной разработки это будет http://localhost:8080. Таким образом вы в одном месте можете править код, перезапускать приложение и тут же видеть его логи.
То же самое можно делать для Docker контейнеров:
И погнали смотреть логи контейнера. Можно объединить разные контейнеры или логи. Делается это следующим образом:
Запустили logdy в режиме сокетов, на которые он принимает логи и отображает в веб интерфейсе. И отправили каждый контейнер в свой сокет. В веб интерфейсе можно как вместе смотреть эти логи, так и разделять по сокетам.
У logdy даже API есть для отправки туда логов с аутентификацией по токену. Выглядит это примерно так. Запускаем logdy с api:
Отправляем в него логи:
В веб интерфейс прилетит этот лог. В него можно stdin отправить:
У logdy хорошая подробная документация, где описаны все ключи CLI и приведены примеры разных режимов работы и использования. Такой небольшой, нишевый, удобный продукт. Через ключи запуска веб интерфейс можно закрыть паролем.
Рекомендую взять на заметку. Иногда хочется открыть какой-то лог или логи в браузере. Через logdy это удобно сделать. Он может не только отобразить логи, но и сразу распарсить их, разбить на колонки, сделать какую-то сортировку и т.д. В документации есть примеры. На картинке ниже показано, как он распарсил лог веб севрера в формате json.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
⇨ Сайт / Исходники / Demo
#logs #devops
# 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
2👍188👎4
Нашёл на github простой скрипт, который делает одну вещь - следит за конкретным лог файлом или набором файлов на предмет появления там заданных строк. Как только их видит, отправляет уведомление в Telegram.
https://github.com/dobanov/mon_log_and_send_keywords_to_telegram
Я проверил версию на python. Работает очень просто. Копируем репу:
Устанавливаем необходимые пакеты:
Запускаем скрипт без параметров:
Он ругнётся, что не переданы параметры и нет файла конфигурации. Создаст пустой
В этом примере я указал две строки из файла auth.log, куда записывается вся информация об SSH сессиях. В данном случае в Telegram прилетят две строки:
То есть полная информация о подключении - IP адрес и пользователь.
Запускаем скрипт:
Открываем новую SSH сессию и наблюдаем уведомление в телеге. В данном случае обе строки не нужны, сделал так для примера.
Всё очень просто и быстро. Код скрипта можете сами посмотреть, он небольшой. В репе лежит простенький шаблон для создания systemd службы, чтобы запускать скрипт в фоне.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#script #logs
https://github.com/dobanov/mon_log_and_send_keywords_to_telegram
Я проверил версию на python. Работает очень просто. Копируем репу:
# git clone https://github.com/dobanov/mon_log_and_send_keywords_to_telegram# cd mon_log_and_send_keywords_to_telegramУстанавливаем необходимые пакеты:
# apt install python3-pip python3-watchdogЗапускаем скрипт без параметров:
# python3 tg_mon.pyОн ругнётся, что не переданы параметры и нет файла конфигурации. Создаст пустой
~/.config/tg_log.ini. Заполняем его:filename=/var/log/auth.logkeyword=Accepted password,session openedn=100bot_id=5731668668:AAFxcwvp8XjvepZzDMIAN87l1D_MuiI1Ve9chat_id=210856265debug=trueВ этом примере я указал две строки из файла auth.log, куда записывается вся информация об SSH сессиях. В данном случае в Telegram прилетят две строки:
2024-12-04T18:35:23.679324+03:00 debian12-vm sshd[4282]: Accepted password for root from 10.8.2.2 port 9669 ssh22024-12-04T18:35:23.680422+03:00 debian12-vm sshd[4282]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)То есть полная информация о подключении - IP адрес и пользователь.
Запускаем скрипт:
# python3 tg_mon.pyОткрываем новую SSH сессию и наблюдаем уведомление в телеге. В данном случае обе строки не нужны, сделал так для примера.
Всё очень просто и быстро. Код скрипта можете сами посмотреть, он небольшой. В репе лежит простенький шаблон для создания systemd службы, чтобы запускать скрипт в фоне.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#script #logs
1👍239👎5
Если у вас стоит задача собрать небольшое количество текстовых логов в одном месте, то городить современные решения типа Loki, ELK, Graylog избыточно. Это и долго, и разбираться надо, если не умеешь, и по ресурсам затратно. Предлагаю старую, простую и проверенную временем альтернативу - syslog-ng. Я этот софт давно знаю и использую по мере необходимости.
Покажу пример простой настройки, которую можно взять за основу и расширить при необходимости. Устанавливаем:
Если на машине уже был установлен rsyslog, то он будет удалён. Вместе они не работают, так как выполняют одну и ту же задачу в том числе по ведению локальных системных логов.
Открываем конфигурацию
Можно выбрать любой IP адрес сервера, порт и протокол. Я указал стандартный порт UDP 514 для протокола syslog. Никто не мешает использовать что-то другое. Например TCP 1000:
Переходим в папку
Файл назвал
Я создал объект d_mikrotik, который указывает на хранение логов в файле
С таким подходом удобно настраивать что, куда и по каким условиям писать. Можно несколько source указать с разными интерфейсами, протоколами и портами. Если у вас устройства разнесены по разным подсетям, то можно описать приём в два разных лог-файла логи от Mikrotik и от Linux систем:
По умолчанию syslog-ng работает от root, что не очень разумно и в данной задаче не нужно. Запустим его от пользователя syslog. Если вас это не беспокоит, то можно запускать и под root.
Добавляем в
В файле
на
Идём на конечное устройство настраивать отправку логов. В Mikrotik это делается в System ⇨ Logging ⇨ Actions. В remote указываете IP адрес сервера с syslog-ng.
В системах Linux с rsyslog достаточно в
и перезапустить его.
Получилось очень простое решение по централизованному сбору логов без аналитики, которое настраивается за 10 минут и не требует практически никаких особых ресурсов. На чём можно запустить Debian, там и будет работать.
Для просмотра логов через браузер можно использовать tailon, logdy, cockpit, webmin.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #syslog
Покажу пример простой настройки, которую можно взять за основу и расширить при необходимости. Устанавливаем:
# apt install syslog-ngЕсли на машине уже был установлен rsyslog, то он будет удалён. Вместе они не работают, так как выполняют одну и ту же задачу в том числе по ведению локальных системных логов.
Открываем конфигурацию
/etc/syslog-ng/syslog-ng.conf и добавляем один параметр, который позволит принимать логи по сети от других устройств и систем:source s_net { udp(ip(0.0.0.0) port(514)); };Можно выбрать любой IP адрес сервера, порт и протокол. Я указал стандартный порт UDP 514 для протокола syslog. Никто не мешает использовать что-то другое. Например TCP 1000:
source s_net { TCP(ip(0.0.0.0) port(1000)); };Переходим в папку
/etc/syslog-ng/conf.d и создаём там конфиг для приёма логов, например, с Mikrotik:destination d_mikrotik { file("/var/log/_remote/mikrotik.log"); };filter f_mikrotik { netmask("10.20.1.20/255.255.255.255"); };log { source(s_net); filter(f_mikrotik); destination(d_mikrotik); };Файл назвал
mikrotik.conf. В syslog-ng объектный принцип описания конфигурации. Этот как раз то, почему я предпочитаю для таких задач использовать именно его, а не rsyslog. У последнего не такой удобный формат конфигурации.Я создал объект d_mikrotik, который указывает на хранение логов в файле
/var/log/_remote/mikrotik.log. Далее я сделал фильтр f_mikrotik, где указал в качестве условия IP адрес роутера. Можно и всю подсеть добавить. И в завершении указал, как именно будем логировать. Берём источник s_net, то есть всё, что приходит на UDP 514, проверяем по фильтру f_mikrotik и пишем в d_mikrotik, то есть в указанный лог-файл. С таким подходом удобно настраивать что, куда и по каким условиям писать. Можно несколько source указать с разными интерфейсами, протоколами и портами. Если у вас устройства разнесены по разным подсетям, то можно описать приём в два разных лог-файла логи от Mikrotik и от Linux систем:
destination d_mikrotik { file("/var/log/_remote/mikrotik.log"); };filter f_mikrotik { netmask("10.20.1.0/255.255.255.0"); };log { source(s_net); filter(f_mikrotik); destination(d_mikrotik); };destination d_linux { file("/var/log/_remote/linux.log"); };filter f_linux { netmask("10.30.1.0/255.255.255.0"); };log { source(s_net); filter(f_linux); destination(d_linux); };По умолчанию syslog-ng работает от root, что не очень разумно и в данной задаче не нужно. Запустим его от пользователя syslog. Если вас это не беспокоит, то можно запускать и под root.
# useradd syslog -s /usr/sbin/nologin# chown syslog /var/lib/syslog-ng /var/log/_remoteДобавляем в
/etc/default/syslog-ng:SYSLOGNG_OPTS="-u syslog -g syslog"if [ ! -e /var/lib/syslog-ng.pid ] then touch /var/lib/syslog-ng.pidfichown syslog /var/lib/syslog-ng.pidchmod 0664 /var/lib/syslog-ng.pidВ файле
/etc/syslog-ng/syslog-ng.conf меняем пользователя в параметрах:owner("root"); group("adm")на
owner("syslog"); group("syslog")Идём на конечное устройство настраивать отправку логов. В Mikrotik это делается в System ⇨ Logging ⇨ Actions. В remote указываете IP адрес сервера с syslog-ng.
В системах Linux с rsyslog достаточно в
/etc/rsyslog.conf добавить параметр:*.* @10.20.1.5и перезапустить его.
Получилось очень простое решение по централизованному сбору логов без аналитики, которое настраивается за 10 минут и не требует практически никаких особых ресурсов. На чём можно запустить Debian, там и будет работать.
Для просмотра логов через браузер можно использовать tailon, logdy, cockpit, webmin.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #syslog
4👍153👎4
С момента первого моего упоминания сервиса axiom.co, продолжаю его использовать. Вновь пишу о нём, чтобы рассказать тем, кто не видел эту информацию. Очень простой в настройке и удобный в использовании для хранения и анализа логов веб сервера. Я пользуюсь полностью бесплатным тарифом, который не требует никаких подтверждений и персональных данных. Аутентификация через учётку на github. При этом позволяет хранить 500GB логов в месяц. Мне этого за глаза.
Про настройку и использование я уже писал ранее. По настройке с тех пор ничего не поменялось. Для отправки используется Vector (иногда падает, надо мониторить и переподнимать), у него встроенная интеграция с axiom.
Axiom условно можно назвать аналогом ELK, только сильно урезанным в плане функциональности. Из-за этого его особо не надо изучать. Отправляешь туда логи, заходишь и мышкой создаёшь нужные дашборды, запросы, отчёты. С ELK так не получится. В новых версиях даже заходить не хочется в виджеты и дашборды. Каждый раз, как первый раз, приходится вспоминать, как тут что-то сделать и построить нужную визуализацию.
Например, я позавчера включил на сайте протокол HTTPv3. Решил сходить посмотреть, сколько запросов по этому протоколу выполняется. Сбор логов настроен по указанной выше ссылке. В веб интерфейсе axiom иду в раздел Query и мышкой в конструкторе строю запрос: Dataset = serveradmin.ru, Where != http_version, Summarize count(), group by http_version.
И получил график растущего использования HTTPv3. Протокол используется.
Или вот ещё пример. Посмотрим, по каким url на запросы выходят 404 коды ответов. Dataset = serveradmin.ru, Where status =~ "404", Summarize count(), group by url.
Думаю, идея понятна. В сервисе ничего такого особенного нет, чего нельзя было бы сделать где-то в другом месте. То же самое можно сделать в ELK, Graylog, Loki, Goaccess. Но тут всё бесплатно, ничего настраивать не надо. Просто оправляем логи и пользуемся. Разумеется, если у вас там ничего секретного нет. А то уже предвижу комментарии на тему того, что я свои секретные логи веб сервера никому показывать не могу. Если не можете, то не используйте облачные сервисы. Тут всё очевидно. Наверняка они эти данные как-то используют, иначе откуда такая щедрость.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #webserver
Про настройку и использование я уже писал ранее. По настройке с тех пор ничего не поменялось. Для отправки используется Vector (иногда падает, надо мониторить и переподнимать), у него встроенная интеграция с axiom.
Axiom условно можно назвать аналогом ELK, только сильно урезанным в плане функциональности. Из-за этого его особо не надо изучать. Отправляешь туда логи, заходишь и мышкой создаёшь нужные дашборды, запросы, отчёты. С ELK так не получится. В новых версиях даже заходить не хочется в виджеты и дашборды. Каждый раз, как первый раз, приходится вспоминать, как тут что-то сделать и построить нужную визуализацию.
Например, я позавчера включил на сайте протокол HTTPv3. Решил сходить посмотреть, сколько запросов по этому протоколу выполняется. Сбор логов настроен по указанной выше ссылке. В веб интерфейсе axiom иду в раздел Query и мышкой в конструкторе строю запрос: Dataset = serveradmin.ru, Where != http_version, Summarize count(), group by http_version.
['serveradmin.ru']| where isnotempty(http_version)| summarize count() by bin_auto(_time), http_versionИ получил график растущего использования HTTPv3. Протокол используется.
Или вот ещё пример. Посмотрим, по каким url на запросы выходят 404 коды ответов. Dataset = serveradmin.ru, Where status =~ "404", Summarize count(), group by url.
['serveradmin.ru']| where status =~ "404"| summarize count() by bin_auto(_time), urlДумаю, идея понятна. В сервисе ничего такого особенного нет, чего нельзя было бы сделать где-то в другом месте. То же самое можно сделать в ELK, Graylog, Loki, Goaccess. Но тут всё бесплатно, ничего настраивать не надо. Просто оправляем логи и пользуемся. Разумеется, если у вас там ничего секретного нет. А то уже предвижу комментарии на тему того, что я свои секретные логи веб сервера никому показывать не могу. Если не можете, то не используйте облачные сервисы. Тут всё очевидно. Наверняка они эти данные как-то используют, иначе откуда такая щедрость.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #webserver
3👍82👎4
В разное время на канале выходили публикации на тему логирования действий пользователя в терминале, в частности при подключениях по SSH. Тема востребованная, актуальная, так что решил все заметки по ней собрать в одном месте. К тому же решения предлагались очень сильно разные. Будет полезно их увидеть и сравнить в одном месте, от самых простых, до больших корпоративных систем.
◽️Snoopy — небольшая библиотека под Linux, которая может логировать не только команды пользователей, но многое другое. Например, команды системных процессов. Продукт простой в настройке, живой, обновляется. Приехал в базовые репозитории популярных дистрибутивов. Работает сам по себе, без необходимости менять настройки SSH или пользователей.
◽️Log-user-session — программа, которая запускается вместо оболочки пользователя и пропускает через себя все его команды, записывая их в текстовый файл. Продукт старый, не поддерживается, но продолжает работать. Подключившись по SSH пользователь никак не закроет log-user-session и не выполнит команду мимо неё. Его просто отключит от сервера.
◽️PROMPT_COMMAND — использование встроенных возможностей оболочки bash. Содержимое переменной PROMPT_COMMAND выполняется после каждой введённой интерактивной команды. Мы просто выполняем команду
◽️Sshlog — работает как отдельная служба, умеет не только логировать действия пользователей по SSH, но и слать уведомления, в том числе на заданные действия, собирать метрики по подключениям, осуществлять внешний доступ к открытым сессиям пользователей. Программа в своё время была сделана добротно и законченно, с сайтом и документацией, но потом разработку как-будто забросили.
◽️Tlog — современная программа от RedHat с полным названием Terminal logger. Поддерживает различные хранилища для логов: текстовые файлы, syslog сервер, журнал systemd или в elasticsearch. Формат - json, то есть удобно делать поиск и выборку. Разработана для интеграции в экосистему Redhat, поддерживает интеграцию с FreeIPA через SSSD. Есть в базовых репозиториях.
◽️Teleport — масштабная система по управлению удалённым доступом к закрытым от внешнего доступа системам. В том числе осуществляет управление SSH соединениями с помощью своего приложения для установления соединений. Умеет записывать сессии не просто на уровне перехвата команд и вывода в консоль с хранением в текстовом виде, но полноценно записывает сессию, которую можно воспроизвести в режиме реального времени.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#ssh #logs #подборка
◽️Snoopy — небольшая библиотека под Linux, которая может логировать не только команды пользователей, но многое другое. Например, команды системных процессов. Продукт простой в настройке, живой, обновляется. Приехал в базовые репозитории популярных дистрибутивов. Работает сам по себе, без необходимости менять настройки SSH или пользователей.
◽️Log-user-session — программа, которая запускается вместо оболочки пользователя и пропускает через себя все его команды, записывая их в текстовый файл. Продукт старый, не поддерживается, но продолжает работать. Подключившись по SSH пользователь никак не закроет log-user-session и не выполнит команду мимо неё. Его просто отключит от сервера.
◽️PROMPT_COMMAND — использование встроенных возможностей оболочки bash. Содержимое переменной PROMPT_COMMAND выполняется после каждой введённой интерактивной команды. Мы просто выполняем команду
history 1, которая показывает последнюю введённую команду и куда-то записываем её: в файл или syslog. Решение максимально простое и понятное, но со своими нюансами. Надо промты менять и следить, чтобы обратно не менялись.◽️Sshlog — работает как отдельная служба, умеет не только логировать действия пользователей по SSH, но и слать уведомления, в том числе на заданные действия, собирать метрики по подключениям, осуществлять внешний доступ к открытым сессиям пользователей. Программа в своё время была сделана добротно и законченно, с сайтом и документацией, но потом разработку как-будто забросили.
◽️Tlog — современная программа от RedHat с полным названием Terminal logger. Поддерживает различные хранилища для логов: текстовые файлы, syslog сервер, журнал systemd или в elasticsearch. Формат - json, то есть удобно делать поиск и выборку. Разработана для интеграции в экосистему Redhat, поддерживает интеграцию с FreeIPA через SSSD. Есть в базовых репозиториях.
◽️Teleport — масштабная система по управлению удалённым доступом к закрытым от внешнего доступа системам. В том числе осуществляет управление SSH соединениями с помощью своего приложения для установления соединений. Умеет записывать сессии не просто на уровне перехвата команд и вывода в консоль с хранением в текстовом виде, но полноценно записывает сессию, которую можно воспроизвести в режиме реального времени.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#ssh #logs #подборка
1👍101👎2
Утром писал о том, что нравятся текстовые логи в том числе потому, что привык их грепать. А в journalctl искать не так удобно. После этого задумался, как удобнее всего погрепать логи systemd.
Пошёл по самому простому пути и посмотрел man:
Оказывается, есть ключ
Причём этот параметр там был не всегда. Я точно знаю, что раньше не было. Зашёл на сервер с Centos 7 и проверил:
Ключ появился в каком-то обновлении.
На самом деле очень удобно. Я решил сделать об этом заметку и не кидать сюда другие команды journalctl, чтобы не размывать тему. Просто запомните, если не знали, что с помощью journalctl можно грепать логи. А так как он ищет по всему системному логу, который может быть очень большим, это удобнее, чем смотреть по разным файлам syslog или как-то их объединять, чтобы охватить бОльший период.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#systemd #logs
Пошёл по самому простому пути и посмотрел man:
# man journalctlОказывается, есть ключ
-g или --grep, который делает примерно то же самое, что и утилита grep. Из всего журнала выводит строки с нужным тебе выражением. Поддерживает в том числе регулярки.Причём этот параметр там был не всегда. Я точно знаю, что раньше не было. Зашёл на сервер с Centos 7 и проверил:
# journalctl --grep ovpnjournalctl: unrecognized option '--grep'Ключ появился в каком-то обновлении.
На самом деле очень удобно. Я решил сделать об этом заметку и не кидать сюда другие команды journalctl, чтобы не размывать тему. Просто запомните, если не знали, что с помощью journalctl можно грепать логи. А так как он ищет по всему системному логу, который может быть очень большим, это удобнее, чем смотреть по разным файлам syslog или как-то их объединять, чтобы охватить бОльший период.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#systemd #logs
4👍264👎2
Пару лет назад у VictoriaMetrics вышел продукт, который является частью именного стека, – VictoriaLogs. Руки не доходили раньше на него посмотреть и вот дошли. Сразу скажу, что всё очень понравилось за простоту, функциональность и удобство. Покажу сразу с примерами.
Отдельно перечислю особенности VictoriaLogs:
▪️По своей сути это одиночный бинарник, который можно сконфигурировать ключами запуска, не нужен даже конфигурационный файл.
▪️В бинарнике есть всё, что надо для сбора и просмотра логов: веб интерфейс, метрики для мониторинга за системой, все типы приёмников логов.
▪️Для бэкапа достаточно скопировать директорию с данными, например, с помощью rsync. То есть вообще никаких проблем и заморочек с бэкапом.
▪️Есть плагин для datasource в Grafana, чтобы делать оттуда запросы к логам, а также готовый дашборд для визуализации метрик хранилища.
▪️Простая, короткая документация, где есть всё необходимое для запуска и настройки.
Покажу примеры сбора логов в VictoriaLogs от Journald, Syslog и Vector. Для этого подготовил небольшой
Запускаем проект, переходим на порт 9428, чтобы убедиться в том, что всё запустилось. По умолчанию открывается страница с некоторыми ссылками на Web UI, Метрики и ключи запуска.
Отправим в VictoriaLogs логи от systemd от любого сервера, локального или внешнего. Для этого понадобится служба systemd-journal-remote. Ставим её:
Редактируем конфиг
URL, соответственно, измените, если у вас сбор логов не с локального сервера, а удалённого. Запускаем службу и проверяем, что она успешно начала отправку логов:
Идём в веб интерфейс VictoriaLogs - http://212.193.59.87:9428/select/vmui и смотрим там логи.
Переходим к Syslog. Я уже добавил параметр
Если у вас этот порт уже занят syslog сервером, то измените порт для VictoriaLogs. В общем-то настраивать больше ничего не надо. Теперь в любом софте, который умеет отправлять данные в формате syslog, укажите в качестве сервера IP вашего VictoriaLogs. Например, в том же Микротике: System ⇨ Logging ⇨ Actions ⇨ Add Type Remote.
Для сбора логов от всех популярных агентов, типа Filebeat, Fluentd, Vector и т.д. тоже ничего специально настраивать не надо. Делаете всё точно так же, как для отправки логов в Elasticsearch, только в качестве endpoint указываете URL от вашего сервера VictoriaLogs. Вот пример для Vector:
Решение очень понравилось своей простотой, универсальностью и скоростью настройки. Буквально за час со всем разобрался и настроил. Никаких затруднений. Отдельно нужно решать вопрос доступа к приёмнику логов и веб интерфейсу. С уровня приложения никаких решений нет. Нужно либо firewall, либо proxy использовать.
Отдельно отмечу, что те же логи syslog и journald сразу парсятся по основным полям, типа hostname, time, cmdline и т.д. Ничего для этого настраивать не надо. Сразу в веб интерфейсе можно поиск и группировку по ним делать. Получается очень функциональное решение по простоте и скорости настройки на уровне обычного syslog сервера, но с гораздо большими возможностями.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #devops
Отдельно перечислю особенности VictoriaLogs:
▪️По своей сути это одиночный бинарник, который можно сконфигурировать ключами запуска, не нужен даже конфигурационный файл.
▪️В бинарнике есть всё, что надо для сбора и просмотра логов: веб интерфейс, метрики для мониторинга за системой, все типы приёмников логов.
▪️Для бэкапа достаточно скопировать директорию с данными, например, с помощью rsync. То есть вообще никаких проблем и заморочек с бэкапом.
▪️Есть плагин для datasource в Grafana, чтобы делать оттуда запросы к логам, а также готовый дашборд для визуализации метрик хранилища.
▪️Простая, короткая документация, где есть всё необходимое для запуска и настройки.
Покажу примеры сбора логов в VictoriaLogs от Journald, Syslog и Vector. Для этого подготовил небольшой
docker-compose.yml с некоторыми параметрами:services:
victoria-logs:
image: victoriametrics/victoria-logs:latest
volumes:
- ./victoria-logs-data:/victoria-logs-data
command:
- --storageDataPath=/victoria-logs-data
- --retentionPeriod=90d
- --syslog.listenAddr.tcp=:514
ports:
- 9428:9428
- 514:514
restart: always
Запускаем проект, переходим на порт 9428, чтобы убедиться в том, что всё запустилось. По умолчанию открывается страница с некоторыми ссылками на Web UI, Метрики и ключи запуска.
Отправим в VictoriaLogs логи от systemd от любого сервера, локального или внешнего. Для этого понадобится служба systemd-journal-remote. Ставим её:
# apt install systemd-journal-remoteРедактируем конфиг
/etc/systemd/journal-upload.conf, добавляя один параметр:[Upload]URL=http://localhost:9428/insert/journaldURL, соответственно, измените, если у вас сбор логов не с локального сервера, а удалённого. Запускаем службу и проверяем, что она успешно начала отправку логов:
# systemctl start systemd-journal-upload# systemctl status systemd-journal-uploadИдём в веб интерфейс VictoriaLogs - http://212.193.59.87:9428/select/vmui и смотрим там логи.
Переходим к Syslog. Я уже добавил параметр
syslog.listenAddr.tcp=:514. Убедитесь, что указанный порт прослушивается:# ss -tulnp | grep 514Если у вас этот порт уже занят syslog сервером, то измените порт для VictoriaLogs. В общем-то настраивать больше ничего не надо. Теперь в любом софте, который умеет отправлять данные в формате syslog, укажите в качестве сервера IP вашего VictoriaLogs. Например, в том же Микротике: System ⇨ Logging ⇨ Actions ⇨ Add Type Remote.
Для сбора логов от всех популярных агентов, типа Filebeat, Fluentd, Vector и т.д. тоже ничего специально настраивать не надо. Делаете всё точно так же, как для отправки логов в Elasticsearch, только в качестве endpoint указываете URL от вашего сервера VictoriaLogs. Вот пример для Vector:
sinks:
vlogs:
inputs:
- nginx_access_logs
type: elasticsearch
endpoints:
- http://212.193.59.87:9428/insert/elasticsearch/
api_version: v8
compression: gzip
Решение очень понравилось своей простотой, универсальностью и скоростью настройки. Буквально за час со всем разобрался и настроил. Никаких затруднений. Отдельно нужно решать вопрос доступа к приёмнику логов и веб интерфейсу. С уровня приложения никаких решений нет. Нужно либо firewall, либо proxy использовать.
Отдельно отмечу, что те же логи syslog и journald сразу парсятся по основным полям, типа hostname, time, cmdline и т.д. Ничего для этого настраивать не надо. Сразу в веб интерфейсе можно поиск и группировку по ним делать. Получается очень функциональное решение по простоте и скорости настройки на уровне обычного syslog сервера, но с гораздо большими возможностями.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #devops
2👍184👎6
Недавно из комментариев узнал про систему RuSIEM. Она относится к классу продуктов SIEM (Security Information and Event Management). Я в целом далёк от темы безопасности и связанным с этим софтом, так как это отдельное направление в IT. Эта система привлекла меня тем, что у неё есть полностью бесплатная версия RvSIEM, которая занимается только сбором и обработкой логов, анализируя их на наличие содержимого, связанного с защитой и безопасностью.
Решение полностью российское, соответственно документация, весь интерфейс, все встроенные фильтры и отчёты полностью на русском, что упрощает эксплуатацию. Я немного разобрался с RvSIEM: развернул, посмотрел, что умеет и как работает. На первый взгляд неплохая система. Кратко расскажу, что конкретно она делает.
RvSIEM умеет принимать логи из различных систем: веб сервера, операционные системы (в том числе Windows), СУБД, почтовые сервера, шлюзы, сетевые устройства и т.д. Она их автоматически парсит, если используются стандартные шаблоны логов этих приложений и собирает по ним аналитику. Например, вычленяет из них IP адреса источников, информацию об учётных данных, если речь идёт о логине, статусы и критичности событий из логов приложений и т.д.
Всё это стекается в общее хранилище на базе Elasticsearch и ClickHouse, там анализируется и строятся отчёты. Например, можно вывести сквозной список всех IP адресов, с которых были подключения, которые не относятся к IP адресам РФ. Можно сделать отдельный отчёт по логинам RDP или в админку самой RvSIEM. Причём отчёты можно выгружать в различных форматах: PDF, DOCX, XSLX, CSV.
Есть стандартные преднастроенные фильтры и отчёты. Можно писать свои. То же самое и к парсерам относится. Используются grok фильтры для парсинга, как в Logstash. С ними нетрудно разобраться и распарсить свой формат логов. Я в своё время это освоил, когда надо было. Управление всё через веб интерфейс, в консоль ходить не обязательно.
Рассказываю, как я всё это установил. Пошёл на сайт и в разделе скачать оставил заявку. На следующий день мне прислали на почту мою учётную запись в ЛК с документацией всей системы RuSIEM. Там есть все ссылки и инструкции на загрузку. Используется общий установщик, а конкретно установку RvSIEM выбираешь при его запуске.
С установкой проблем не возникло, там всё просто. Инструкция на русском, сделал по ней. Хотя по сути там нужно просто скачать скрипт и запустить его. Дальше установщик всё делает сам. Он работает на базе ролей Ansible. Никаких лицензий потом получать не надо.
Дам одну существенную рекомендацию по настройкам Elasticsearch. Он по умолчанию съедает всю оперативную память и его прибивает OOM Killer. У меня было 4GB памяти, сделал 8GB, не помогло, сделал 12GB - тоже не помогло. Elasticsearch регулярно падал, хотя в тестовой системе нагрузки никакой не было. Мне это надоело и я в файл
Они ограничивают потребление в 4GB, что для небольшой нагрузки достаточно. После этого система стала стабильно работать.
RvSIEM умеет собирать логи разными способами. В основном это syslog, NetFlow и свой агент, в том числе для Windows. То есть настройка простая. Например, в Angie можно напрямую отправить логи в RvSIEM в формате syslog:
Основное ограничение бесплатной версии - 500 EPS (events per second). Не знаю, что тут конкретно имеется ввиду. Наверное, суммарное количество строк логов в секунду.
Для бесплатной системы функциональность более чем. Не знаю, есть ли у кого-то что-то лучше. Да и в целом мне понравилась система. Довольно быстро разобрался, развернул, посмотрел, как работает. Особых проблем не возникло. Попробуйте, если вам нужен такого рода продукт.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #security #отечественное
Решение полностью российское, соответственно документация, весь интерфейс, все встроенные фильтры и отчёты полностью на русском, что упрощает эксплуатацию. Я немного разобрался с RvSIEM: развернул, посмотрел, что умеет и как работает. На первый взгляд неплохая система. Кратко расскажу, что конкретно она делает.
RvSIEM умеет принимать логи из различных систем: веб сервера, операционные системы (в том числе Windows), СУБД, почтовые сервера, шлюзы, сетевые устройства и т.д. Она их автоматически парсит, если используются стандартные шаблоны логов этих приложений и собирает по ним аналитику. Например, вычленяет из них IP адреса источников, информацию об учётных данных, если речь идёт о логине, статусы и критичности событий из логов приложений и т.д.
Всё это стекается в общее хранилище на базе Elasticsearch и ClickHouse, там анализируется и строятся отчёты. Например, можно вывести сквозной список всех IP адресов, с которых были подключения, которые не относятся к IP адресам РФ. Можно сделать отдельный отчёт по логинам RDP или в админку самой RvSIEM. Причём отчёты можно выгружать в различных форматах: PDF, DOCX, XSLX, CSV.
Есть стандартные преднастроенные фильтры и отчёты. Можно писать свои. То же самое и к парсерам относится. Используются grok фильтры для парсинга, как в Logstash. С ними нетрудно разобраться и распарсить свой формат логов. Я в своё время это освоил, когда надо было. Управление всё через веб интерфейс, в консоль ходить не обязательно.
Рассказываю, как я всё это установил. Пошёл на сайт и в разделе скачать оставил заявку. На следующий день мне прислали на почту мою учётную запись в ЛК с документацией всей системы RuSIEM. Там есть все ссылки и инструкции на загрузку. Используется общий установщик, а конкретно установку RvSIEM выбираешь при его запуске.
С установкой проблем не возникло, там всё просто. Инструкция на русском, сделал по ней. Хотя по сути там нужно просто скачать скрипт и запустить его. Дальше установщик всё делает сам. Он работает на базе ролей Ansible. Никаких лицензий потом получать не надо.
Дам одну существенную рекомендацию по настройкам Elasticsearch. Он по умолчанию съедает всю оперативную память и его прибивает OOM Killer. У меня было 4GB памяти, сделал 8GB, не помогло, сделал 12GB - тоже не помогло. Elasticsearch регулярно падал, хотя в тестовой системе нагрузки никакой не было. Мне это надоело и я в файл
/etc/elasticsearch/jvm.options.d/rusiem.jvm.options добавил настройки:-Xms4g-Xmx4gОни ограничивают потребление в 4GB, что для небольшой нагрузки достаточно. После этого система стала стабильно работать.
RvSIEM умеет собирать логи разными способами. В основном это syslog, NetFlow и свой агент, в том числе для Windows. То есть настройка простая. Например, в Angie можно напрямую отправить логи в RvSIEM в формате syslog:
access_log syslog:server=10.20.1.9:5014,facility=local7,tag=angie,severity=infoerror_log syslog:server=10.20.1.9:5014,facility=local7,tag=angie,severity=infoОсновное ограничение бесплатной версии - 500 EPS (events per second). Не знаю, что тут конкретно имеется ввиду. Наверное, суммарное количество строк логов в секунду.
Для бесплатной системы функциональность более чем. Не знаю, есть ли у кого-то что-то лучше. Да и в целом мне понравилась система. Довольно быстро разобрался, развернул, посмотрел, как работает. Особых проблем не возникло. Попробуйте, если вам нужен такого рода продукт.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#logs #security #отечественное
2👍134👎10
Много на канале писал и пишу про сбор и анализ логов. Соберу все известные мне продукты и способы организации централизованного хранения логов, которые пришли в голову. Это будут как специализированное ПО для этого, так и другие продукты с такой функциональностью.
◽️ELK Stack. Известный и функциональный продукт, который подойдёт как для условно небольших одиночных серверов, так и больших кластеров. Из минусов - он довольно прожорлив до ресурсов и сложен в настройке. Надо прям учиться с ним работать, разбираться. С кондачка, потыкав мышкой не настроить. У меня есть подробная статья по настройке всего стека со сбором логов из разных систем. Статья ждёт обновления и адаптации под новую 9-ю версию. Сюда же добавлю похожие продукты - Graylog и OpenSearch.
◽️VictoriaLogs - функциональный и простой в настройке сборщик логов от одноимённой компании и их стека продуктов. Лично мне решение очень понравилось своей простотой, универсальностью и скоростью настройки. Смело рекомендую - пробуйте и используйте.
◽️Loki - известный продукт от стека Grafana. Относительно простой по сравнению с ELK, но с достаточной функциональностью для многих типовых задач. Продукт известный и популярный, есть куча инструкций и способов автоматической установки. Легче освоить и начать пользоваться, чем ELK.
◽️RvSIEM - полностью бесплатный компонент российской коммерческой системы RuSIEM. Он не только про сбор и хранение, но и анализ на предмет безопасности и уязвимостей. Но даже если вам не нужен анализ, сам сбор организован удобно. Мне понравился продукт.
◽️Elasticvue - GUI для Elasticsearch. То есть это максимально простое хранение логов с помощью Elasticsearch, где есть простой интерфейс для просмотра содержимого.
◽️Службы Systemd: journal-remote и journal-upload. Централизованный сбор логов средствами systemd со всех серверов с этой системой логирования. Функциональность очень простая - только сбор бинарных логов. Для просмотра через браузер можно использовать ещё один продукт - journal-gatewayd.
◽️Стандартный rsyslog. С помощью обычного syslog сервера очень просто организовать централизованный сбор текстовых логов. Смотреть в браузере можно с помощью Tailon, Logdy или Webmin. Для тех кто не знает, добавлю, что rsyslog агент есть и под Windows.
◽️Syslog-ng. Более продвинутый syslog сервер, в котором можно удобнее организовать сбор логов, нежели в rsyslog.
◽️Zabbix. В этой системе есть отдельный механизм по сбору и анализу логов, а также уведомления на какие-то события в них. Понятно, что это продукт из другой оперы и много логов туда слать нельзя, так как хранение в SQL базе. Но, к примеру, организовать сбор логов и уведомления на их основе можно. Я много раз настраивал и настраиваю. Тут в заметке несколько примеров.
Отдельно упомяну сервис axiom.co, куда можно сгружать свои логи и анализировать. У сервиса очень комфортный бесплатный тарифный план на хранение 25 GB и трафик 500 GB в месяц.
Из похожей серии сервис мониторинга New Relic, который в том числе позволяет собрать 100 GB логов.
Во все эти системы логи можно отправлять с помощью Vector. На текущий момент это наиболее простой, функциональный и производительный инструмент для этих задач. Вроде выходило что-то новое и перспективное по этой теме, но я не запомнил. Сам использую Vector.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#logs #подборка
◽️ELK Stack. Известный и функциональный продукт, который подойдёт как для условно небольших одиночных серверов, так и больших кластеров. Из минусов - он довольно прожорлив до ресурсов и сложен в настройке. Надо прям учиться с ним работать, разбираться. С кондачка, потыкав мышкой не настроить. У меня есть подробная статья по настройке всего стека со сбором логов из разных систем. Статья ждёт обновления и адаптации под новую 9-ю версию. Сюда же добавлю похожие продукты - Graylog и OpenSearch.
◽️VictoriaLogs - функциональный и простой в настройке сборщик логов от одноимённой компании и их стека продуктов. Лично мне решение очень понравилось своей простотой, универсальностью и скоростью настройки. Смело рекомендую - пробуйте и используйте.
◽️Loki - известный продукт от стека Grafana. Относительно простой по сравнению с ELK, но с достаточной функциональностью для многих типовых задач. Продукт известный и популярный, есть куча инструкций и способов автоматической установки. Легче освоить и начать пользоваться, чем ELK.
◽️RvSIEM - полностью бесплатный компонент российской коммерческой системы RuSIEM. Он не только про сбор и хранение, но и анализ на предмет безопасности и уязвимостей. Но даже если вам не нужен анализ, сам сбор организован удобно. Мне понравился продукт.
◽️Elasticvue - GUI для Elasticsearch. То есть это максимально простое хранение логов с помощью Elasticsearch, где есть простой интерфейс для просмотра содержимого.
◽️Службы Systemd: journal-remote и journal-upload. Централизованный сбор логов средствами systemd со всех серверов с этой системой логирования. Функциональность очень простая - только сбор бинарных логов. Для просмотра через браузер можно использовать ещё один продукт - journal-gatewayd.
◽️Стандартный rsyslog. С помощью обычного syslog сервера очень просто организовать централизованный сбор текстовых логов. Смотреть в браузере можно с помощью Tailon, Logdy или Webmin. Для тех кто не знает, добавлю, что rsyslog агент есть и под Windows.
◽️Syslog-ng. Более продвинутый syslog сервер, в котором можно удобнее организовать сбор логов, нежели в rsyslog.
◽️Zabbix. В этой системе есть отдельный механизм по сбору и анализу логов, а также уведомления на какие-то события в них. Понятно, что это продукт из другой оперы и много логов туда слать нельзя, так как хранение в SQL базе. Но, к примеру, организовать сбор логов и уведомления на их основе можно. Я много раз настраивал и настраиваю. Тут в заметке несколько примеров.
Отдельно упомяну сервис axiom.co, куда можно сгружать свои логи и анализировать. У сервиса очень комфортный бесплатный тарифный план на хранение 25 GB и трафик 500 GB в месяц.
Из похожей серии сервис мониторинга New Relic, который в том числе позволяет собрать 100 GB логов.
Во все эти системы логи можно отправлять с помощью Vector. На текущий момент это наиболее простой, функциональный и производительный инструмент для этих задач. Вроде выходило что-то новое и перспективное по этой теме, но я не запомнил. Сам использую Vector.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#logs #подборка
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍120👎1
Установка и настройка Aspia
Серверные компоненты системы router и relay доступны для установки под Windows и Linux. Под Linux они поставляются в виде собранных deb пакетов, поэтому мне видится самым простым и логичными вариантом установки - из пакетов.
Есть собранные Docker контейнеры от сторонних пользователей, но в данном случае я не вижу в них смысла, потому что по сути это одиночные исполняемые файлы, написанные на C++, конфигурационные файлы к бинарникам и systemd службы. Всё это есть в пакете.
Ставить будем на арендованную VPS с настроенным доменным именем и внешним IP. На сервер будут установлены обе службы: router и releay.
📌 Установка Aspia Router:
Генерируем конфиг:
Правим конфигурацию
Остальное можно не трогать. Запускаем службу:
Логи смотрим тут:
📌 Установка Aspia relay:
Генерируем конфиг:
Смотрим публичный ключ роутера:
Правим конфигурацию
Запускаем службу:
Логи смотрим тут:
Логи служб можно сделать подробнее и перенести в файлы. Описано в документации.
📌 Aspia Console поддерживает установку на Windows, Linux, macOS. Выбирайте, что вам удобнее. Я ставил на Windows и Ubuntu. Загружаете дистрибутив из репозитория и устанавливаете.
После первого запуска вам предложат создать новую адресную книгу. Сразу после создания, переходите в раздел Инструменты ⇨ Управление маршрутизатором и добавляйте подключение к роутеру. Указывайте IP адрес или доменное имя и стандартную учётку admin / admin. После подключения сразу добавьте новую учётную запись администратора, а стандартную отключите.
Адресная книга хранится локально, заполняется вручную. Это существенный минус приложения, так как если компьютеров много, то заполнить книгу первый раз вручную будет хлопотно. Потом её можно будет выгрузить или разместить на сетевом диске с общим доступом. Адресную книгу стоит сразу закрепить, чтобы она открывалась автоматически при запуске. И рекомендую сразу зашифровать её в свойствах.
📌 Aspia Host может быть установлен только на системы под управлением Windows. Это существенное ограничение Aspia, так как, конечно, хотелось бы видеть здесь ещё как минимум Linux, но что есть то есть.
Загружаем установщик в виде msi пакета, запускаем. Заходим в Параметры ⇨ Маршрутизатор, вводим адрес сервера с router и ключ из файла
После настройки хоста можно выгрузить его параметры в файл
На этом базовая настройка окончена, можно пользоваться сервисом. Всё довольно просто и понятно. Я без проблем и каких-то трудностей всё настроил сходу. Для переноса сервера или релея достаточно перенести файл с конфигурацией router.json, router.pub и базу /var/lib/aspia/router.db3.
Программа написана на C++ и потребляет очень мало ресурсов. Можно запустить на минимальной VPS.
Полезные ссылки:
- Сайт программы / Исходники
- Обзор основных возможностей
- Установка и настройка
- Часто задаваемые вопросы (FAQ)
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#aspia #remote
Серверные компоненты системы router и relay доступны для установки под Windows и Linux. Под Linux они поставляются в виде собранных deb пакетов, поэтому мне видится самым простым и логичными вариантом установки - из пакетов.
Есть собранные Docker контейнеры от сторонних пользователей, но в данном случае я не вижу в них смысла, потому что по сути это одиночные исполняемые файлы, написанные на C++, конфигурационные файлы к бинарникам и systemd службы. Всё это есть в пакете.
Ставить будем на арендованную VPS с настроенным доменным именем и внешним IP. На сервер будут установлены обе службы: router и releay.
📌 Установка Aspia Router:
# wget https://github.com/dchapyshev/aspia/releases/download/v2.7.0/aspia-router-2.7.0-x86_64.deb# apt install ./aspia-router-2.7.0-x86_64.debГенерируем конфиг:
# aspia_router --create-configПравим конфигурацию
/etc/aspia/router.json, добавляя туда: "RelayWhiteList": "127.0.0.1",Остальное можно не трогать. Запускаем службу:
# systemctl enable --now aspia-routerЛоги смотрим тут:
# journalctl -u aspia-router📌 Установка Aspia relay:
# wget https://github.com/dchapyshev/aspia/releases/download/v2.7.0/aspia-relay-2.7.0-x86_64.deb# apt install ./aspia-relay-2.7.0-x86_64.debГенерируем конфиг:
# aspia_relay --create-configСмотрим публичный ключ роутера:
# cat /etc/aspia/router.pubПравим конфигурацию
/etc/aspia/relay.json, добавляя туда: "PeerAddress": "341485.simplecloud.ru", "RouterAddress": "127.0.0.1", "RouterPublicKey": "A3F9B2D33F27F6809E0178EFC64786C", "StatisticsEnabled": "false", Запускаем службу:
# systemctl enable --now aspia-relayЛоги смотрим тут:
# journalctl -u aspia-relayЛоги служб можно сделать подробнее и перенести в файлы. Описано в документации.
📌 Aspia Console поддерживает установку на Windows, Linux, macOS. Выбирайте, что вам удобнее. Я ставил на Windows и Ubuntu. Загружаете дистрибутив из репозитория и устанавливаете.
После первого запуска вам предложат создать новую адресную книгу. Сразу после создания, переходите в раздел Инструменты ⇨ Управление маршрутизатором и добавляйте подключение к роутеру. Указывайте IP адрес или доменное имя и стандартную учётку admin / admin. После подключения сразу добавьте новую учётную запись администратора, а стандартную отключите.
Адресная книга хранится локально, заполняется вручную. Это существенный минус приложения, так как если компьютеров много, то заполнить книгу первый раз вручную будет хлопотно. Потом её можно будет выгрузить или разместить на сетевом диске с общим доступом. Адресную книгу стоит сразу закрепить, чтобы она открывалась автоматически при запуске. И рекомендую сразу зашифровать её в свойствах.
📌 Aspia Host может быть установлен только на системы под управлением Windows. Это существенное ограничение Aspia, так как, конечно, хотелось бы видеть здесь ещё как минимум Linux, но что есть то есть.
Загружаем установщик в виде msi пакета, запускаем. Заходим в Параметры ⇨ Маршрутизатор, вводим адрес сервера с router и ключ из файла
/etc/aspia/router.pub. Тут же в разделе Пользователи можно добавить пользователей, которые будут иметь доступ к этому компьютеру, а на вкладке Безопасность некоторые другие параметры, в том числе одноразовые пароли.После настройки хоста можно выгрузить его параметры в файл
aspia-host-config.json. Если положить этот файл вместе с .msi установщиком, он автоматом подхватит настройки при установке.На этом базовая настройка окончена, можно пользоваться сервисом. Всё довольно просто и понятно. Я без проблем и каких-то трудностей всё настроил сходу. Для переноса сервера или релея достаточно перенести файл с конфигурацией router.json, router.pub и базу /var/lib/aspia/router.db3.
Программа написана на C++ и потребляет очень мало ресурсов. Можно запустить на минимальной VPS.
Полезные ссылки:
- Сайт программы / Исходники
- Обзор основных возможностей
- Установка и настройка
- Часто задаваемые вопросы (FAQ)
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#aspia #remote
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍98👎2