Поиск по сайту:

Swatchdog — простой наблюдатель за файлами журналов в реальном времени в Linux


SwatchdogSimple WATCH DOG») — это простой сценарий Perl для мониторинга активных файлов журналов в Unix-подобных системах, таких как Linux. Он отслеживает ваши журналы на основе регулярных выражений, которые вы можете определить в файле конфигурации. Вы можете запустить его из командной строки или в фоновом режиме, отдельно от любого терминала, используя опцию режима демона.

Обратите внимание, что программа изначально называлась swatchSimple Watcher»), но по запросу старой швейцарской часовой компании об изменении названия разработчик сменил название на сторожевой пес.

Читайте также: 4 хороших инструмента мониторинга и управления журналами с открытым исходным кодом для Linux

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

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

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


sudo apt install swatch	[On Ubuntu/Debian]
sudo yum install epel-release && sudo yum install swatch	[On RHEL/CentOS]
sudo dnf install swatch	[On 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
OR
touch /home/tecmint/.swatchrc

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

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

watchfor  /sudo/
	echo red
	[email , subject="Sudo Command"

Здесь наше регулярное выражение представляет собой буквальную строку — “sudo”. Это означает, что каждый раз, когда строка sudo появляется в файле журнала, она будет выводиться на терминал красным текстом и mail указывает действие, которое необходимо выполнить, а именно отобразить совпадающий шаблон на терминале и отправить электронное письмо на указанный адрес в ответ.

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


swatch     [On RHEL/CentOS & Fedora]
swatchdog  [On Ubuntu/Debian]

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

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

mkdir swatch
touch swatch/secure.conf

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

watchfor /FAILED/
echo red
[email , subject="Failed Login Attempt"

watchfor /ROOT LOGIN/
echo red
[email , subject="Successful Root Login"

watchfor /ssh.*: Failed password/
echo red
[email , subject="Failed SSH Login Attempt"

watchfor /ssh.*: session opened for user root/ 
echo red
[email , subject="Successful SSH Root Login"

Теперь запустите Swatch, указав файл конфигурации с помощью -c и файл журнала с помощью флага -t, как показано.

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

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

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

Теперь, чтобы проверить конфигурацию образца, попробуйте войти на сервер с другого терминала. Вы увидите следующий вывод, напечатанный на терминале, на котором работает 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)

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

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

Для получения дополнительной информации посетите справочную страницу swatchdog.

man swatchdog

Репозиторий Swatchdog SourceForge: https://sourceforge.net/projects/swatch/

Ниже приведены некоторые дополнительные руководства по мониторингу журналов, которые могут оказаться вам полезными:

  1. 4 способа просмотра или мониторинга файлов журналов в режиме реального времени
  2. Как создать централизованный сервер журналов с помощью Rsyslog
  3. Мониторинг журналов сервера в режиме реального времени с помощью инструмента «Log.io»
  4. lnav — просмотр и анализ журналов Apache из терминала Linux
  5. ngxtop — мониторинг файлов журналов Nginx в реальном времени в Linux

Swatchdog — это простой инструмент активного мониторинга файлов журналов для Unix-подобных систем, таких как Linux. Попробуйте и поделитесь своими мыслями или задайте вопросы в разделе комментариев.