вопрос - offtopic

Andrei Nigmatulin andrei.nigmatulin at gmail.com
Sun Dec 2 01:54:56 MSK 2007


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


More information about the nginx-ru mailing list