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.
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?
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.
Eu tenho lidado com uma questão semelhante no trabalho recentemente. Eu achei estes bastante úteis:
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.
Tags haproxy