Анализ журналов системы

Лабораторная работа посвящена настройке программы автоматического анализа журналов swatch

Автоматический анализ журналов с помощью Swatch

Настроить программу swatch, так чтобы она выполняла автоматический анализ журналов и, в зависимости от того, какие сообщения обнаружены в журналах, вызывала те или иные программы

Каким образом это делается

  1. Инсталляция 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
    

  2. Добавление 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"
    

  3. Создание правила фильтрации

    Сделайте создание правила фильтрации следующим образом:

    # vi /usr/local/etc/swatch_1_rule
    

    0a1,3
    > watchfor /swatch/
    > 	echo
    

    swatch при использовании команды echo просто будет выдавать на консоль все строки, которые будут соответствовать регулярному выражению, идущему следом за watchfor. В данном случае, он будет выдавать строки содержащие слово swatch.

  4. Запуск swatch

    Сделайте запуск swatch вот так:

    # /etc/init.d/swatch start
    

    # /usr/local/etc/rc.d/swatch.sh start
    

  5. Проверка

    Убедитесь, что все действия выполнены правильно, следующим образом: отправьте журнальное сообщение, содержащее слово swatch. Программа swatch должна увидеть его в журнале, и вывести на консоль.

    # logger "Test of swatch"
    

  6. Создание скрипта обработки записи

    Расширим возможности 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
    

  7. Модификация правила фильтрации

    Модифицируйте правила фильтрации swatch:

    # vi /usr/local/etc/swatch_1_rule
    

    2c2
    < 	echo
    ---
    > 	exec /usr/local/bin/log_swatch $S_
    

    Вместо того чтобы выдавать сообщение на консоль, swatch должен теперь вызывать скрипт log_swatch, и передавать ему текст сообщения.

  8. Перезапуск swatch

    Произведите перезапуск swatch как показано ниже:

    # /etc/init.d/swatch restart
    

    # /usr/local/etc/rc.d/swatch.sh restart
    

  9. Проверка

    Выполненные действия должны были привести к требуемому результату. Убедиться можно следующим образом:

    # 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

Ключ

Описание

-c

использовать указанный конфигурационный файл

-f

искать ключевые слова в указанном файле. Завершить работу после окончания анализа

-t

обрабатывать строки по мере их добавления в указанный файл

--daemon

работать в режиме демона

Отправка SMS-оповещений

Настроить swatch так, чтобы он отправлял SMS-сообщения с мобильного телефона, подключенного к компьютеру, на другой мобильный телефон. В качестве программы для отправки SMS-сообщений использовать программу gnokii.

Выполненная в прошлой лабораторной работе, настройка программы swatch демонстрирует возможности swatch и правила его настройки, но за исключением этого имеет мало практической пользы. Однако, если изменить вызываемый swatch скрипт, можно добиться интересных практических результатов. В этом упражненнии показано, как заставить систему при обнаружении определённых записей в системном журнале отправлять SMS-сообщения с помощью подключенного к ней мобильного телефона.

  1. Подключение мобильного телефона

    Подключите мобильный телефон к компьютеру или, если связь телефона с компьютером происходит по Bluetooth или IrDA, убедитесь что адаптер беспроводной связи работает.

  2. Инсталляция 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
    ...
    

  3. Настройка gnokii на работу с мобильным телефоном

    Настройте gnokii на работу с мобильным телефоном как показано ниже:

    # cd /usr/local/etc
    # cp gnokiirc{.sample,}
    # vi gnokiirc
    

  4. Отправка SMS-сообщения с помощью gnokii вручную

    С помощью gnokii вручную отправьте SMS-сообщение:

    # uname -a | gnokii --sendsms +380501234567 -r
    GNOKII Version 0.6.4
    Send succeeded!
    

  5. Создание скрипта отправки 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
    > 
    

  6. Модификация правила фильтрации

    Модифицируйте правила фильтрации swatch:

    # vi /usr/local/etc/swatch_1_rule
    

    2c2
    < 	exec /usr/local/bin/log_swatch $S_
    ---
    > 	exec /usr/local/bin/sms_swatch $S_
    

    Теперь swatch не будет записывать сообщение в файл, а вместо этого будет отправлять его с помощью мобильного телефона.

  7. Перезапуск swatch

    Перезапустите swatch как показано ниже:

    # /etc/init.d/swatch restart
    

    # /usr/local/etc/rc.d/swatch.sh restart
    

  8. Проверка

    Выполненные действия должны были привести к требуемому результату. Убедиться можно следующим образом:

    # logger "Test of swatch"
    

    Сообщение должно быть получено на мобильный телефон, номер которого указан в файле скрипта sms_swatch. При этом происходят следующие действия: выполняется отправка сообщения в системный журнал. swatch обнаруживает его в журнале, и вызывает скрипт sms_swatch, передавая ему текст сообщения в качестве аргумента командной строки. Скрипт отсылает переданную ему строку в виде SMS-сообщения.

© 2002-2005 Игорь Чубин
Учебный центр Сетевые Технологии, ug-ids, 2006-06-25
Слушатель отсутствует, ДЕМО-ВЕРСИЯ