haproxy arquivo de log bruto para conversor csv

1

Eu tenho alguns arquivos de log raw haproxy, em que cada linha é parecida com esta:

Feb  6 12:14:14 localhost \
      haproxy[14389]: 10.0.1.2:33317 [06/Feb/2009:12:14:14.655] http-in \
      static/srv1 10/0/30/69/109 200 2750 - - ---- 1/1/1/1/0 0/0 {1wt.eu} \
      {} "GET /index.html HTTP/1.1"

Pergunta : como posso converter os arquivos de log brutos haproxy em CSV?

    
por Chris Snow 05.12.2014 / 15:35

2 respostas

2

Eu não sei de uma ferramenta existente de improviso. Mas você pode fazer o trabalho com esse logstash grok regex , converter para um regex no idioma de sua escolha e cuspir o objeto como csv.

    
por 05.12.2014 / 15:39
1

Eu tenho lidado com uma questão semelhante no trabalho recentemente. Eu achei estes bastante úteis:

link

link

Acabei com uma linha de padrão genérico como esta:

pattern => "%{IP:client_ip}:%{INT:client_port} \[%{HAPROXYDATE:accept_date}\] %{NOTSPACE:frontend_name} %{NOTSPACE:backend_name}/%{NOTSPACE:server_name} %{INT:time_request}/%{INT:time_queue}/%{INT:time_backend_connect}/%{INT:time_backend_response}/%{NOTSPACE:time_duration} %{INT:http_status_code} %{NOTSPACE:bytes_read} %{DATA:captured_request_cookie} %{DATA:captured_response_cookie} %{NOTSPACE:termination_state} %{INT:actconn}/%{INT:feconn}/%{INT:beconn}/%{INT:srvconn}/%{NOTSPACE:retries} %{INT:srv_queue}/%{INT:backend_queue} (\{%{HAPROXYCAPTUREDREQUESTHEADERS}\})?( )?(\{%{HAPROXYCAPTUREDRESPONSEHEADERS}\})?( )?\"(<BADREQ>|(%{WORD:http_verb} (%{URIPROTO:http_proto}://)?(?:%{USER:http_user}(?::[^@]*)?@)?(?:%{URIHOST:http_host})?(?:%{URIPATHPARAM:http_request})?( HTTP/%{NUMBER:http_version})?))?\""

Mas é necessário que option httplog adicione cada um dos front-ends para os quais você deseja obter métricas.

    
por 03.03.2015 / 16:24

Tags