В наших системах Linux по умолчанию запускается утилита logwatch (8) . В системе RedHat / CentOS / SL Logwatch вызывается /etc/cron.daily/
cronjob, который затем отправляет ежедневное электронное письмо с результатами. Эти электронные письма имеют тему как:
Subject: Logwatch for $HOSTNAME
Проблема заключается в том, что по умолчанию эти ежедневные электронные письма слишком шумные и содержат много лишней информации (ошибки HTTP, ежедневное использование диска и т. Д.), Которые уже отслеживаются другими службами (Nagios, Cacti, центральный системный журнал и т. Д.). Для 100 систем загрузка электронной почты невыносима. Люди игнорируют электронные письма, а это значит, что мы можем пропустить проблемы, которые обнаруживаются в logwatch.
Как я могу уменьшить количество шума, генерируемого logwatch, но при этом использовать logwatch, чтобы уведомить нас о серьезных проблемах?
Я опубликую свой собственный ответ ниже, но я хотел бы увидеть, что сделали другие.
Примечание : у меня есть похожий вопрос относительно FreeBSD, во FreeBSD: period (8) слишком шумный. Как я могу контролировать уровень шума?
источник
Да, logwatch часто слишком шумный. Вы уже упоминали об отключении проверок полностью.
Если вы не хотите этого делать, вы должны предотвратить появление определенных событий. Например - не интересно, подключается ли nagios через ssh к системе DMZ. Но это интересно, если есть другие логины через ssh.
Мы используем rsyslog вместо ksyslogd (сначала установите rsyslog, затем удалите ksyslogd). С помощью rsyslog вы можете точно настроить, что идет в журналы, а что нет (например, создать выражение, которое отбрасывает сообщения из sshd, содержащие "подключенные nagios"). Таким образом, logwatch будет сообщать только полезную информацию.
Другой случай может быть xinetd - я не хочу получать информацию об успешных соединениях - это можно настроить в xinetd itselv - без отключения проверки журнала для xinetd.
источник
Для интереса я выбрал вариант 2 из ответа Стефана Ласевского, но для своих целей я хотел включать только определенные линии, а не исключать весь шум, который мне не нужен.
Я настраивал vsftpd, поэтому я создал
/etc/logwatch/conf/services/vsftpd.conf
и вместо использования чего-то вроде*Remove = testuser
удаления строк, содержащих текст,testuser
я использовал строку,*OnlyContains = "testuser"
которая возвращает только строки, содержащие этот текст.Эти 2 сценария работают в основном с использованием
grep
иgrep -v
.Разница в том, что вы можете использовать
*Remove
столько раз, сколько хотите, но вместе с тем*OnlyContains
вам придется использовать его один раз, если вы хотите что-то или что-то еще или что-то еще. Таким образом, для нескольких значений вы делаете*OnlyContains = "testuser|testuser2|testuser3"
источник
Рассматривали ли вы рассылку сообщений о состоянии электронной почты на сервер рассылки, может быть, тот, который может предоставлять дайджесты на основе программируемых атрибутов размера и / или продолжительности / возраста? Этот подход не уменьшает количество сообщений, отправляемых по электронной почте, но может контролировать количество отдельных сообщений электронной почты путем пакетной обработки, чтобы уменьшить частоту отправки сообщений по электронной почте.
источник
Недавно мне нужно было успокоить вывод из службы sshd. Некоторые из разделов были довольно длинными и не могли управляться путем установки уровня детализации.
Это не идеальное решение, но я переписал скрипт sshd , скопировав его отсюда:
/usr/share/logwatch/scripts/services/sshd
сюда:/etc/logwatch/scripts/services/sshd
Конечно, теперь вам нужно следить за любыми обновлениями этого файла сценария, но он дает вам очень хороший контроль над тем, что выводится. В качестве альтернативы, я полагаю, вы могли бы направить вывод
logwatch
через инструмент, подобныйawk
илиsed
вырезать то, что вам не нужно, но мне это показалось сложнее.источник
У меня был тот же вопрос о UNIX & Linux Stackexchange, и вот ответ, который я исправил для меня:
Вы можете указать logwatch смотреть на 7 дней вместо 1 дня, изменив параметр Range в вашем
logwatch.conf
:Вы можете указать
logwatch
запускать еженедельно, а не ежедневно, переместив его из еженедельного каталога cron в ежедневныйcron
каталог:Благодаря @JeffSchaller
источник