Лучший способ повернуть файлы журнала Apache

У меня есть сервер Apache с одним файлом журнала доступа, превышающим 600 МБ. Это сильно затрудняет поиск файла или его синтаксический анализ. Какое программное обеспечение или модули для Apache будут делать ежедневную копию моего файла доступа, чтобы сделать его более управляемым?

Вам повезло - я столкнулся с 2,4 ГИГАБАЙТАМИ :(

Bobby Jack 15.10.2008 14:56

Вы можете указать, действительно ли вы ищете модуль Apache или что-то, что зависит от используемой ОС, например logrotate или cron (уже упоминалось в ответах). Это могло бы помочь ответить на этот, на мой взгляд, простой вопрос.

Kariem 14.01.2009 17:12

14 ГБ здесь! Чуть более одного года работ.

Liam 13.08.2010 13:37

Я не забочусь о журналах и хочу, чтобы они не росли неограниченно: в WIN я использовал это, чтобы иметь журналы максимум 7x15 МБ. CustomLog "| bin / rotatelogs.exe -l журналы / доступ.% A.log 15M" общий

Tilo 18.02.2014 22:48

поцарапайте, что, согласно ошибке 51081 issues.apache.org/bugzilla/show_bug.cgi?id=51081, журналы поворота не перезаписываются

Tilo 18.02.2014 23:12

23 ГБ здесь, на старом сервере ... это должна быть встроенная функция

Micha Mazaheri 15.07.2014 14:19
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
66
6
94 532
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Ответ принят как подходящий

Вы смотрели на logrotate - это, вероятно, самый простой, наиболее широко доступный и хорошо понятный метод достижения этой цели. Он легко настраивается и, вероятно, сделает 90% того, что вам нужно.

Пример использования, такой как ответ Брайана, был бы действительно полезен. Спасибо.

Ryall 02.08.2012 15:13

Обратной стороной logrotate является то, что файл журнала будет продолжать записываться в старое имя файла до перезапуска процесса.

MarkHu 13.07.2015 22:00

logrotate

logrotate, наверное, лучшее решение. Используйте файл /etc/logrotate.conf, чтобы изменить настройки всех ваших журналов. Вы можете заменить weekly на daily, чтобы журналы менялись каждый день. Кроме того, вы можете добавить compress, чтобы архивы были сжаты. Если вас не интересуют старые журналы, вы можете установить значение Rotate rotate 4 на меньшее значение.

Я заинтригован - в чем разница между этим и поставляемым apache "rotatelogs"? И почему в руководстве по apache не упоминается logrotate (но он ссылается на cronolog)?

Bobby Jack 15.10.2008 15:06

Просто предположение: это может быть потому, что logrotate доступен не во всех системах, в которых работает Apache. Я использовал его только в установках Linux, где он используется для обновления всех системных журналов и, конечно же, файлов журналов Apache.

Kariem 14.01.2009 17:20

Я большой поклонник Хронолог. Просто установите и пропустите через него свои журналы. Для ротации ежедневного журнала будет работать что-то вроде этого:

ErrorLog  "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/error.log"
CustomLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/access.log" combined

Довольно удобно и после установки проще (по моему опыту), чем logrotate.

когда я использовал cronolog, я столкнулся с некоторыми проблемами, когда файл журнала достиг 2 ГБ данных. В этот момент больше не было регистрации, и apache остановился, пока я не удалил / не переименовал файл. С тех пор я использую logrotate и все в порядке :)

maxgalbu 13.12.2013 20:09

Фактическая команда для Windows, которую довольно сложно найти в Интернете:

CustomLog '|" "*Apache-Path/bin/rotatelogs.exe" 
    "**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined

Где бит «internet_access» - это имя, которое вы выбираете для своих файлов, 86400 - это количество секунд в одном дне. Вам необходимо изменить Apache-Path на соответствующий каталог, в который вы установили Apache.

Вместо того, чтобы пытаться заключить пути в кавычки, я сократил их, например "c: / Progra ~ 1 / ...". Кроме того, это заняло некоторое время, но в конце концов я понял, что мне нужны косые черты в путях. .

Pedro 11.03.2011 02:36

Не используйте обратную косую черту в пути, это не сработает! В качестве альтернативы вы можете использовать mod_log_rotate. Использование этого мода предотвращает также проблемы с cmd.exe под Windows.

s106mo 06.07.2011 20:32

У меня были некоторые проблемы в Apache2.4 (Windows 8) для реализации ротации журналов. Но исправлено, как показано ниже. В файле httpd.conf добавьте следующую строку ServerRoot "c: / Apache24" # Путь установки Apache #CustomLog "| bin / rotatelogs logs / access.log.% Y-% m-% d 86400" common # Это не работает , но при добавлении .exe все заработало. CustomLog "| bin / rotatelogs.exe logs / access.log.% Y-% m-% d 86400" общий

user292049 17.09.2014 19:17

Обратите внимание, что параметр "циклические журналы" -n 4 может не работать должным образом, если вы не добавите параметр -L basename.

MarkHu 13.07.2015 22:02

@alimack Можете ли вы дать точную команду для конфигурации rotatelog, потому что я получаю unable to open log error, когда пытаюсь запустить сервер Apache.

Dharani Dharan 24.11.2015 11:21

Невозможно открыть файл, похоже на разрешения - создайте пустой файл с правильным именем и проверьте разрешения на запись.

alimack 01.06.2016 14:05

Мне этого достаточно ErrorLog '| "bin/rotatelogs.exe" "logs/error_%Y%m%d-%H%M%S.log" 10M'

Abbas 05.04.2018 12:11

rotatelog.exe или cronolog.exe в ОС Windows. Они используются в команде конвейера в http.conf Mod_log_rotate дополнительный модуль для apache ТОЛЬКО для ротации логов доступа Logrotate ТОЛЬКО для unix os.

У меня есть модуль, который делает это за вас без необходимости использования внешних трубок и т. Д .:

http://www.poptart.org/bin/view/Poptart/ModAutorotate

Я пытался добавить его в коллекцию модулей Apache, но, похоже, это уже давно не работает.

CustomLog "| bin / rotatelogs / var / logs / logfile 5M" общий

Эта конфигурация будет вращать файл журнала, когда он достигнет размера 5 мегабайт.

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 

Это был бы лучший способ перенаправить журналы Apache. Не нужно компилировать мод с httpd.

Есть ли возможность ротации журналов для удаления старых файлов или их перезаписи?

Tobia 12.09.2014 12:32

@Tobia вы нашли способ удалить старые файлы?

surya 27.09.2018 05:47

Не с именами журналов дат, мне пришлось переключиться на имена индексированных журналов (rotatelogs.exe -n 3 filepath 1M)

Tobia 27.09.2018 09:24

Другие вопросы по теме