shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: RES: [shell-script] Tratar um arquivo de log


From: Lynn karllo
Subject: Re: RES: [shell-script] Tratar um arquivo de log
Date: Wed, 18 Sep 2002 17:53:40 -0300 (ART)

Marcelino,
              Valeu pela ajuda, era quase isso que estava querendo, não sei vc 
conhece o syslog-ng, mas ele tem a possibilidade de jogar as informações do 
firewall do IPTABLES no mysql . Certo ? até ai tava legal, porem sugiu o 
problema de jogar os dados, porque a log nao segue um padrão com sua ajuda com 
o awk, eu consegui fazer quase um padrão na log,mas ainda nao está, como posso 
fazer com seu script para ele tornar um padrao
Onde tenha isso como já expliquei:
Sep  9 01:03:49 dark fp=ICMP a=ACCEPT IN= OUT=ppp0 SRC=200.163.82.103 
DST=207.33.111.32 LEN=44 TOS=0x00 PREC=0x00 TTL=64 ID=15360 PROTO=TCP SPT=32768 
DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 


e saia ao executar o script assim como está abaixo:

Sep  9 01:03:49 dark fp=ICMP a=ACCEPT IN= OUT=ppp0 SRC=200.163.82.103 
DST=207.33.111.32  PROTO=TCP SPT=32768 DPT=80 


ou 

A qual possa tirar as strings
fp=,a=,in=,out=,src=,dst=,proto=,spt=
Deixando só no arquivo o que está apos essas string 
Sep  9 01:03:49 dark ICMP ACCEPT "   " ppp0 200.163.82.103  207.33.111.32  TCP 
32768 80 

Para eu fazer um pre-processamento e jogar no mysql nas devidas tabelas, 
possibilitando eu ir com um programa no banco e buscar os dados.
Lynn Karllo
 
 Marcelino Silva 
wrote:Para este tipo de log, acho o awk mais apropriado por
ser mais rápido. Aí vai duas rotinas simples em awk,
espero que te sirva. Qualquer dúvida me comunique em
pvt.

arq1 - executa primeiro gerando um segundo arquivo de
log com brancos convertidos no caracter de separacao
de campos ":"

BEGIN {FS=":"}
{ gsub(/ +/, ":");
  #se o primeiro carcter for branco, retira o ":"
  if ($1 == "")
  {
     sub(":","");
     }
        print $0
}
--------
arq2 - pesquina o arq1 e retorna os campos selecionado
na rotina

BEGIN {FS = ":" }
{for (i = 1; i <= NF; i++){
#retorna os 8 primeros campos da linha
if (i < 9) {printf($i":")}

#pesquisa palavra chave e retorna o campo que a contem
if ($i ~ "SRC") {printf($i":")}
if ($i ~ "DST") {printf($i":")}
if ($i ~ "PROTO") {print $i}
}
}
-------------
Ex de execução no prompt:
awk -f arq1 arq.log > arq2.log
awk -f arq2 arq2.log > arq3.log

Marcelino
------------------------

--- Lynn <address@hidden> escreveu: 
<HR>
<html><body>


<tt>
<BR>
<BR>
Geraldo,<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Eu
tava querendo é jogar a log de acordo com os
paramentos que<BR>
eu define em uma tabela mysql, como a log não segue um
padrão, então<BR>
queria fazer um pré tratamento dela, colocando no
padrão para que possa<BR>
jogar na tabela de um banco no&nbsp; mysql.<BR>
<BR>
<BR>
<BR>
Como pode ver nas três linhas&nbsp; de código que
tirei na log, elas não<BR>
segue um padrão.<BR>
<BR>
<BR>
<BR>
1º Após o OUT= não aparece o paramento MAC=<BR>
<BR>
<BR>
<BR>
Sep&nbsp; 9 01:03:49 dark fp=ICMP a=ACCEPT IN=
OUT=ppp0 SRC=200.163.82.103<BR>
DST=207.33.111.32 LEN=44 TOS=0x00 PREC=0x00 TTL=64
ID=15360 PROTO=TCP<BR>
SPT=32768 DPT=80 WINDOW=5840 RES=0x00 SYN URGP=0 <BR>
<BR>
<BR>
<BR>
2º Já na linha abaixo já tem o MAC= logo apos o
OUT=<BR>
<BR>
<BR>
<BR>
Sep&nbsp; 9 01:03:58 dark fp=TCP:1 a=DROP IN=ppp0 OUT=
MAC= SRC=207.33.111.34<BR>
DST=200.163.82.103 LEN=40 TOS=0x00 PREC=0x00 TTL=23
ID=59881 PROTO=TCP<BR>
SPT=59285 DPT=79 WINDOW=1024 RES=0x00 SYN URGP=0 <BR>
<BR>
<BR>
<BR>
3º Como foi executado um ping para proprio servidor,
alguns parametros<BR>
são difirentes.<BR>
<BR>
<BR>
<BR>
Sep 10 02:00:41 dark fp=ICMP a=ACCEPT IN= OUT=lo
SRC=127.0.0.1<BR>
DST=127.0.0.1 LEN=84 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF
PROTO=ICMP TYPE=8<BR>
CODE=0 ID=35073 SEQ=512<BR>
<BR>
<BR>
<BR>
Se eu pudesse fazer um tratamento disso colocando em
arquivo separado os<BR>
paramentros que estão em azul acima, acho que ficaria
um padrão e<BR>
ajudaria colocar na tabela do banco.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
Sep 9 01:03:49 dark fp=ICMP a=ACCEPT IN= OUT=ppp0
SRC=200.163.82.103<BR>
DST=207.33.111.32 PROTO=TCP SPT=32768 DPT=80<BR>
<BR>
Sep 10 02:00:41 dark fp=ICMP a=ACCEPT IN= OUT=lo
SRC=127.0.0.1<BR>
DST=127.0.0.1 PROTO=ICMP<BR>
<BR>
<BR>
<BR>
As informações necessaries que preciso são essas em
azul, se tiver uma<BR>
idéia de como fazer ou até melhor do que eu pensei,
ajudaria muito.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
Ats,<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lynn Karllo<BR>
<BR>


_______________________________________________________________________
Yahoo! GeoCities
Tudo para criar o seu site: ferramentas fáceis de usar, espaço de sobra e 
acessórios.
http://br.geocities.yahoo.com/


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------


Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!. 



Ats,

        Lynn Karllo

 



---------------------------------
Yahoo! GeoCities
Tudo para criar o seu site: ferramentas fáceis de usar, espaço de sobra e 
acessórios.

[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]