ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: вопрос - offtopic



On Sunday 02 December 2007 01:13, Anton Yuzhaninov wrote:
> On 02.12.2007 0:33, Nikolay Grebnev wrote:
> > Или только складывать логи локально, и ежесуточно их автоматом
> > переливать в другое место?
>
> Но если после того как данные были записаны в буфер но до того как были
> переданы, хост получателя вдруг станет недоступен, то данные будут
> потеряны. ОС будет чесно пытаться доставить данные (tcp retransmit) но
> делать вечно она этого не может. Да и в случае перезагрузки удаленного
> хоста это не поможет.
>
> Следующий write() уже скорее всего вернет ошибку, и логи начнут
> буферезироваться локально. Но содержимое предыдущего write() будет
> потеряно.
>
> Чтобы оно не терялось syslog-сервер должен посылать назад отправителю
> подтверждение того, что данные получены. Насколько я знаю в syslog-ng таких
> подтверждений нет (но я могу ошибаться, исходники смотрел давно и
> недостаточно внимательно).

Даже этого недостаточно - syslog-сервер точно так же может потерять данные, 
сделав write на диск, отправив ACK по сети,и в этот момент может сгореть 
процессор. Данные не попадут на физический носитель и будут потеряны.

Если хочется чего-то действительно надежного, надо сохранять логи в 
транзакционную БД, но это очевидный overkill ;-)



-- 
Andrei Nigmatulin
GPG PUB KEY 6449830D

Now I lay me down to sleep(3)
Pray the OS my core to keep
If I die before I wake
Pray the Disk my core to take


 




Copyright © Lexa Software, 1996-2009.