Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» Sarg - анализатор логов squid'а

Автор: zenia
Дата сообщения: 18.09.2003 11:51
У меня такая проблема
sarg-1.2.1 03Dez2001
анализирую лог файл squid
пример:
1062749195.209 1584 192.164.7.55 TCP_REFRESH_HIT/200 2527 GET _http://open.by/js/index.js - DEFAULT_PARENT/80.94.*.* application/x-javascript
1062749197.743 4194 192.164.7.55 TCP_REFRESH_HIT/200 5231 GET _http://www.open.by/styles/colors.css - DEFAULT_PARENT/80.94.*.* text/css
1062749200.641 9257 192.164.1.100 TCP_MISS/200 1015 GET _http://counter.rambler.ru/top100.cnt? - DEFAULT_PARENT/80.94.*.* image/gif
1062749200.646 9217 192.164.1.100 TCP_MISS/200 346 GET _http://top.list.ru/counter? - DEFAULT_PARENT/80.94.*.* image/gif
и т.д.
я запускаю sarg
он выдает мне такой результат:

коннект такой-то ip ....
коннект такой-то ip ....
...

получается сколько раз с машины коннектились столько раз этот ip показан(один ip - много записей),

а мне хочется что б было один ip одна запись

Как это сделать?


Автор: ginger
Дата сообщения: 18.09.2003 15:43
zenia
В файле sarg.conf расписаны его параметры... возможно ответ кроится именно там..;)
Автор: zenia
Дата сообщения: 19.09.2003 10:16
Тогда вот мой sarg.conf, что там надо заменить?

# sarg.conf
#
# TAG: language
# Available languages:
# Bulgarian_windows1251
...
#
language English

# TAG: access_log file
# Where is the access.log file
# sarg -l file
#
access_log /usr/local/squid/logs/access.log
#access_log /var/log/squid/access.log # RedHat version

# TAG: title
# Especify the title for html page.
#
#title "Squid User Access Reports"

# TAG: font_face
# Especify the font for html page.
#
#font_face Arial

# TAG: header_color
# Especify the header color
#
#header_color darkblue

# TAG: header_bgcolor
# Especify the header bgcolor
#
#header_bgcolor blanchedalmond

# TAG: font_size
# TAG: font_size
# Especify the font size
#
#header_font_size -1

# TAG: background_color
# TAG: background_color
# Html page background color
#
#background_color white

# TAG: text_color
# Html page text color
#
#text_color black

# TAG: text_bgcolor
# Html page text background color
#
#text_bgcolor beige

# TAG: title_color
# Html page title color
#
#title_color green

# TAG: logo_image
# Html page logo.
#
#logo_image none

# TAG: logo_text
# Html page logo text.
#
#logo_text ""

# TAG: logo_text_color
# Html page logo texti color.
#
#logo_text_color black

# TAG: logo_image_size
# Html page logo image size.
# width height
#
#image_size 80 45

# TAG: background_image
# Html page background image
#
#background_image none

# TAG: password
# User password file used by authentication
# If you put here, reports will be generated only for users in.
#
#password none

# TAG: temporary_dir
# Temporary directory name
# sarg -w dir
#
temporary_dir /tmp

# TAG: output_dir
# Where is the reports will ne stored.
# sarg -o dir
#
output_dir /usr/local/www/data/squid-reports
#output_dir /home/httpd/html/squid-reports # RedHat version

# TAG: output_email
# Email address to send the reports
# sarg -e email
#
#output_email none

# TAG: resolve_ip yes/no
# Convert ip address to dns name
# sarg -n
#resolve_ip no

# TAG: user_ip yes/no
# Use Ip Address instead userid (reports)
# sarg -p
user_ip yes

# TAG: topuser_sort_field field normal/reverse
# Sort field for the Topuser Report.
# Allowed fields: USER CONNECT BYTES TIME
#
#topuser_sort_field BYTES reverse

# TAG: user_sort_field field normal/reverse
# Sort field for the User Report.
# Allowed fields: SITE CONNECT BYTES TIME
#
#user_sort_field BYTES reverse

# TAG: exclude_users file
# users within the file will be excluded from reports.
# you can use indexonly to have only index.html file.
#
#exclude_users none

# TAG: exclude_hosts file
# Hosts, domains or subnets will be excluded from reports.
#
# Eg.: 192.168.10.10 - exclude ip address only
# 192.168.10.0 - exclude full C class
# s1.acme.foo - exclude hostname only
# acme.foo - exclude full domain name
#
#exclude_hosts none

