Показаны сообщения с ярлыком rsyslog. Показать все сообщения
Показаны сообщения с ярлыком rsyslog. Показать все сообщения

воскресенье, 28 августа 2022 г.

2 возможные проблемы с rsyslogd в debian

 Это конечно не всё, но что было недавно актуально для меня:

1) привыкли что rsyslog работает от syslog:adm и есть скрипты, которые хотят юзера rsyslog? Забудьте, в дебе в отличие от убунты оно работает от рута. Можно добавить руками юзера (useradd -r -s /usr/sbin/nologin -g adm syslog)

А можно поставить убунту версию, где эта проблема решена изначально

deb http://ppa.launchpad.net/adiscon/v8-stable/ubuntu bionic main

2) apparmor испортит жизнь, если нужны логи не в стандартном месте.

https://documentation.suse.com/sles/15-SP1/html/SLES-all/cha-apparmor-profiles.html

Можно отключить профиль в аппармор

apt install apparmor-utils

aa-disable usr.sbin.rsyslogd

Можно добавить нужные папки в /etc/apparmor.d/local/usr.sbin.rsyslogd

и перечитать профиль



среда, 8 сентября 2021 г.

How to collect and manage all of your multi-line logs

https://www.datadoghq.com/blog/multiline-logging-guide/

Рассматривается в контексте elasticsearch, но применимо к любым обработчикам.

Вкратце: при выводе ошибки в несколько строк, их неудобно обрабатывать. Поэтому нужно или перейти на формат json, или применить "log shipper" -- парсеры, которые умеют склеивать сообщения в одно.

logstash, rsyslog, fluentd, syslog-ng, nxlog, datadog

 

пятница, 9 июля 2021 г.

Работаем с логами

 Для начала, очень рекомендую познакомиться с journalctl, это весьма гибкая система, сделанная как замена syslog-у. Главные отличия - кольцевой буфер для логов, что с одной стороны значит "место не может кончиться от жирного лога", с другой - если нам нужны эти логи то нужны ещё сервисы по их извлечению, парсингу, хранению, ротации; а также вместо Local* работаем по именам сервисов

При этом есть и другие удобные плюшки, вида выдачи лога в нужном формате (-o json)

Если нужен вывод в syslog, есть штатные механизмы (но очень редко они сбоят)

Возможен смешанный режим работы, когда часть сервисов пишет в журнал, часть сразу в локальные файлы.

Очень годная статья по journalctl

https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs

По настройке связки

https://www.loggly.com/ultimate-guide/centralizing-with-syslog/

И теперь мы можем использовать journalbeat для выгрузки логов.

четверг, 30 марта 2017 г.

systemd: rsyslog больше не пишет логи

Очень подробно проблема описана тут
http://unix.stackexchange.com/questions/124942/rsyslog-not-logging

Также может быть связано с /var/log/journal, повреждением записей или удалением этого каталога. Права выглядят примерно так
drwxr-sr-x  3 root     systemd-journal
Вроде можно просто создать /var/log/journal и при перезапуске сервера/journal сервисов права выставит как надо.
Также иногда нужно закомментировать $OmitLocalLogging on в rsyslog.conf

И быстрый фикс:
rm -f /var/lib/rsyslog/imjournal.state
service rsyslog restart

вторник, 28 февраля 2017 г.

rsyslog и шаблоны

Иногда нужен особый формат лога, и тут помогают шаблоны.
Писать их можно прямо в отдельном конфиге, например rsyslog.d/ourService.conf:
$template Short,"%timegenerated% serviceName[%PROCID%] %msg%\n"

local0.*                                                -/var/log/service.log;Short

четверг, 16 февраля 2017 г.

rsyslog: писать лог только в 1 файл, не трогая rsyslog.conf

Допустим, есть сервис, который мы хотим писать через syslog в отдельный файл, уровень local2, но чтобы он не засорял /var/log/syslog|/var/log/messages. Создадим /etc/rsyslog.d/sea с текстом local2.* /var/log/sea.log

2 варианта:
1) дописываем в любое место нашего файла
local2.none /var/log/messages
local2.none /var/log/syslog

2) дописываем сразу после правила
&~
(означает - если записали в этот файл, то дальше заканчиваем обработку строки, & это И, ~ это discard). Правил может быть несколько в файле, поэтому ставим именно после тех, где заканчиваем обработку строки.

UP
В свежих версиях в логе можно увидеть
rsyslogd-2307: warning: ~ action is deprecated, consider using the 'stop' statement instead [try http://www.rsyslog.com/e/2307 ]
Правда, по ссылке нет примеров применения и описания. Выглядеть это будет примерно так:
& stop
Но могут быть проблемы.

четверг, 5 ноября 2015 г.

rsyslog: некоторые особенности настройки

Если надо в syslog писать из своей программы, казалось бы, выбрали любой local* (для примера выберём 0) и автоматом пишем в /etc/rsyslog.d/program что-то типа
local0.* /var/log/prog.log

Но эти сообщения будут попадать и в основной лог (messages, syslog). И красивое развёртывание начинает рассыпаться необходимостью править/заменять основной конфиг! В частности, в центос надо строку
*.info;mail.none;authpriv.none;cron.none                -/var/log/messages
заменить на
*.info;local0.none;mail.none;authpriv.none;cron.none                -/var/log/messages

среда, 8 октября 2014 г.

Поднимаем syslog сервер

Может быть потребность в централизованном сборе и хранении логов, и syslog штатно умеет слать логи на удалённый сервер. Также это может быть сетевое оборудование, IP телефоны итд. На примере debian 6