Я новичок в Logwatch, и я настроил его для просмотра файлов журнала, созданных сельдереем, распределенной очередью задач, популярной в мире Python.
Мой logwatch.conf «Диапазон» установлен на «между вчера 4 утра и сегодня 4 утра», и этот фильтр диапазона работает для других файлов журнала - но он не работает для моих файлов журнала сельдерея.
Это моя установка:
/etc/logwatch/conf/services/celery.conf
Title = "Celery worker errors"
LogFile = celery
/etc/logwatch/conf/logfiles/celery.conf
LogFile = /var/log/208-celery.log
LogFile = /var/log/234-celery.log
LogFile = /var/log/403-celery.log
LogFile = /var/log/dev-celery.log
/ и т.д. / logwatch / скрипты / услуги / сельдерей
#!/bin/bash
cat
Кажется, проблема заключается в том, что просто используется cat в качестве фильтра - очевидно, что это не фильтрация какой-либо даты, а просто прохождение строк файлов журнала celerry.
Я знаю, что в logwatch есть несколько встроенных фильтров формата даты, но я не понимаю, как их применять и подходит ли какой-либо из них формат журналов сельдерея, которые выглядят следующим образом:
[2016-04-26 11:59:37,851: WARNING/MainProcess] celery@big-dog ready.
[2016-04-26 11:59:37,852: DEBUG/MainProcess] | Worker: Hub.register Pool...
[2016-04-26 11:59:37,852: DEBUG/MainProcess] basic.qos: prefetch_count->16
[2016-04-26 11:59:43,146: INFO/MainProcess] Received task: hello_world[b29ef98a-d9fb-4cc6-b7db-9434a9bcc1e2]
Мой вопрос: как мне настроить logwatch для правильной фильтрации этих файлов журнала по дате?
Я думаю, что файл / usr / share / logwatch / scripts / shared / applyhttpdate был бы полезен.
Определите формат даты для сельдерея.
/ и т. д. / logwatch / скрипты / общий / applycelerydate
use Logwatch ':dates';
$Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
$SearchDate = TimeFilter('%Y-%m-%d %H:%M:%S');
if ( $Debug > 5 ) {
print STDERR "DEBUG: Inside ApplyCeleryDate...\n";
print STDERR "DEBUG: Looking For: " . $SearchDate . "\n";
}
while (defined($ThisLine = <STDIN>)) {
if ($ThisLine =~ m/\[$SearchDate/o) {
print $ThisLine;
}
}
И свяжите файл журнала с форматом даты.
/etc/logwatch/conf/logfiles/celery.conf
LogFile = /var/log/208-celery.log
LogFile = /var/log/234-celery.log
LogFile = /var/log/403-celery.log
LogFile = /var/log/dev-celery.log
*ApplyCeleryDate