Как подавить конкретное сообщение в syslogd 1.4.1
Есть ли способ подавить конкретное сообщение в syslogd? У меня есть пара серверов Linux Oracle 5.10 с syslogd 1.4.1 Поскольку все мои серверы являются производственными серверами, я не могу обновить syslogd до rsyslogd (где возможна фильтрация сообщений). Есть идеи, как этого добиться?
1 ответ
Как вы уже обнаружили, старый syslogd не обладает такими способностями фильтрации. Это означает, что если вы хотите отфильтровать эти сообщения, вам нужно использовать внешнюю программу для фильтрации.
Если вы находитесь в какой-либо большой среде, я бы порекомендовал вам настроить отдельный сервер системного журнала и перенаправить журналы на него. На этом сервере вы можете использовать более современное приложение системного журнала, которое имеет функции фильтрации.
Однако, если вы хотите или должны хранить журналы ядра на локальном компьютере, вы можете обойти это немного хитростью.
Самый простой способ - заставить системный журнал записывать журнал в нестандартный файл журнала, например
kern.err /var/tmp/kernel-unfiltered
Тогда вы можете просто иметь скрипт для просмотра /var/tmp/kernel-неотфильтрованный, и для любой строки, которая не соответствует объекту, который вы хотите отфильтровать, повторно введите его logger
но с другим средством или уровнем логирования, или просто записывая непосредственно в лог-файл, который вы действительно хотите.
Другим методом будет использование трубы. Syslogd не может писать напрямую в программу (иначе grep -v THEMESSAGE > /var/log/kernel.log
было бы очевидным решением), но он может войти в именованный канал - и тогда вы можете иметь отдельную программу, считывающую из этого канала и отфильтровывающую нужные вам сообщения, и либо повторно внедрить сообщение, либо записать его непосредственно в файл журнала, Вы должны создать трубу, используя, например,
mkfifo /var/tmp/logfifo
и конфиг будет
kern.err |/var/tmp/logfifo
Преимуществом здесь будет меньший риск заполнения файловой системы мусором по сравнению с использованием реального файла.
Оба эти решения, вероятно, вызовут много головных болей у любого нового человека, который овладеет этими системами, если не будет хорошо документировано.