Настройка анализатора логов Lire
Вторник, ноября 27, 2012 | Автор:

Поступила задача провести анализ логов на сервере. Посмотрев на выбор анализаторов, остановился на Lire.

На текущий день имеется версия lire-2.1_4

make search key=lire
Port: lire-2.1_4
Path: /usr/ports/sysutils/lire
Info: Logfile analyse toolkit for multiple applications

Устанавливаем

cd /usr/ports/sysutils/lire
make config
make install clean

После установки можно приступать к работе.

lr_log2report —help

Usage: lr_log2report [<output options>] <dlf_converter> [<log_file> [<report_destination>]]
Converts <log_file> using <dlf_converter> and generate a report in <report_destination>.
REPORT GENERATION OPTIONS
—report-cfg Pre Lire 2.0 report configuration file. This option is obsolete.
—template Select the report configuration template that should be used for generating the report.

OUTPUT FORMAT OPTIONS
—image Backward compatibility. This option is obsolete.
—output-format Select the output format. Default to «txt»

COMMON OPTIONS
—help Print usage information and exit. If
«report-templates», «output-formats» or
«dlf-converters» is given as argument, the command
will print an information list for that object type.
—version Print Lire version and exit.
—quiet Only print errors.

Для просмотра поддерживаемых логов lr_log2report —help dlf-converters

Для просмотра форм вывода отчета lr_log2report —help output-format 

Для генерации логов lr_log2report squid_access /usr/local/squid/access.log —output-format html /usr/local/www/report

Примечание:

Если при запуске вышеприведенной команды выдает следующую ошибку:

Parsing log file using combined DLF Converter...
lr_log2report: ERROR store doesn't contain a 'lire_import_log' stream at
  /usr/local/share/perl5/Lire/DlfConverterProcess.pm line 170

тогда:

cd /usr/local/share/perl5/Lire/
ee DlfStore.pm

Заменяем блок в секции sub dlf_stream

 my $sth = $self->{‘_dbh’}->table_info( «», «», «dlf_%», «TABLE» );
$sth->execute();
while ( my $table_info = $sth->fetchrow_hashref() ) {

 next unless $table_info->{‘TABLE_NAME’} =~ /^dlf_(.*)/;
next if $table_info->{‘TABLE_NAME’} =~ /_links$/;
push @streams, $1;
}
$sth->finish();

на

my @table_list = $self->{‘_dbh’}->tables;
foreach my $table ( @table_list) {
next unless $table =~ /dlf_(.*)»/;
next if $table =~ /_links$/;
push @streams, $1;
}

После этого должна проявиться такая надпись

Parsing log file using syslog DLF Converter...
Extracted 500 DLF records on 500 lines.
Encountered 0 errors and ignored 0 lines.
Running analysers...
Generating XML report...