Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение логов, чтобы без потерь и без излишков 
V
    Опции темы
tishaishii
Дата 21.5.2012, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 0
Всего: 8



Задача: читать лог и передавать его на другой сервер построчно.
Сделал демон, открывает лог, читает, парсит, и передаёт.
Допустим, демон по какой-то причине упал или не поднялся. Поднимается и читает лог заново? Или в системе сделано так, что лог периодически обрезается. Демон поднимается и читает что?
Нужно как-то его читать без повторов и потерь.
PM MAIL ICQ Skype   Вверх
peektoseen
Дата 21.5.2012, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.3.2012

Репутация: нет
Всего: нет



Цитата(tishaishii @ 21.5.2012,  10:48)
Задача: читать лог и передавать его на другой сервер построчно.
Сделал демон, открывает лог, читает, парсит, и передаёт.
Допустим, демон по какой-то причине упал или не поднялся. Поднимается и читает лог заново? Или в системе сделано так, что лог периодически обрезается. Демон поднимается и читает что?
Нужно как-то его читать без повторов и потерь.

Думаю inetd должен помочь в этом (если конечно система - та самая).

Это сообщение отредактировал(а) peektoseen - 21.5.2012, 13:52
PM MAIL   Вверх
tishaishii
Дата 22.5.2012, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 0
Всего: 8



И что он сделает?
Демон есть, логи читает. Надеюсь, у кого-то есть идея как читать лог без повторов и потерь.
PM MAIL ICQ Skype   Вверх
DurRandir
Дата 22.5.2012, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 335
Регистрация: 27.9.2009

Репутация: нет
Всего: 17



На самом деле, здесь две задачи:

1) "в системе сделано так, что лог периодически обрезается" - обычно это называют ротацией логов. В настройках newsyslog'a можно указать, чтобы при ротации он отправлял сигнал процессу, который этот лог читает. Ну а процесс по сигналу просто переоткрывает лог. Либо, второй вариант, самостоятельно следить за файлом лога через inotify/kqueue.
2) Избегать дублирования. Здесь возникает вопрос - а на каком уровне надёжности важно избежать дублирования? Т.к. можно запоминать только локальную позицию чтения, а дойдёт оно или не дойдёт до принимающей стороны - уже не важно. Либо же считать только подтверждённые удалённой стороной данные - но тогда всё равно могут быть коллизии, т.к. ответ может при падении не дойти - и с дубликатами всё равно придётся бороться. По сути - это те же самые проблемы, которые возникают при репликации баз данных. Ну а куда писать статус чтения - не так важно, хоть в файл, только, опять же, будет либо надёжность (fsync после каждой записи), либо скорость.
PM   Вверх
tishaishii
Дата 23.5.2012, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 0
Всего: 8



Подменяю лог файлом FIFO, который перед запуском сервера открывается на чтение моим специальным демоном, который не падает, и по TCP-запросу другого демона, который пока ещё умеет падать,  создаёт потомка, который читает, агрегирует данные и отправляет ответ.

Это сообщение отредактировал(а) tishaishii - 23.5.2012, 23:44
PM MAIL ICQ Skype   Вверх
rsm
Дата 28.5.2012, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 999
Регистрация: 16.3.2005

Репутация: нет
Всего: 62



Цитата(tishaishii @  21.5.2012,  12:48 Найти цитируемый пост)
Задача: читать лог и передавать его на другой сервер построчно. Сделал демон, открывает лог, читает, парсит, и передаёт.

Новый передовой велосипед, сегодня - с квадратными колёсами? Дело хорошее. Но есть лучше, ещё лучше и совсем хорошо smile
PM MAIL   Вверх
tishaishii
Дата 31.5.2012, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Создатель
***


Профиль
Группа: Завсегдатай
Сообщений: 1262
Регистрация: 14.2.2006
Где: Москва

Репутация: 0
Всего: 8



Велосипед воздвигнут и он всех устраивает.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1302 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.