# TAG: useragent_log file
# Put here where is useragent.log to nable useragent report.
#
#useragent_log none

# TAG: date_format
# Date format in reports: e (Europe=dd/mm/yy), u (USA=mm/dd/yy), w (Weekly=yy.ww)
date_format e

# TAG: per_user_limit file MB
# Save userid on file if download exceed n MB.
#
# This option can be used to disable user access if user exceed a download limit.
#per_user_limit none

# TAG: lastlog n
# How many reports files must be keept in reports directory.
# The oldest report file will be automatically removed.
# 0 - no limit.
#
#lastlog 0

# TAG: remove_temp_files yes
# Remove temporary files: geral, usuarios, top, periodo from root report directory.
#
#remove_temp_files yes

# TAG: index yes|no|only
# Generate the main index.html.
# only - generate only the main index.html
#
#index yes

# TAG: overwrite_report yes|no
# yes - if report date already exist then will be overwrited.
# no - if report date already exist then will be renamed to filename.n, filename.n+1
#
#overwrite_report no

# TAG: records_without_userid ignore|ip|everybody
# What can I do with records without user id (no authentication) in access.log file ?
#
# ignore - This record will be ignored.
# ip - Use ip address instead. (default)
# everybody - Use "everybody" instead.
#
#records_without_userid ip

# TAG: use_comma no|yes
# Use comma instead point in reports.
# Eg.: use_comma yes => 23,450,110
# use_comma no => 23.450.110
#
#use_comma no

# TAG: mail_utility mail|mailx
# Mail command to use to send reports via SMTP
#
#mail_utility mailx

# TAG: topsites_num n
# How many sites in topsites report.
#
#topsites_num 100

# TAG: topsites_sort_order CONNECT|BYTES A|D
# Sort for topsites report, where A=Ascendent, D=Descendent
#
#topsites_sort_order CONNECT D

# TAG: exclude_codes file
# Ignore records with these codes. Eg.: NONE/400
#
#exclude_codes /usr/local/sarg/exclude_codes

# TAG: replace_index string
# Replace "index.html" in the main index file with this string
# If null "index.html" is used
#
#replace_index <?php echo str_replace(".", "_", $REMOTE_ADDR); echo ".html"; ?>

# TAG: max_elapsed milliseconds
# If elapsed time is recorded in log is greater than max_elapsed use 0 for elapsed time.
# Use 0 for no checking
#
#max_elapsed 0
# 8 Hours
max_elapsed 28800000

# TAG: report_type type
# What kind of reports to generate.
# topsites - shows the site, connect and bytes
# sites_users - shows which users were accessing a site
# users_sites - shows sites accessed by the user
# date_time - shows the amount of bytes used by day and hour
# denied - show all denied sites with full URL
# auth_failures - show autentication failures
#
# Eg.: report_type topsites denied
#
#report_type topsites users_sites sites_users date_time denied auth_failures site_user_time_date

# TAG: usertab filename
# You can change the "userid" or the "ip address" to be a real user name on the rpeorts.
# Table syntax:
# userid name or ip address name
# Eg:
# SirIsaac Isaac Newton
# vinci Leonardo da Vinci
# 192.168.10.1 Karol Wojtyla
#
# Each line must be terminated with '\n'
#
#usertab none

# TAG: long_url yes|no
# If yes, the full url is showed in report.
# If no, only the site will be showed
#
# YES option generate very big sort files and reports.
#
#long_url no

# TAG: date_time_by bytes|elap
# Date/Time reports will use bytes or elapsed time?
#
#date_time_by bytes

# TAG: charset name
# ISO 8859 is a full series of 10 standardized multilingual single-byte coded (8bit)
# graphic character sets for writing in alphabetic languages
# You can use the following charsets:
# Latin1 - West European
# Latin2 - East European
# Latin3 - South European
# Latin4 - North European
# Cyrillic
# Arabic
# Greek
# Hebrew
# Latin5 - Turkish
# Latin6
# Windows-1251
# Koi8-r
#
charset Latin1

# TAG: user_invalid_char "&/"
# Records that contain invalid characters in userid will be ignored by Sarg.
#
#user_invalid_char "&/"

# TAG: privacy yes|no
# privacy_string "***.***.***.***"
# privacy_string_color blue
# In some countries the sysadm cannot see the visited sites by a restrictive law.
# Using privacy yes the visited url will be changes by privacy_string and the link
# will be removed from reports.
#
#privacy no
#privacy_string "***.***.***.***"
#privacy_string_color blue

# TAG: include_users "user1:user2:...:usern"
# Reports will be generated only for listed users.
#
#include_users none

