LOGWATCH.PL



NAME

logwatch.pl - просмотр и выборка определенных событий из виндовых логов


DESCRIPTION

Просматривает виндовс логи, выбирает определенные события по заданным условиям и отправляет все, что выбрал на электронную почту ( предполагается админу...).


SYNOPSIS

Аргументы командной строки:

-cfg
Полный путь к файлу конфигурации. По умолчанию logwatch.cfg.

-s
Имена разделов виндового журнала сообщений... ( может быть несколько, каждый раздел описывается с -s ). По умолчанию System, Application и Security

-p
Интервал времени за который смотреть логи, в формате ЧЧ:ММ. Например, чтобы просмотреть все логи за последние 2 с половиной часа надо написать примерно так 2:30. По умолчанию 6:00.

-type
Тип выводимой информации ( html / text ). По умолчанию html.

-send_empty
Отправлять уведомление о проведении проверки если не сканирование логов не дало результатов... То есть если в логе не было обнаружено событий подлежащих отправке по почте, то почтой отправляется дата проведения проверки, если флаг send_empty не установлен ( по умолчанию ) то почта в данном случае не отправляется.

-mail_to
Адресат для получения выбранных логов.

-mail_from
От кого исходящая почта...

-smtp
Адрес почтового сервера через который производится отправка почты.

-charset
Кодировка письма. По умолчанию windows-1251.


CONFIGURATION FILE

В файле описываются параметры для задания определенных условий выборки лог-сообщений...

Формат такой:

 EVENT
      параметр значение

Список параметров:

Section
Имя секции. Если задано то делаем выборку только из той секции.

noSectino
Имя секции. Исключить из выборки данную секцию.

Type
Выбирать сообщения только данного типа ( erro, warn, info, a_se, a_fa ).

noType
Не выбирать сообщения данного типа.

Source
Включить в выборку сообщения из данного источника.

noSource
Исключить из выборки сообщения данного источника.

RegExp
Поиск в лог-строке с помощью регулярного выражения.

noRegExp
Исключить из выборки строку содержащую данное регулярное выражение...

Group
Имя группы в которую помещаются сообщения удовлетворяющие всем условиям.

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

Raw_Handler
Тоже, что и Handler только никакие данные не экранируются, то есть если в логе событие занимает несколько строк то и обработчику оно передастся соответствующим образом... Сделано с расчетом на некоторое будущее...

MultiLog
При использовании данной опции поиск продолжается далее даже при удачном совпадении... Короче, по умолчанию как только строка с логом подпадает под описание в какой либо секции, поиск по следующим секциям не производится - данная опция отключает это...

Log_Format
Формат выводимой лог строки события ( отрабатываем через printf ). Что то, примерно такое например: %2.2d/%2.2d %2.2d:%2.2d:%2.2d %s %s: %s

Format_Arg
Аргументы передаваемые в printf. Например так, для вышеописанного Log_Format: Month,Day,Hour,Min,Sec,Type,Source,Message

Возможно использовать:

Date
дата события.

Year
год события ( 2004 ).

Month
месяц события ( 1 - 12 ).

Day
день события ( 1 - 31 ).

Hour
час события ( 01 ).

Min
минуты события ( 02 ).

Sec
секунды события ( 03 ).

TypeRaw
числовой код типа события.

Type
строковое представление типа события.

Message
строка сообщения события.

Source
источник генерации события.

Computer
имя компьютера на котором сгенерировано событие.

User
-

RecordNumber
номер записи события.

Section
имя секции журнала.

Условия сопоставления проверяются в порядке их описания в конфигурационном файле... Каждое условие - логическое 'и', то есть type=erro и regexp=xxx и noregexp=yyy...

В описании Section, noSection, Source, noSource, Type, noType можно использовать только одно условие... Например условие 'Type erro,warn' - не корректно... Внутри скрипта все более понятно...

При разборе регекспов используется конструкция вида str =~ m#RegExp#;, где str - строка полученная из sprintf с заданными условиями ( log_format и format_arg )...

Пример конфига:

 EVENT
 # Использовать все секции описанные через -s, кроме System
   noSection System
 # Найти в данных секциях сообщения типа erro
   Type erro
 # И чтобы строка сообщения или имя устройства содержали слово logOn
   RegExp logon
 # Формат отправляемых логов
 #   Section [Hour:Min:Sec] Source: Message
   Log_Format %s [%2.2d:%2.2d:%2.2d] %s: %s
   Format_Arg Section,Hour,Min,Sec,Message
 # Группа к которой относятся сообщения
  Group Сообщения об ошибках со словом logon, кроме секции System
 EVENT
 # Сообщения из секции систем
   Section System
 # С типом erro
   Type erro
  ...
 # Заносим в группу
   Group Ошибки в System

ну и так далее...


AUTHOR

 Igor V. Okunev  mailto:igor[at]prv.mts-nn.ru
                 http://www.mts-nn.ru/~gosha
                         icq:106183300


LOGROTATE.PL



NAME

logrotate.pl - ротация виндовых логов


DESCRIPTION

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

Данный скрипт запускается по `работа по расписанию` раз в сутки ( у меня ночью ), в зависимости от установленных значений ( daily, weekly, montly ) производится конвертация логов. По умолчанию используется weekly, чтобы установить daily нужно сначала в конфиге написать weekly=0... такова реализация.


SYNOPSIS

В командной строке возможен один аргумент -cfg - полное имя файла конфигурации ( по умолчанию rotate.cfg )


CONFIGURATION FILE

Формат такой:

 [имя_секции]
 опции

Список опций:

file
Имя файла в который складываются логи для данной секции

rotate
Число хранимых лог файлов ( формат примерно такой rotate=10, при использовании weekly храним логи за 10 недель )

dateext
При установке данной опции логи храним в формате имя_файла-YYYY-MM-DD, по умолчанию имя_файла-rotate_index

daily
Архивировать логи каждый день

weekly
Архивировать логи рраз в неделю

montly
Архивировать логи раз в месяц

forward
Записывать в лог файл записи о событиях в порядке от первого к последнему ( по умолчанию )

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

prerotate
Выполнить данную программу перед началом ротации ( через system ). Результат выполнения программы не обрабатывается.

postrotate
Выполнить данную программу после ротации ( через system ). Результат выполнения программы не обрабатывается.

noempty
При установке данной опции и нулевой длине новых лог данных, старые файлы с логами не затираются...

noclear
При установке данной опции после дампа данных в лог файл они не удаляются из системного журнала.

log_format
Формат выводимой лог строки события ( отрабатываем через printf ). По умолчанию: %2.2d/%2.2d %2.2d:%2.2d:%2.2d %s %s: %s

format_arg
Аргументы передаваемые в printf. По умолчанию: Month,Day,Hour,Min,Sec,Type,Source,Message

Возможно использовать:

Date
дата события

Year
год события ( 2004 )

Month
месяц события ( 1 - 12 )

Day
день события ( 1 - 31 )

Hour
час события ( 01 )

Min
минуты события ( 02 )

Sec
секунды события ( 03 )

TypeRaw
числовой код типа события

Type
строковое представление типа события

Message
строка сообщения события

Source
источник генерации события

Computer
имя компьютера на котором сгенерировано событие

User
-

RecordNumber
номер записи события


AUTHOR

 Okunev Igor V.  mailto:igor@prv.mts-nn.ru
                 http://www.mts-nn.ru/~gosha
                         icq:106183300