Я думаю о создании приложения, которое будет читать разные файлы журнала сервера, сохранять проанализированные данные в базе данных, а затем удалять строку из файла журнала.
Это моя программистская сторона, пытающаяся придумать лучшие способы перенести все файлы журналов в удобную консоль приложения с возможностью поиска.Я могу одновременно просматривать несколько серверов и программные сценарии, чтобы найти корреляции, или отправить мне электронное письмо / текстовое сообщение, пока меня нет, когда что-то выглядит не так.
Кажется, что на рынке уже есть дорогие решения, но я не могу оправдать огромные цены от 500 до 2000 долларов в месяц.
В любом случае, моя проблема в том, как удалить строки из активно записываемого файла журнала, не вызывая проблемы? Некоторые файлы журнала меняются (например, nginx), а другие нет. Я полагаю, что самым безопасным было бы скопировать файл, а затем echo '' > file.log
чтобы стереть это. Хотя я могу пропустить 300 мс записи.
Другой вопрос, хочу ли я вообще стереть журналы. Я полагаю, что не стирать журналы означает, что мне придется открыть файл, перейти к его концу, а затем вернуться назад, пока я не дойду до последней известной записи.
Что было бы хорошим способом передачи данных журнала во внешнее приложение / базу данных?
Не изобретайте велосипед.
Используйте logstash, чтобы убрать логи с ваших систем.
Попросите logstash отправить журналы в elasticsearch.
Используйте интерфейс кибаны для аналитики.
Эта комбинация настолько распространена, что известна как стек ELK. И все это с открытым исходным кодом.