Назад | Перейти на главную страницу

Перенаправление вывода системного журнала для определенных процессов в конкретный файл

Я должен признать, что являюсь полным новичком в системном журнале. Я не трогал его до сих пор, но я использую его результаты ежедневно, как и большинство из нас :)

В настоящее время у меня проблема с тем, что демон gmetad рассылает мой файл / var / log / messages сообщениями, подобными следующим:

1 сен 10:09:49 monitor / usr / sbin / gmetad [31752]: RRD_update (/ var / lib / ganglia / rrds / Machines /SummaryInfo/example.rrd): недопустимая попытка обновления с использованием времени 1314868188, когда время последнего обновления составляет 1314868188 (минимальный шаг в одну секунду).

Меня не слишком беспокоит ошибка, я хочу перенаправить эти конкретные сообщения в другой файл журнала (например, /var/log/gmetad.log). Проблема в том, что, похоже, нет никакого способа направить журналы gmetad в определенное место в его конфигурации (а документация для этого конкретного программного обеспечения кажется довольно скудной). Поэтому мне было интересно, можно ли использовать «локальную» возможность в системном журнале, чтобы захватить эти сообщения и прикрепить их где-нибудь еще, чтобы оставить / var / log / messages немного чище.

Кто-нибудь может помочь? Есть ли у кого-нибудь примеры "местных" объектов?

Какой у вас демон системного журнала? Syslogd? syslog-ng? rsyslog? Синтаксис у каждого демона разный.

например, в rsyslog вы можете сделать что-то вроде

local5.*   /var/log/gmetad.log

{вы должны найти объект приложения}

в противном случае вы могли бы сделать что-то вроде

if $msg contains gmetad then /var/log/gmetad.log