Страница 1 из 1

Exim+Lire перестал работать!!! Помогите!!

Добавлено: 2010-07-29 5:33:25
dudedude
Здравствуйте люди добрые помогите плиз мозг закипел уже...

Стоит Debian. Настроен Exim к нему прикручен exilog и lire, до последнего ребута сервака все работало отлично, lire слал письма на почту, генерил отчеты в html, рисовал графики. Сейчас же выдает вот такую ошибку:

Код: Выделить всё

Parsing log file using syslog DLF Converter...
lr_log2report: ERROR store doesn't contain a 'lire_import_log' stream at /usr/share/perl5/Lire/DlfConverterProcess.pm line 170
В файле в этом вот такие строки

Код: Выделить всё

sub _handle_continuation {
    my $self = $_[0];

    my $query = new Lire::DlfQuery( 'lire_import_log' );
    $query->add_field( 'line' );
    $query->add_field( 'time' );
    $query->add_field( 'line_no' );
    $query->set_filter_clause( "type = 'continuation' AND job_name = ?",
                               $self->{'_job'}->name() );
    $query->set_sort_spec( 'time line_no' );
    my $result = $query->execute( $self->{'_store'} );
    while ( defined( my $row = $result->next_row_aref() ) ) {
        $self->{'_line_count'}++;
        $self->{'_converter'}->process_log_line( $self, $row->[0] );
    }

    $self->{'_store'}->_dbh()->do( <<EOSQL, {}, $self->{'_job'}->name(), $self->{'_time_start'} );
DELETE FROM dlf_lire_import_log
      WHERE type='continuation' AND job_name = ? AND time < ?
EOSQL
    return;
}

170 строка - my $result = $query->execute( $self->{'_store'} );.
Пробовал удалять, по новой ставить, переустанавливал sqlite, perl.

Последняя надежда на вас. Если есть аналог lire может подскажите его.

Re: Exim+Lire перестал работать!!! Помогите!!

Добавлено: 2010-07-29 10:32:55
hizel

Re: Exim+Lire перестал работать!!! Помогите!!

Добавлено: 2010-07-29 19:44:39
dudedude
Первым делом это проверил, не помогло :(

Re: Exim+Lire перестал работать!!! Помогите!!

Добавлено: 2010-10-14 12:43:30
Pentagrammer
В общем бился с этой проблемой два дня.
Установил последний релиз Lire (2.1) установил все модули, указаные в документации - та же проблема. Много чего пробовал. В конце концов откатился на версию 2.02 - ошибка, но дургая, "хмммм" подумал я - видимо что-то при работе с DBD::SQLite и поставил версию DBD_SQLite2-0.33 - вуаля! заработало. Но осадок оставался и путь к решению стал очивиден - снова поставил последний релиз Лиры и начал перебирать DBD-SQLite с версии 1.09, что указана в доке на 2.1 и дальше... ставил, проверял, ставил новую... 1.14!!!! Есть!!! заработало.
Итого - как лечить ошибку:
1. /usr/lib/perl5/site_perl/5.8.?/x86_???-linux/DBD/
mv SQLite.pm SQLite.pm.old
2. Берем DBD-SQLite-1.14 тут http://www.cpan.org/authors/id/M/MS/MSE ... .14.tar.gz
3. Распаковываем, заходим в распакованый каталог, далее как обычно perl Makefile.PL && make && make install && perl -MDBD::SQLite -e 'print $DBD::SQLite::VERSION' - должны получить 1.14
4. Запускаем генерацию отчета.

PS: если генерация в html валится на ошибке "/bin/tar ... " - запускаем ее в таком виде: lr_log2report syslog ../log_4_lire/messages test , то есть именно так, чтобы никаких перенаправлений не было - оно создаст каталог test и в него запихает всю обвязку страницы с отчетом. Баг документирован в мане на lr_log2report.