Swatchdog — простой наблюдатель за файлами журналов в реальном времени в Linux
Swatchdog («Simple WATCH DOG») — это простой сценарий Perl для мониторинга активных файлов журналов в Unix-подобных системах, таких как Linux. Он отслеживает ваши журналы на основе регулярных выражений, которые вы можете определить в файле конфигурации. Вы можете запустить его из командной строки или в фоновом режиме, отдельно от любого терминала, используя опцию режима демона.
Обратите внимание, что программа изначально называлась swatch («Simple 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/
Ниже приведены некоторые дополнительные руководства по мониторингу журналов, которые могут оказаться вам полезными:
- 4 способа просмотра или мониторинга файлов журналов в режиме реального времени
- Как создать централизованный сервер журналов с помощью Rsyslog
- Мониторинг журналов сервера в режиме реального времени с помощью инструмента «Log.io»
- lnav — просмотр и анализ журналов Apache из терминала Linux
- ngxtop — мониторинг файлов журналов Nginx в реальном времени в Linux
Swatchdog — это простой инструмент активного мониторинга файлов журналов для Unix-подобных систем, таких как Linux. Попробуйте и поделитесь своими мыслями или задайте вопросы в разделе комментариев.