# TAG: exclude_string "string1:string2:...:stringn"
# Records from access.log file that contain one of listed strings will be ignored.
#
#exclude_string none

# TAG: show_successful_message yes|no
# Show "Successful report generated on dir" at end of process.
#
# show_successful_message yes

# TAG: topuser_fields
# Which fields must be in Topuser report.
#
#topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC %TIME TOTAL AVERAGE

# TAG: topuser_num n
# How many users in topsites report. 0 = no limit
#
#topuser_num 0

Автор: ginger
Дата сообщения: 19.09.2003 11:23
zenia
...хм, а с какой переодичностью Вы создаете отчет?
Кстати... после создания отчета, squid заново начинает вести журнал или нет?

P.S. Посмотрела что творится у меня... никаких подобных проблем не заметила... правда у себя я использую доступ с авторизацией, следовательно в отчете формируются имена пользователей... а не IP... т.е. за определенный переуд... мне показано сколько пользователей посещало интернет и т.д...

ginger,
Автор: zenia
Дата сообщения: 19.09.2003 13:44
ginger
переодичность создания отчета не устанавливал пока, когда захочу тогда и делаю отчет.
У меня squid запускается раз в неделю squid -k rotate, т.е. раз в неделю начинается новый лог вестись.
Я запускал sarg и на уже отработавшем лог файле, например access.log.1, и на работающим в данный момент, одно и тоже.
Автор: finist
Дата сообщения: 19.09.2003 18:18
ТОгда в access_log поставь access.log.1 (access.log.0?). Да и собственно выбери тип отчета, который тебе нужен в report_type. Без таких параметров sarg работает как простецкий фильтр, который преобразует время запроса в удобочитаемый вид.
Автор: zenia
Дата сообщения: 22.09.2003 10:22
finist

>ТОгда в access_log поставь access.log.1 (access.log.0?).
Это я делаю.

> Да и собственно выбери тип отчета, который тебе нужен в report_type. Без таких >параметров sarg работает как простецкий фильтр, который преобразует время >запроса в удобочитаемый вид.

А что написать в report_type, чтобы для одного ip - одна запись?

Автор: finist
Дата сообщения: 22.09.2003 11:03
Нужен "users_sites".
Автор: EndoR
Дата сообщения: 12.02.2004 18:02
почему-то на некоторых логах стал выдавать segmentation fault. в /tmp оставляет какие-то файлы. с файловой системой вроде все в норме. в чем может быть проблема?
Автор: BeerLion
Дата сообщения: 13.02.2004 12:43

Цитата:
segmentation fault

Те же ыйца. Что это может быть?

Цитата:
segmentation fault
An error in which a running Linux program attempts to access memory not allocated to it and terminates with a segmentation violation error and usually a core dump
Автор: finist
Дата сообщения: 13.02.2004 20:50
Для RH 9.0 и всякими ASP 9.0 патчик нужен и переменную среды окружения LC_ALL взвести надо. Проверьте, мож этого не хватает.

У меня проблема- ругается, если имя пользователя было введено русскими буквами. Так что сначала делаю cat access.log | grep -v XXXX > good_access.log . Видимо проблема в последующей сортировке записей по пользователям- он либо зависает, либо падает в core. Найдено при помощи хаотичных поисков решения описанной в предыдущих постах проблемы (ASP 9.0).
Автор: EndoR
Дата сообщения: 17.02.2004 12:14
finist
да не. у меня 7.3.

Цитата:
проблема в последующей сортировке записей

хм. а мне кажется, что почему-то он адрес не парсит, и на нем вылетает.
Автор: EndoR
Дата сообщения: 05.03.2004 14:11
беда вообще. написал им письмо и молчание. ситуация неприятная.
Автор: Strizh
Дата сообщения: 03.07.2004 09:39
EndoR

Цитата:
почему-то на некоторых логах стал выдавать segmentation fault

У меня то же самое
Запускал с ключиком -m для того, чтобы посмотреть а чего это с ним деется.
Почему-то спотыкалось на одной записи - удалил ее и всё стало хорошо ..... до поры - до времени....

Почему-то стал вываливаться с ошибками типа:

sort: /usr/www/sarg/current/01Jul2004-01Jul2004/192_168_1_5.tmp: No such file or directory

Есть какие-то предположения?
Автор: EndoR
Дата сообщения: 05.07.2004 12:55
Strizh
есть подозрение, что он не может парсить строки больше определенной длины. прийдется вручную такие записи удалять.

ЗЫ помимо этого хотелось бы анализатор, который еще более гибок и который разрабатывается сейчас (а то сарг вроде загибается). поэтому и встал вопрос о смене анализатора - http://forum.ru-board.com/topic.cgi?forum=8&topic=1397#1
Автор: Strizh
Дата сообщения: 05.07.2004 13:06
EndoR

Цитата:
есть подозрение, что он не может парсить строки больше определенной длины. прийдется вручную такие записи удалять.

не-а...
Фигня какая-то. Вручную (sarg -w) указал временный каталог - работает, хотя в конфиге он есть....


Цитата:
поэтому и встал вопрос о смене анализатора - http://forum.ru-board.com/topic.cgi?forum=8&topic=1397#1

надо посмотреть....
Автор: EndoR
Дата сообщения: 05.07.2004 13:10
Strizh

Цитата:
Вручную (sarg -w) указал временный каталог - работает, хотя в конфиге он есть....

эээ.... думаешь, конфиг криво читает? хм. интересно. попробую. еще прикол в том, что когда cat'ом слепляю логи за месяц, то всё генерит нормально. а когда каждый день отдельно парсится (в кроне), то segmentation fault (на тех самых строках)...
Автор: Strizh
Дата сообщения: 05.07.2004 13:11
EndoR
ты патчил sarg или нет?
Автор: EndoR
Дата сообщения: 05.07.2004 13:46
Strizh
да, разумеется.
Автор: Strizh
Дата сообщения: 06.07.2004 10:44
EndoR
В общем Sarg ведет себя как-то неадекватно, генерация отчёта то проходит, то нет. Ручками, само собой обломно через день копаться у ваяснять а чего ж оно не отработало...
Автор: GMax
Дата сообщения: 07.07.2004 10:33
иногда одни и те же логи падают при обычном парсинге и не падают при парсинге с выводом debug'а.

где-то у него буфера переполняются. я ещё пару лет назад писал автору, ноль реакции.

например вот в этом месте: util.c

