Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Squid3 + Sarg + ротация логов  (Прочитано 6560 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн hellsman

  • Автор темы
  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Squid3 + Sarg + ротация логов
« : 12 Декабря 2011, 06:56:55 »
Стоит Ubuntu 10.04 Server, установлен Squid3 и Sarg.
По началу все было хорошо. Squid проксировал трафик, Sarg через sarg-reports по крону делал очеты (суточные и текущие). Однако прошла неделя работы и я заметил, что недельный отчет не генерируется. Выдает следующее:

SARG: No records found
SARG: End

Посмотрел папку логов, а там несколько access.log (access.log.0, access.log.1 и т.д.)
После объединения всех access.log.* в один access.log, а затем натравив sarg-reports, то получил недельный отчет.

Вопрос как сделать так, чтобы sarg-reports использовал старые логи, может как то нужно по другому ротацию настроить?
в squid3.conf стоит logrotate 5. по крону выполняется раз в сутки squid3 -k rotate, еще также заметил что squid3 прописан в logrotate.

squid3 в logrotate
(Нажмите, чтобы показать/скрыть)

Как правильней все настроить? помогите пожалуйста

Оффлайн hellsman

  • Автор темы
  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Squid3 + Sarg + ротация логов
« Ответ #1 : 14 Декабря 2011, 07:36:28 »
Походу только я столкнулся с этой проблемой.
В общем решил проблему следующим образом:
сделал ротацию логов каждый день. логи хранятся год, далее автоудаляются (год - нужно по производственной теме)
В файле sarg-reports внес изменения в функции today, daily, monthly,weekly. Изменения следующего вида:
1. Вызов сарга сделал с добавлением ключа -l, в котором при помощи ls перебираются все файлы access.log (сжатие не используется, так что не страшно).
2. Так как плохо дружу с bash (пока), пришлось принудительно заходить командой cd в папку логов, иначе было коряво, кто поможет в исправлении этого костыля буду благодарен.
На всякий случай вот измененные функции.

manual()
manual ()
{
  DAILYOUT=$HTMLOUT/$DAILY
  mkdir -p $DAILYOUT
  create_index_html
  if [ -z "$MANUALDATE" ]
    then
      echo "No date given, please specify a valid date (DD/MM/YYYY)"
    else
        cd /var/log/squid3
      $SARG -l /var/log/squid3/`ls /var/log/squid3 | grep access` -f $CONFIG -d $MANUALDATE -o $DAILYOUT
  fi
}

today ()
today ()
{
  DAILYOUT=$HTMLOUT/$DAILY
  mkdir -p $DAILYOUT
  create_index_html
  cd /var/log/squid3
  $SARG -f $CONFIG   -l /var/log/squid3/`ls /var/log/squid3 | grep access` -d $TODAY -o $DAILYOUT >$ERRORS 2>&1
  exclude_from_log
}


daily ()
daily ()
{
  DAILYOUT=$HTMLOUT/$DAILY
  mkdir -p $DAILYOUT
  create_index_html
  cd /var/log/squid3
  $SARG -f $CONFIG  -l /var/log/squid3/`ls /var/log/squid3/ | grep access` -d day-1 -o $DAILYOUT >$ERRORS 2>&1
  exclude_from_log
}

weekly ()
weekly ()
{
  WEEKLYOUT=$HTMLOUT/$WEEKLY
  mkdir -p $WEEKLYOUT
  create_index_html
  cd /var/log/squid3
  $SARG -f $CONFIG   -l /var/log/squid3/`ls /var/log/squid3/ | grep access` -d week-1 -o $WEEKLYOUT >$ERRORS 2>&1
  exclude_from_log
}


monthly ()
monthly ()
{
  MONTHLYOUT=$HTMLOUT/$MONTHLY
  mkdir -p $MONTHLYOUT
  create_index_html
  cd /var/log/squid3
  $SARG -f $CONFIG -d month-1 -o $MONTHLYOUT  -l /var/log/squid3/`ls /var/log/squid3/ | grep access`  >$ERRORS 2>&1
  exclude_from_log
}


/var/log/squid3 - путь к папке логов squid

Помогите пожалуйста, лучше сделать запрос сарга, чтобы не приходилось делать cd /var/log/squid3
Заранее спасибо, если хотите можно закрыть тему, рано или поздно я все равно найду ответы на свои вопросы в просторах интернета или дойду своим мозгом.
« Последнее редактирование: 14 Декабря 2011, 07:37:59 от hellsman »

Оффлайн metal_mania

  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Squid3 + Sarg + ротация логов
« Ответ #2 : 14 Декабря 2011, 10:38:04 »
А что было "коряво", если не использовать cd /var/log/squid3?

Оффлайн hellsman

  • Автор темы
  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Squid3 + Sarg + ротация логов
« Ответ #3 : 14 Декабря 2011, 13:55:24 »
команда ls /var/log/squid3 | grep access
выводит просто имена файлов, если бы она выводила полный путь к файлу + имя файла, то команда cd /var/log/squid3 не понадобилась.
т.е. ls /var/log/squid3 | grep access выводит следующее:

user@proxy:/etc/sarg# ls /var/log/squid3 | grep access
access.log
access.log.0
А хотелось бы:
user@proxy:/etc/sarg# ls /var/log/squid3 | grep access
/var/log/squid3/access.log
/var/log/squid3/access.log.0

Может я какой то параметр у ls забыл?...

Оффлайн metal_mania

  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Squid3 + Sarg + ротация логов
« Ответ #4 : 15 Декабря 2011, 09:51:44 »
Можно написать
ls /var/log/squid3/*
или
find /var/log/squid3/*

Оффлайн hellsman

  • Автор темы
  • Любитель
  • *
  • Сообщений: 65
    • Просмотр профиля
Re: Squid3 + Sarg + ротация логов
« Ответ #5 : 15 Декабря 2011, 14:12:02 »
О, спасибо! Это помогло! Тему закрываю.

 

Страница сгенерирована за 0.017 секунд. Запросов: 22.