ďťż
 
 
   skuteczne przeszukiwanie dużej ilości logów squida
 
 

Tematy

 
    
 

 

 

 

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis