Лабораторная работа посвящена настройке программы автоматического анализа журналов swatch
Настроить программу swatch, так чтобы она выполняла автоматический анализ журналов и, в зависимости от того, какие сообщения обнаружены в журналах, вызывала те или иные программы
Каким образом это делается
Инсталляция swatch
Установите swatch принятым в операционной системе способом.
# apt-get install swatch
#pkg_add -r swatch
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/
packages-5.4-release/Latest/swatch.tbz... Done
Добавление swatch в загрузку
Выполните добавление swatch в загрузку таким образом:
# vi /etc/rc.conf
21a22,26 > > swatch_enable="YES" > swatch_rules="1" > swatch_1_flags="-c /usr/local/etc/swatch_1_rule -t /var/log/messages --daemon"
Создание правила фильтрации
Сделайте создание правила фильтрации следующим образом:
# vi /usr/local/etc/swatch_1_rule
0a1,3 > watchfor /swatch/ > echo
swatch при использовании команды echo
просто будет выдавать на консоль
все строки, которые будут соответствовать регулярному выражению,
идущему следом за watchfor
.
В данном случае, он будет выдавать строки содержащие слово swatch
.
Запуск swatch
Сделайте запуск swatch вот так:
# /etc/init.d/swatch start
# /usr/local/etc/rc.d/swatch.sh start
Проверка
Убедитесь, что все действия выполнены правильно, следующим образом:
отправьте журнальное сообщение, содержащее слово swatch
.
Программа swatch должна увидеть его в журнале,
и вывести на консоль.
# logger "Test of swatch"
Создание скрипта обработки записи
Расширим возможности swatch. Будем при появлении определённых сообщений в журнале не просто выдавать текст на консоль, а вызывать скрипт.
Выполните создание скрипта обработки записи как показано ниже:
# vi /usr/local/bin/log_swatch
0a1,5 > #!/bin/sh > > SWATCHLOG=/tmp/swatch.log > echo `date` "Zafiksirovana podozritelnaya aktivnost" >> ${SWATCHLOG} > echo `date` "Podrobnosti: " "$*" >> ${SWATCHLOG} >
Файл должен быть исполняемым:
# chmod +x /usr/local/bin/log_swatch
Модификация правила фильтрации
Модифицируйте правила фильтрации swatch:
# vi /usr/local/etc/swatch_1_rule
2c2 < echo --- > exec /usr/local/bin/log_swatch $S_
Вместо того чтобы выдавать сообщение на консоль,
swatch должен теперь вызывать скрипт log_swatch
,
и передавать ему текст сообщения.
Перезапуск swatch
Произведите перезапуск swatch как показано ниже:
# /etc/init.d/swatch restart
# /usr/local/etc/rc.d/swatch.sh restart
Проверка
Выполненные действия должны были привести к требуемому результату. Убедиться можно следующим образом:
# logger "Test of swatch" # tail /tmp/swatch.log Wed Aug 31 14:43:17 EEST 2005 Zafiksirovana podozritelnaya aktivnost Wed Aug 31 14:43:17 EEST 2005 Podrobnosti: Aug 31 14:43:17 leo root: Test of swatch
Выполняется отправка сообщения в системный журнал.
swatch обнаруживает его в журнале,
и вызывает скрипт log_swatch
, передавая ему текст сообщения
в качестве аргумента командной строки.
Скрипт записывает переданную строку в файл /tmp/swatch.log
Таблица 1.1. Наиболее важные ключи программы swatch
Ключ | Описание |
---|---|
| использовать указанный конфигурационный файл |
| искать ключевые слова в указанном файле. Завершить работу после окончания анализа |
| обрабатывать строки по мере их добавления в указанный файл |
| работать в режиме демона |
Настроить swatch так, чтобы он отправлял SMS-сообщения с мобильного телефона, подключенного к компьютеру, на другой мобильный телефон. В качестве программы для отправки SMS-сообщений использовать программу gnokii.
Выполненная в прошлой лабораторной работе, настройка программы swatch демонстрирует возможности swatch и правила его настройки, но за исключением этого имеет мало практической пользы. Однако, если изменить вызываемый swatch скрипт, можно добиться интересных практических результатов. В этом упражненнии показано, как заставить систему при обнаружении определённых записей в системном журнале отправлять SMS-сообщения с помощью подключенного к ней мобильного телефона.
Подключение мобильного телефона
Подключите мобильный телефон к компьютеру или, если связь телефона с компьютером происходит по Bluetooth или IrDA, убедитесь что адаптер беспроводной связи работает.
Инсталляция gnokii
Установите gnokii принятым в операционной системе способом.
# cd /usr/ports # make search name=gnokii Port: gnokii-0.6.4,1 Path: /usr/ports/comms/gnokii Info: Tools to talk to GSM cellular phones Maint: mad@madpilot.net B-deps: expat-1.95.8 fontconfig-2.2.3,1 freetype2-2.1.9 gettext-0.14.1 glib-1.2.10_11 gmake-3.80_2 g R-deps: expat-1.95.8 fontconfig-2.2.3,1 freetype2-2.1.9 gettext-0.14.1 glib-1.2.10_11 gtk-1.2.10_12 WWW: http://www.gnokii.org/ # cd comms/gnokii/ # make install clean checking whether cc accepts -g... yes checking for cc option to accept ANSI C... none needed checking how to run the C preprocessor... cc -E checking for flex... flex checking for yywrap in -lfl... yes ...
Настройка gnokii на работу с мобильным телефоном
Настройте gnokii на работу с мобильным телефоном как показано ниже:
# cd /usr/local/etc # cp gnokiirc{.sample,} # vi gnokiirc
Отправка SMS-сообщения с помощью gnokii вручную
С помощью gnokii вручную отправьте SMS-сообщение:
# uname -a | gnokii --sendsms +380501234567 -r
GNOKII Version 0.6.4
Send succeeded!
Создание скрипта отправки SMS
Создайте скрипт, который с помощью gnokii будет отправлять журнальное сообщение в виде SMS.
# vi /usr/local/bin/sms_swatch
0a1,5 > #!/bin/sh > > # Номер мобильного телефона системного администратора, > # который будет получать ночью сообщения о том, что на диске > # закончилось место > PHONE="+380501234567" > echo swatch sms: "$*" | gnokii --sendsms "$PHONE" -r >
Или, если номеров, на которое должно быть отправлено сообщение, несколько:
# vi /usr/local/bin/sms_swatch
0a1,5 > #!/bin/sh > > # Номер мобильного телефона системного администратора, > # который будет получать ночью сообщения о том, что на диске > # закончилось место > PHONES="+380501234567 +380678901234" > for i in $PHONES > do > echo swatch sms: "$*" | gnokii --sendsms "$PHONE" -r > done >
Модификация правила фильтрации
Модифицируйте правила фильтрации swatch:
# vi /usr/local/etc/swatch_1_rule
2c2 < exec /usr/local/bin/log_swatch $S_ --- > exec /usr/local/bin/sms_swatch $S_
Теперь swatch не будет записывать сообщение в файл, а вместо этого будет отправлять его с помощью мобильного телефона.
Перезапуск swatch
Перезапустите swatch как показано ниже:
# /etc/init.d/swatch restart
# /usr/local/etc/rc.d/swatch.sh restart
Проверка
Выполненные действия должны были привести к требуемому результату. Убедиться можно следующим образом:
# logger "Test of swatch"
Сообщение должно быть получено на мобильный телефон,
номер которого указан в файле скрипта sms_swatch
.
При этом происходят следующие действия: выполняется отправка сообщения в системный журнал.
swatch обнаруживает его в журнале, и вызывает скрипт
sms_swatch
, передавая ему текст сообщения
в качестве аргумента командной строки. Скрипт отсылает переданную ему строку в
виде SMS-сообщения.
© 2002-2005 Игорь Чубин |
Учебный центр Сетевые Технологии, ug-ids, 2006-06-25 |
Слушатель отсутствует, ДЕМО-ВЕРСИЯ |