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

Фильтрация журналов SSHD

Мне просто интересно, как лучше всего фильтровать мои журналы sshd. Проблема в том, что я контролирую свои ящики по SSH с помощью Nagios и Cacti. Они оба подключаются каждые 5 минут, и это забивает мои файлы журналов множеством записей, что затрудняет быстрый «хвост», чтобы увидеть, что происходит.

Я бы хотел, чтобы все входы в систему от моего контролирующего пользователя (с определенного IP-адреса) регистрировались в отдельном файле.

В идеале я бы избегал установки syslog-ng или подобного. Мне пришлось бы установить это на различных машинах Ubuntu, CentOS и FreeBSD (на которых работает множество версий OpenSSH), так что это упростит жизнь, если я смогу сделать это без дополнительного программного обеспечения.

Любые рекомендации о том, как этого добиться?

Спасибо!

вы можете передать свой файл системного журнала в канал, как это

mkfifo /var/log/pipes/pipe1

а потом

прочтите это с помощью скрипта, который удалит строки, которые вам не нужны:

cat /var/log/pipes/pipe1 | grep -v "login from xxx.xxx.xxx" | while read LINE
do
  echo $LINE >>/var/log/ssh.log
done

Вы можете сделать что-то вроде этого:

tail -f logfile | grep -v "some\.ip\.address\.to\.ignore"

или

tail -f logfile | grep -v "some\.ip\.address\.to\.ignore.*user-name"

Можешь попробовать Ossec, он имеет очень хороший анализ журналов.

Образец - хорошая программа для отслеживания и фильтрации файлов журнала, даже с поддержкой раскрашивания строк. Для этого тоже есть пакет Debian / Ubuntu.