tgoop.com/srv_admin/4056
Last Update:
Несмотря на то, что сейчас существует очень много современных решений по сбору и обработке логов, старый текстовый формат syslog не потерял полностью актуальность. Причин тому несколько. Перечислю то, что сам вспомнил:
◽️Формат популярен для сетевого оборудования, 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
BY ServerAdmin.ru

Share with your friend now:
tgoop.com/srv_admin/4056