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