не менять формат логов
Пересылаю логи Apache на удаленный сервер syslog-ng, где они записываются в файл.
Можно ли не менять формат лога при записи, на удаленном сервере syslog-ng добавляет дату и ip?
WinLin2 ★★
05.02.20 16:50:05 MSK
template apache_access_log < template("$MSG\n"); >; destination apache_access_log < file('/var/log/$HOST/apache/access.log' template(apache_access_log)); >;
spirit ★★★★★
( 05.02.20 17:44:22 MSK )
Ответ на: комментарий от spirit 05.02.20 17:44:22 MSK
Исходный лог на сервере Apache:
111.222.111.222 — — [05/Feb/2020:20:35:10 +0300] «GET / HTTP/1.0» 200 4692
Лог на сервере syslog-ng:
без template:
Feb 5 20:15:42 10.1.1.1 111.222.111.222 — — [05/Feb/2020:20:15:42 +0300] «GET / HTTP/1.0» 200 4692
template:
— — [05/Feb/2020:20:35:10 +0300] «GET / HTTP/1.0» 200 4692
Обрезается адрес клиента.
WinLin2 ★★
( 05.02.20 20:49:22 MSK ) автор топика
Ответ на: комментарий от WinLin2 05.02.20 20:49:22 MSK
Правильная настройка такая:
template(«$PROGRAM $MESSAGE\n»)
Форум русскоязычного сообщества Ubuntu
Страница сгенерирована за 0.032 секунд. Запросов: 25.
- Сайт
- Об Ubuntu
- Скачать Ubuntu
- Семейство Ubuntu
- Новости
- Форум
- Помощь
- Правила
- Документация
- Пользовательская документация
- Официальная документация
- Семейство Ubuntu
- Материалы для загрузки
- Совместимость с оборудованием
- RSS лента
- Сообщество
- Наши проекты
- Местные сообщества
- Перевод Ubuntu
- Тестирование
- RSS лента
© 2012 Ubuntu-ru — Русскоязычное сообщество Ubuntu Linux.
© 2012 Canonical Ltd. Ubuntu и Canonical являются зарегистрированными торговыми знаками Canonical Ltd.
Apache access log почему не обрезается
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006
Откуда: Israel
Помог: 3 раз(а)
Секрет
Теперь, когда вы уже наверняка второпях отправили свой запрос,
я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
даже если первый ответ по теме последуем сразу же.
Само собой я знаю что ответят мне тут же, и если я посмотрю
на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
вопрос автора и еще два сообщение вида Ответ + Спасибо
После этого приходится начинать уточнять этим неграмотным что мне надо.
Они что, сами читать не умеют? А уточнять приходится.
И иногда пока они переварят то что я им скажу проходит и не одна ночь..
Уверен что если бы я им сказал что у меня есть
фиолетовый квадрат, и нужно превратить его в синий треугольник
и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
но почему то кисточка не принимала цвет краски в банке,
то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
предложив её открыть, а не тратить еще стольник на жестянку.
Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
Что есть
Что нужно получить
Как я пытался
Почему или что у меня не получилось.
На последок как оно происходит на форумах
Цитата:
Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
Новичок: Спасибо, братан! То что нужно.
Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12
Настройка logrotate для веб-сервера (Apache+NGiNX) в Debian 9
Разобравшись с утилитой logrotate в Debian 9, вернее, зафиксировав настройки её исходного состояния, можно приступить к настройке ротации логов веб-сервера. Так как веб-сервер у меня настроен в связке Apache+NGiNX, то для каждого виртуального хоста ведётся 4 лога (о каждого веб-сервера по логу доступа и логу ошибок). Именно эти четыре лога для каждого из поднятых виртуальных хостов и нужно ротировать. Для этих нужд создадим отдельную папку для файлов конфигурации настроек ротации логов всех имеющихся на сервере виртуальных хостов.
Папка конфигурационных файлов с настройками ротации логов виртуальных хостов на WEB-сервере Apache+NGiNX
Для того, чтобы не было путаницы и всё, что касается настройки ротации логов виртуальных хостов на WEB-сервере, последую примеру разработчиков ISP-manager и создам папку web в директории хранения конфигов logrotate:
# mkdir /etc/logrotate.d/web/
После этого её нужно подключить к основному конфигу logrotate так, чтобы конфиги в этой папке участвовали в создании механизма ротации на сервере. Для этого нужно дописать в конец файла строку, подключающую эту директорию:
# echo 'include /etc/logrotate.d/web' >> /etc/logrotate.conf
После этого конфиг logrotate выглядит следующим образом:
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp < missingok monthly create 0664 root utmp rotate 1 >/var/log/btmp < missingok monthly create 0660 root utmp rotate 1 ># system-specific logs may be configured here include /etc/logrotate.d/web
Итого: папка для конфигов создана, подключена. Теперь можно заняться собственно написанием дополнительных конфигов для ротации логов виртуальных хостов.
Куда пишутся логи виртуальных хостов и как они называются на сервере
Первым делом нужно вспомнить, куда пишутся логи виртуальных хостов Apache и NGiNX на сервере. (Я их умышленно сложил в одну папку, как это станет понятно ниже.) Для того, чтобы посмотреть, куда пишутся логи Apache виртуального хоста, нужно заглянуть в конфиг виртаульного хоста Apache. Нас должны интересовать строки:
CustomLog /var/www/amorale/data/www/logs/amorale.club.access-apache.log combined ErrorLog /var/www/amorale/data/www/logs/amorale.club-apache.error.log
access_log /var/www/amorale/data/www/logs/amorale.club.access-nginx.log main; error_log /var/www/amorale/data/www/logs/amorale.club-nginx.error.log error;
Итак, с тем, где находятся логи разобрались: это папка
/var/www/USER_NAME/data/www/logs/
- USER_NAME — это имя (логин) пользователя (владельца сайта)
Формат имени файлов логов доступа (access):
- VHOST_NAME — это имя (доменное имя) виртуального хоста
- SERVER_NAME — обозначение того, чей это лог apache или nginx
Создание дополнительно конфига ротации логов виртуального хоста на сервере (Apache + NGiNX) для logrotate
Теперь можно (и нужно) для каждого виртуального хоста создать файл с дополнительными настройками ротации этих четырёх логов. Для моих нужд выглядеть он будет так:
/var/www/USER_NAME/data/www/logs/VHOST_NAME.access-apache.log < daily missingok rotate 10 compress copytruncate >/var/www/USER_NAME/data/www/logs/VHOST_NAME.access-nginx.log < daily missingok rotate 10 compress copytruncate >/var/www/USER_NAME/data/www/logs/VHOST_NAME-apache.error.log < daily missingok rotate 10 compress copytruncate >/var/www/USER_NAME/data/www/logs/VHOST_NAME-nginx.error.log
- daily — указание на то, что операция ротации будет запускаться ежедневно
- missingok — указание на то, что отсутствие файла лога не является ошибкой
- rotate 10 — сохранять 10 последних ротаций (то есть будут храниться логи за последние 10 суток)
- compress — сжимать копию файла логов после его создания (для экономии места)
- copytruncate — указание на то, что после создания копии обрезать исходный файл журнала на месте до нулевого размера, вместо перемещения старого файла журнала и возможного создания нового файла. Это может использоваться когда некой программе нельзя приказать закрыть свой журнал и, следовательно, она может бесконечно продолжать добавлять записи к старому файлу журнала. Отметим, что есть очень маленький временной промежуток между копированием файла и его обрезанием, так что часть журнальных данных может быть потеряна. При использовании этой опции, опция create не действует, так как старый файл журнала остается на месте.
Резюме
Этого достаточно, чтобы запустить ротацию логов вебсерверов (Apache и NGiNX) на сервере с помощью утилиты logrotate. В итоге у меня на сервере получилась такая папка с дополнительными настройками. Для каждого проекта (виртуального хоста) я создал собственный файл с настройками ротации логов, прописав правильные пути в каждом отдельном случае. Это удобно, так как домены могут быть проданы или перенесены на другие сервера и тогда, при удалении проще удалить всю информацию о проекте, запустив отдельный скрип, который знает, что делать, стоит только указать доменное имя. Такая вот получилась папка:
# tree /etc/logrotate.d/web /etc/logrotate.d/web ├── amorale.club ├── iloverealty.ru ├── mb4.ru ├── moonbase.tk ├── pandastreet.ru ├── pendelson.ru └── promogalaxy.ru
(Исключая проекты клиентов, информацию о которых я не публикую из соображения рабочей этики.) =)
Осталось только дополнить BASH-скрипт создания и удаления виртуальных хостов и проверить через полмесяца, как всё это работает. =D
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! 😉