Parse csv log

Hello guys.
I'm beginner in ELK stack. I try parse the following log into logstash
`"639119","1","documentos","{texto}","{""<p style=""text-align: justify;""><span style=""font-size: x-small;"">ATRAVÉS DESTE INSTRUMENTO PARTICULAR, AS PARTES TÊM CERTAS E AJUSTADASA NEGOCIAÇÃO DO IMÓVEL A SEGUIR IDENTIFICADO, DE ACORDO COM AS CLÁUSULAS E CONDIÇÕES ADIANTE ESTABELECIDAS:

PELO PRESENTE INSTRUMENTO PARTICULAR DE CESSÃO DE DIREITOS, VANTAGENS, OBRIGAÇÕES E RESPONSABILIDADES, QUE ENTRE SI FAZEM, DE UM LADO JO&Ati

NAS VENDAS À VISTA, O CESSIONARIO DEVERÁ OBRIGATORIAMENTE EFETUAR O PAGAMENTO DA CHÁCARA/ÁREA DIRETAMENTE NO ESCRITÓRIO DA VENDEDORA ATRAVÉS DE CHEQUE NOMINAL, ATRAVÉS DE BOLETO BANCÁRIO RETIRADO NO ESCRITÓRIO DA VENDEDORA, QUE DEVERÁ SER PAGO EM QUALQUER AGÊNCIA DA REDE INTEGRADA DE COBRANÇA, DEPOSITO BANCÁRIO, TED. OU DOC. NOMINAL A MESMA. 

§2º- O CEDENTE NÃO SE RESPONSAILIZA PELA EXISTÊNCIA OU NÃO DE ÁGUA NO SOLO OU SUBSOLO DACHÁCARA/ÁREA, BEM COMO POR EVENTUAIS ALAGAMENTOS, ENXARCAMENTOS, DESMORONAMENTO, EROSÕES, INDEPENDENTEMENTE DA ESTAÇÃO CLIMÁTICA. 

§3º- SERÃO TOLERADAS DIFERENÇAS, A MAIOR OU A MENOR, NO TAMANHO DA CHÁCARA/ÁREA, DE ATÉ 5% (CINCO POR CENTO) DA ÁREA TOTAL, NÃO PODENDO AS PARTES EXIGIR INDENIZAÇÃO OU RESSARCIAMENTO FINANCEIRO. 
§4º- AS DIFERENÇAS DE ÁREA SUPERIORES A 5% (CINCO POR CENTO) SERÃO ACERTADAS PELAS PARTES, TENDO POR BASE O PREÇO DO METRO QUADRADO APURADO NA DIVISÃO DO PREÇO TOTAL DESTE CONTRATO PELA ÁREA DA CHÁCARA/ÁREA.

§5º- SE A DIFERENÇA SUPERIOR A 5% (CINCO POR CENTO) FOR A MAIOR, O VALOR DA DIFRENÇA SERÁ INCLUÍDA NO SALDO DEVEDOR DESTE CONTRTO E COBRANÇA UMA FRAÇÃO EM CADA PARCELA A VENCER, NOS MSMOS TERMOS DA CLÁUSULA 2ª DESTE CONTRAT. 

§6ª- SE A DIFERENÇA SUPEOR A 5% (CINCO POR CENTO) FOR MENOR, O VALOR DA DFERENÇA SER&Aaute; EXCLUÍDO DO SALDO DEVEDOR E DESCONTADO UMA FRAÇÃO EM CADA PARCELA A VENCER. 

§11º- O CEDENTE TERÁ O PRAZO DE ATÉ 90 (NOVENTA) DIAS PARA RELIZAR A NOVA DEMRCAÇÃO, A CONTAR DA DATA DA CONFIRMAÇÃO DO RECEBIMENTO.

CLÁUSULAS 4ª: DA LIMPEZA E MANUTENÇÃO DA CHÁCARA/ÁREA

 

""}","jhb@r2soft.com.br","UPDATE","22/8/2014 10:28:54.978714"`

This is my configuration file

input {
file {
path => "/home/josue_mses/Desktop/log.csv"
start_position => "beginning"
type => "file"

}
}

filter {
csv {
columns => [
"id",
"registro_id",
"nome_tabela",
"nome_campo",
"valor_antigo",
"valor_novo",
"usuario",
"operacao",
"data_hora"
]

separator => ","
quote_char => "|"

}

date {
match => ["data_hora", "dd/MM/yyyy HH:mm:ss.SSSSSS"]
timezone => "UTC"
target => "@timestamp"
add_tag => [ "tmatch" ]
}

mutate {
gsub => ["valor_novo", "\r", " "]
}
}

output {
elasticsearch {
action => "index"
index => "logstash-imobiliaria-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}

In all times when i try parse this log the field 'valor_novo' broke my parse because this field is one contract with html tags.
How can i parse this log correctly?

Your example CSV is not correctly formatted (please post a file with header and correct seperators)

I'm not good with logstash and prefer node.js tools, so here is how I would solve this:

https://www.npmjs.com/package/csvtojson
and https://www.npmjs.com/package/logagent-js

npm i csvtojson -g
npm i logagent-js -g

export LOGSENE_URL=http://localhost:9200
csvtojson myfile.csv -quote '|' | logagent -y -t logstash-imobiliaria