void getword(char *word, char *line, int stop)
{
int x = 0,y;
int loop=0;
int limit=10000;
char wline[MAXLEN];

strcpy(wline,line);

если line больше MAXLEN, то на strcpy слетает и никакие дальнейшие loop check нахрен уже не нужны.
самое интересное, что этот wline вообще нужен только для репорта, если этот loop check срабатывает. только он никогда не срабатывает, потому что если он есть - падает раньше
Автор: wchik
Дата сообщения: 07.07.2004 13:58
скажите кто-то знает как автоматом установить пароль на странице пользователя чтобы просматривать мог не только администратор но и пользователь
лучше чтобы пароль брался из АД
Автор: EndoR
Дата сообщения: 07.07.2004 15:52
wchik
имхо только ручками+htpasswd
Автор: DCAdmin
Дата сообщения: 03.08.2004 11:41
Скажите, а есть возможность в отчете поля типа domain/user, _user, user слепить для user силами sarg, или без grep не обойтись?
А можно попонятнее про
Цитата:
скажите кто-то знает как автоматом установить пароль на странице пользователя чтобы просматривать мог не только администратор но и пользователь
, или ссылкой кинтесь, потому как в Инете вопросы таки есть а вот с ответами...
И кто юзает TAG: password из sarg.conf, можно подсказать каким боком это работает?
Сеньки
Автор: georgesitov
Дата сообщения: 29.12.2004 10:52
становлен Alt Linux 2.4 b и Sarg 2.0.2
Хочу чтобы в отчётах вместо IP адресов пользователей были их имена. Для этого я указал в фале sarg.conf
usertab /usr/local/sarg/users

а в файле users прописал

192.168.0.1 Vasja Pupkin \n

Но в отчётах ничего не поменялось, при запуске sarg -x -z
написалось что usertab загружен. Не понимаю

Вот вывод -x -z
[root@GTW sarg]# ./sarg.daily
SARG: Init
SARG: Loading configuration from: /usr/local/sarg/sarg.conf
SARG: ConfigFile.........= /usr/local/sarg/sarg.conf
SARG: AccessLog..........= /home/bigvar/log/squid/access.log
SARG: BgColor............= background_color white
SARG: TxColor............= #000000
SARG: TxBgColor..........= lavender
SARG: TiColor............= green
SARG: LogoImage..........=
SARG: LogoText...........=
SARG: LogoTextColor......= #000000
SARG: Width..............= 80
SARG: Height.............= 45
SARG: Title..............= Squid User Access Reports
SARG: BgImage............=
SARG: FontFace...........= Verdana,Tahoma,Arial
SARG: HeaderColor........= darkblue
SARG: HeaderBgColor......= #DDDDDD
SARG: FontSize...........= 9px
SARG: PasswdFile.........=
SARG: TempDir............= /tmp
SARG: OutputDir..........= /home/bigvar/www/sarg-html/squid-reports
SARG: Ip2Name............= yes
SARG: TopuserSortField.........= BYTES
SARG: UserSortField.........= BYTES
SARG: TopuserSortOrder.........= reverse
SARG: UserSortOrder.........= reverse
SARG: UserAgentLog.......=
SARG: ExcludeHosts.......=
SARG: DateFormat.........= e
SARG: ExcludeUsers.......=
SARG: PerUserLimitFile...=
SARG: PerUserLimit.......=
SARG: UserIp.............= yes
SARG: MaxElapsed.........=
SARG: LastLog............=
SARG:
SARG: Parameters:
SARG:
SARG: Hostname or IP address (-a) =
SARG: Useragent log (-b) =
SARG: Exclude file (-c) =
SARG: Date from-until (-d) = 27/12/2004-27/12/2004
SARG: Email address to send reports (-e) =
SARG: Config file (-f) = /usr/local/sarg/sarg.conf
SARG: Date format (-g) = Europe (dd/mm/yyyy)
SARG: IP report (-i) = Yes
SARG: Input log (-l) = /home/bigvar/log/squid/access.log
SARG: Resolve IP Address (-n) = Yes
SARG: Output dir (-o) = /home/bigvar/www/sarg-html/squid-reports/daily/
SARG: Use Ip Address instead of userid (-p) = Yes
SARG: Accessed site (-s) =
SARG: Time (-t) =
SARG: User (-u) =
SARG: Temporary dir (-w) = /tmp
SARG: Debug messages (-x) = Yes
SARG: Process messages (-z) = Yes
SARG:
SARG: sarg version: 2.0.2 Nov-22-2004
SARG: Loading User table: /usr/local/sarg/users
SARG: Reading access log file: /home/bigvar/log/squid/access.log
SARG: (util) tbuf=27Dec200445, reading: 0.00%
SARG: (util) periodo=27Dec2004-27Dec2004
SARG: Records in file: 409045, reading: 100.00%
SARG: Records read: 409520, written: 234020, excluded: 0
SARG: Squid log format
SARG: (util) data=28/12/2004
SARG: (util) tbuf=28Dec2004
SARG: (util) periodo=27Dec2004-27Dec2004
SARG: Period: 27Dec2004-27Dec2004
gzip: /sarg-27Dec2004_0021-27Dec2004_.log.gz already exists; do you wish to overwrite (y or n)? y
SARG: Sarg parsed log saved as /sarg-27Dec2004_0021-27Dec2004_.log
SARG: (util) dirname=/home/bigvar/www/sarg-html/squid-reports/daily/27Dec2004-27Dec2004
SARG: (util) wdir=/home/bigvar/www/sarg-html/squid-reports/daily/27Dec2004-27Dec2004
SARG: Making period file
SARG: Making file: /tmp/sarg/192_168_1_4

И так далее..
Автор: fortune
Дата сообщения: 29.12.2004 13:53
У тебя дотуп идет по ip адресам или по пользователям? Если по ip то на сколько я знаю, только dns имена вместо них можно в отчете выводить.
Автор: georgesitov
Дата сообщения: 29.12.2004 15:03
fortune
Ты имееш в виду настройку squid ?
Там acl прописаны с ip.
Или не то ?
По описанию usertab вроде как должен резолвить Ж(
Пока я вылечил пропиской всех в hosts

Автор: fortune
Дата сообщения: 30.12.2004 12:35
georgesitov
192.168.0.1 Vasja Pupkin \n
\n -совсем не нужно писать, в sarg.conf имеется ввиду, что это символ возврата коретки, так что просто надо Enter нажать после строчки.
Мож из-за этого?
Автор: georgesitov
Дата сообщения: 30.12.2004 15:54
fortune
Нет, не из за этого, убрал не то, забил на usertab, прописал hosts Ж)
\n - это я стормозил
Автор: Cursed
Дата сообщения: 13.04.2005 15:36
Возможно ли сделать с помощью sarg следующее:
1. Сводный отчет по каждому пользователю за месяц: за каждый день накачал столько-то, за неделю - столько-то, за месяц - столько-то.
либо 2. Чтобы генерация шла не по датам, а по пользователям, т.е. User - период - трафик.

Страницы: 1234

Предыдущая тема: Опытный пользователь в AD


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.