Swatchdog – Простой файловый наблюдатель в режиме реального времени в Linux

by itisgood

Swatchdog («Simple WATCH DOG») – простой скрипт Perl для мониторинга активных файлов журналов в Unix-подобных системах, таких как Linux.

Он отслеживает ваши журналы на основе регулярных выражений, которые вы можете определить в файле конфигурации.

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

Обратите внимание, что программа изначально называлась swatch («Simple Watcher»), но запрос старой швейцарской часовой компании на изменение имени увидел, что разработчик изменил свое имя на swatchdog.

Важно отметить, что swatchdog вырос из скрипта для просмотра журналов, созданных средством syslog Unix, и он может отслеживать практически любые журналы.

Как установить Swatch в Linux

Пакет swatchdog доступен для установки из официальных репозиториев основных дистрибутивов Linux в виде пакета «swatch» через диспетчер пакетов

$ sudo apt install swatch	[На Ubuntu/Debian]
$ sudo yum install epel-release && sudo yum install swatch	[На RHEL/CentOS]
$ sudo dnf install swatch	[На Fedora 22+]

Чтобы установить самую последнюю версию swatchdog, вам необходимо скомпилировать ее из исходного кода, используя следующие команды в любом дистрибутиве Linux.

$ git clone https://github.com/ToddAtkins/swatchdog.git
$ cd swatchdog/
$ perl Makefile.PL
$ make
$ sudo make install
$ sudo make realclean

После того, как вы установили образец, вам необходимо создать его файл конфигурации (по умолчанию – /home/$USER/.swatchdogrc или .swatchrc), чтобы определить, какие типы шаблонов выражений следует искать и какие действия если шаблон сопоставляется.

$ touch /home/tecmint/.swatchdogrc
или
$ touch /home/tecmint/.swatchrc

Добавьте свое регулярное выражение в этот файл, и каждая строка должна содержать ключевое слово и значение (иногда необязательное), разделенное пробелом или значком равенства (=).

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

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

watchfor  /sudo/
echo red
mail=admin@tecmint.com, subject="Sudo Command"

Здесь наше регулярное выражение – буквенная строка – «sudo», означает, что всякий раз, когда строкаsudo появилась в файле журнала, будет выведена на терминале в красном тексте, а почта укажет действие, которое необходимо предпринять, что должно отражать согласованное шаблон на терминале и отправить электронное письмо на указанный адрес

После того, как вы его настроили это, swatchdog читает файл журнала / var / log / syslog по умолчанию, если этот файл отсутствует, он читает / var / log / messages

$ swatch     [На RHEL/CentOS & Fedora]
$ swatchdog  [На Ubuntu/Debian]

Вы можете указать другой файл конфигурации, используя флаг -c, как показано в следующем примере.

Сначала создайте каталог конфигурации и файл.

$ mkdir swatch
$ touch swatch/secure.conf

Затем добавьте следующую конфигурацию в файл, чтобы отслеживать неудачные попытки входа в систему, неудачные попытки входа в систему SSH, успешные логины SSH из файла / var / log / secure log.

watchfor /FAILED/
echo red
mail=admin@tecmint.com, subject="Failed Login Attempt"
watchfor /ROOT LOGIN/
echo red
mail=admin@tecmint.com, subject="Successful Root Login"
watchfor /ssh.*: Failed password/
echo red
mail=admin@tecmint.com, subject="Failed SSH Login Attempt"
watchfor /ssh.*: session opened for user root/ 
echo red
mail=admin@tecmint.com, subject="Successful SSH Root Login"

Теперь запустите Swatch, указав файл конфигурации, используя файл -c и log, используя флаг -t, как показано ниже:

$ swatchdog -c ~/swatch/secure.conf -t /var/log/secure

Чтобы запустить его в фоновом режиме, используйте флаг -daemon; в этом режиме он отсоединяется от любого терминала.

$ swatchdog ~/swatch/secure.conf -t /var/log/secure --daemon  

Теперь, чтобы проверить конфигурацию swatch, попробуйте войти на сервер с другого терминала, вы увидите следующий вывод, напечатанный на терминале, где работает Swatchdog.

*** swatch version 3.2.3 (pid:16531) started at Thu Jul 12 12:45:10 BST 2018
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:51:19 tecmint sshd[16739]: Failed password for root from 192.168.0.103 port 33324 ssh2
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jul 12 12:52:07 tecmint sshd[16739]: pam_unix(sshd:session): session opened for user root by (uid=0)

Вы также можете запускать несколько процессов swatch для мониторинга различных файлов журналов.

$ swatchdog -c ~/site1_watch_config -t /var/log/nginx/site1/access_log --daemon  
$ swatchdog -c ~/messages_watch_config -t /var/log/messages --daemon
$ swatchdog -c ~/auth_watch_config -t /var/log/auth.log --daemon

 

You may also like

Leave a Comment