
У нас нет никакого управления журналами, кроме того, что мы время от времени заходим и очищаем их. У нас есть сервер, на который не приходится слишком много трафика (большинство журналов из нашего чата). Но это заставило меня задуматься, какие процедуры управления журналами должны быть внедрены для правильного управления журналами? Вы настраиваете это так, чтобы регистрировались только определенные вещи, чтобы журналы стирались столько-то дней? Как долго должны храниться журналы доступа? Как долго должны храниться другие журналы?
решение1
Даже мои файлы журналов становятся большими из-за этого. Я использую стандартный logrotate, доступный практически в любом дистрибутиве Linux.
Я настроил его на логротацию тех вещей, которые становятся слишком большими, ежедневно, а других — еженедельно и т. д.
Попробуйте. Я даже сжимаю их с помощью xz, так что файл получается относительно небольшим и его можно загрузить на свой личный ящик для проверки без особой потери пропускной способности с обеих сторон.
Для получения дополнительной информации смотрите man logrotate и man logrotate.conf.
решение2
Сначала поймите, что ваш веб-сервер добавляется к вашему access.log, поэтому вам действительно следует свести его размер к минимуму. Мои серверы Apache начинают загружать страницы медленнее, когда у них есть файлы журналов, превышающие 4 ГБ (вероятно, я единственный, кто это замечает).
Попробуйте awstats. Он создаст файлы на основе html, которые позволят вам получить отличные обзоры вашего трафика, а также очистит этот огромный файл access.log, который у вас есть. При первом запуске этого приложения это займет очень много времени, так как этот access.log очень большой.
Если awstats или logrotate вам не подходят, вы всегда можете просто очищать свой access.log раз в день с помощью cron:
эхо "" > access.log
Но лично я использую это только когда у меня есть огромный файл журнала, который мне нужно очень быстро обрезать. Это действительно пустая трата журналов, чтобы обрезать их таким образом.
решение3
Использоватьхронологдля создания почасового или ежедневного файла журнала. Посмотрите, как его использовать.
TransferLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/access.log"
ErrorLog "|/usr/sbin/cronolog /web/logs/%Y/%m/%d/errors.log"
Использование cronjob для сжатия указанных выше журналов позволяет предотвратить заполнение диска и сохранить данные в течение нескольких дней (возможно, месячной давности).
или используйте logrotate для ротации журналов (как объяснено в ответе выше)