|
skuteczne przeszukiwanie dużej ilości logów squida
janowskm - 24-07-2009 11:30
Witam.
Jak można skutecznie przeszukiwać duże ilości skompresowanych logów squida, powiedzmy tak 200GB?
Pozdrawiam.
sigo - 28-07-2009 08:26
Przeszukiwać pod względem konkretnych danych? Użyj grep-a.
f1.micro - 28-07-2009 08:31
sigo, skompresowanych nie przeszuka grepem.
sigo - 28-07-2009 08:34
Przez kilka dni nie pojawiło się jakiekolwiek rozwiązanie, zatem póki co, polecam używanie: zcat /file.gz | grep string
Podobny temat. Więcej stron.
janowskm - 28-07-2009 10:27
Przez kilka dni nie pojawiło się jakiekolwiek rozwiązanie, zatem póki co, polecam używanie: zcat /file.gz | grep string
Ale taką ilość logów nie sposób przeszukiwać tym poleceniem, żeby wyszukać w 20GB logów czegokolwiek z pomocą polecenia grep zajęłoby miesiące.
Jest program sarg, ale bardziej odpowiednim chyba jest logrotate, ktoś używał tego?
Pozdrawiam.
michnik - 28-07-2009 15:08
Osobiscie polecam rozwiązanie przekazywania logów do MySQL-a i przeszukiwanie ich za pomocą kilku SELECT-ów. Aby nacieszyć oko można do tego dodać przeglądarkę wpisów SQL-a np: http://myclient.polarlava.com/ i myślę, że będzie o wiele wygodniej.
Hardiel - 29-07-2009 01:50
Lub stworzyc wlasny wielowatkowy skrypt do przeszukiwania logow
janowskm - 03-08-2009 14:56
Osobiscie polecam rozwiązanie przekazywania logów do MySQL-a i przeszukiwanie ich za pomocą kilku SELECT-ów. Aby nacieszyć oko można do tego dodać przeglądarkę wpisów SQL-a np: http://myclient.polarlava.com/ i myślę, że będzie o wiele wygodniej.
A możesz opisać bardziej szczegółowo jak to robisz?
Pozdrawiam.
michnik - 03-08-2009 18:27
To czego potrzebujesz nazywa się
SYSLOG-NG with pipe to MYSQL
Co jest potrzebne:Tworzenie bazy danych:llogujesz się jako użytkownik root do bazy:
mysql -u root -p
tworzysz bazę danych, do której będą spływać logi:
CREATE DATABASE logi;
USE logi;
l
Później tworzysz sobie tabelę według opisu http://code.google.com/p/php-syslog-...pec=svn39&r=39
Kopiujesz poszczególne sekcje do konsoli tworząc tabelę.
Następnie w:
/etc/syslog-ng/syslog-ng.conf
modyfikujesz sekcję:
destination d_mysql
gdzie podajesz parametry logowania do bazy (tj. użytkownik, hasło itp.). destination d_mysql {
program("/usr/bin/mysql --user=sysloguser --password=syslogpasswd db_log < /var/log/mysql.pipe");
pipe ("/var/log/mysql.pipe" template("INSERT INTO logi (host, facility, priority, level, tag, datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC','$PROGRAM', '$MSG' );\n") template-escape(yes));
};
log { source(s_all); destination(d_mysql); };
Oglądanie logów / wersja bez GUI /.
Z konsoli logujemy się do bazy MYSQL i wybieramy nasza bazę z logami
USE logi;
przykładowym zapytaniem może być np:
1. jakie adresy IP nadał nasz DHCP przez ostatnie 10 minut
select host, datetime, msg from logi where program='dhcpd' and datetime > DATE_ADD(CURRENT_TIMESTAMP, INTERVAL -10 MINUTE);
2. kto łączył się do nas przez VPN`y
select host, datetime, msg from logi where ((program='pluto' and msg like '%Main mode peer ID is%CN%') or (program='pppd' and msg like '%remote IP address%')) and datetime > '09-05-01';
Same zapytania tworzymy wg własnego uznania i za pomocą CTRL C - CTRL V szybko wyłowimy to co nam potrzebne.
Dla każdego serwera dobrze jest stworzyć osobną bazę i w taki sposób można scentralizować logowanie wszystkich posiadanych serwerów.
Co do GUI to proponuje wg własnego gustu wybrać dowolna nakładkę na MySQLa`a która potrafi wyświetlać zadane zapytania na stronie WWW lub napisać własny kawałek HTML`a i po sprawie :)
Dodam, że konfigurację piszę z głowy i mogłem popełnić gdzieś błąd więc poprawcie mnie jeśli coś znajdziecie nie tak.
janowskm - 05-08-2009 13:21
Wiesz co, nie bardzo mi działa ta baza z logami.
syslog-ng wrzuca logi do /var/log/mysql.pipe - utworzyłem ten plik i nadałem prawa 777, ale logi nie zostają wrzucone do bazy mysql. Wykonuję:
select * from logi
i dostaje pusty.
Po zmianach przeładowywałem mysql i syslog-ng ale nadal nie działa, w czym tkwi problem?
[ Dodano: 2009-08-05, 14:41 ]
Wiesz co, nie bardzo mi działa ta baza z logami.
syslog-ng wrzuca logi do /var/log/mysql.pipe - utworzyłem ten plik i nadałem prawa 777, ale logi nie zostają wrzucone do bazy mysql. Wykonuję:
select * from logi
i dostaje pusty.
Po zmianach przeładowywałem mysql i syslog-ng ale nadal nie działa, w czym tkwi problem?
już działa, trzeba utworzyć pipe fifo: mkfifo /var/log/mysql.pipe i był u Ciebie błąd:
powinno być:
program("/usr/bin/mysql --user=sysloguser --password=syslogpasswd logi < /var/log/mysql.pipe")
A po za tym to przechowuje logi z sysloga a squid przchowuje swoje logi w odzielnych plikach, nie wiem czy można jakoś przestawić to?
Pozdr
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|