Как я могу настроить logrotate для копирования / SSH файлов журнала Apache

Я работаю над анализатором логов apache, он требует, чтобы файлы логов apache были импортированы в каталог для обработки. Я не могу просто указать на каталог журналов apache, так как он импортирует каждый файл перед его удалением. Он также не имеет понятия дубликатов записей, поэтому я не могу настроить cron для копирования /var/log/apache2/* в папку.

Я предполагаю, что logrotate - лучшее место для этого, но я не знаю, с чего начать его настройку. Итак, мой вопрос:

Как я могу настроить logrotate на SSH-файлы журнала Apache с поворотом на удаленном хосте автоматически?

Альтернативой является локальное копирование и запуск scp & rm через cron, но одношаговый процесс SSH был бы хорош.

4
задан 15 August 2012 в 15:40

1 ответ

Посмотрите prerotate и postrotate параметры конфигурации (примеры в man logrotate). У Вас могло, например, быть предварительно поворачивание этого scps файл (удостоверьтесь, что Вы настраиваете ключи SSH правильно; Ваш пользователь root должен смочь к ssh к целевой системе, не нуждаясь в пароле). Это скопировало бы файл access.log прежде вращение (переименование, сжатие, и т.д.) это.

Примечание, что в этом случае Вы потеряли бы любые доступы, которые происходят между копированием файла и шагом вращения, таким образом, Вы могли также вставить это постповорачивать раздел, но скопировать доступ log.1 вместо этого.

в/etc/logrotate/apache2 (это может отличаться, у меня только есть доступ к системе Debian), можно добавить предварительно поворачивать раздел, таким образом, содержание файла похоже на это:

/var/log/apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        /etc/init.d/apache2 reload > /dev/null
    endscript
    prerotate
        scp /var/log/apache2/access.log you@elsewhere.com
    endscript
}
5
ответ дан 15 August 2012 в 15:40

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

Похожие вопросы: