Назад | Перейти на главную страницу

Как я могу автоматически отправлять файлы access.log на определенный адрес электронной почты после ротации?

Я бегаю apache 2.4.9 на ubuntu 14.04. Apache вращает файлы журналов и архивирует их, поэтому я получаю что-то вроде: access.log.2.gz, ... access.log.N.gz.

Проблема в том, что их сложно анализировать (мне приходится разархивировать, анализировать и удалять). Более того, я действительно не хочу, чтобы эти журналы лежали на сервере (я бы предпочел скопировать их на свой локальный компьютер и удалить с сервера). Сейчас я делаю это вручную, что не так эффективно.

Итак, есть ли способ настроить apache для автоматической отправки мне электронного письма с файлом журнала сразу после того, как apache его повернул? Если это не очень хорошая идея или есть что-то получше, я открыт для любых предложений

Из man logrotate.conf

mail address

Когда журнал перестает существовать, он пересылается по адресу. Если конкретный журнал не должен генерировать почту, можно использовать директиву nomail.

mailfirst

При использовании команды mail отправляйте по почте только что повернутый файл, а не файл, срок действия которого истекает.

maillast

При использовании команды mail отправляйте по почте файл, срок действия которого истекает, а не только что повернутый файл (это значение по умолчанию).

Поэтому, если вы установите эти параметры в конфигурационном файле (-ах) logrotate и уменьшите rotate вариант 0, то вы должны получить то, что вам нужно.

Если вы используете logrotate для поворота файла (вероятно, отличная идея) .. тогда вы можете добавить постобработку в файл конфигурации для вращаемого файла. Если это в настоящее время содержится в правиле для нескольких файлов, разбейте его и внесите изменения. Эта постобработка может заключаться в отправке вам файла.