você pode diminuir um campo com o filtro mutate:
filter {
mutate {
lowercase => [ "fieldname" ]
}
}
Felicidades, Jan
Estou coletando estatísticas do Varnish com Logstash , que é configurado para incrementar contadores statsd com base no vhost nos logs do servidor e código de resultado. Eu também tenho carbono criando sussurro arquivos para grafite .
Estou lendo os logs do varnishncsa que está configurado para adicionar vhost e solicitar disposição aos logs padrão:
VARNISHNCSA_LOG_FORMAT="%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" %{Host}i %{Varnish:hitmiss}x"
Minha configuração do remetente do logstash tem esta aparência:
input {
file {
path => "/var/log/varnish/varnishncsa.log"
type => varnish
}
}
filter {
grok {
type => varnish
pattern => "%{COMBINEDAPACHELOG} %{NOTSPACE:vhost} %{WORD:varnish_handling}"
pattern => "%{COMBINEDAPACHELOG}"
}
mutate {
rename => [ 'response', 'status' ]
}
}
output {
statsd {
type => varnish
host => "my-statsd-host"
port => 8125
sender => "%{@fields.vhost}"
increment => "varnish.response.%{@fields.status}"
increment => "varnish.handling.%{@fields.varnish_handling}"
}
}
Centenas de contadores distintos estão sendo criados por carbono devido a variações no domínio inserido nos navegadores dos usuários. Então, por exemplo, eu tenho
www_mywebsite_com
WWW_MyWebsite_Com
www_mywebsite_net <-- an alias
...etc...
Obviamente, estes são perdidos pelos meus gráficos, que apenas analisam as estatísticas sob o nome canônico do vhost.
O que eu gostaria é que algum processo de canonização ocorra de antemão. Eu posso escrever um script para pegar um domínio 'bruto' e cuspir um nome de 'vhost' real, mas não tenho certeza de como integrar isso. Eu coloco na configuração logstash, ou no statsd, ou carbono? Posso fazer algo com o recurso de agregação de armazenamento de carbono?
Atualização : trabalhei em torno dos piores casos executando o daemon agregador de carbono na frente do cache e adicionando regras a rewrite-rules.conf
. No entanto, há pouquíssima documentação para esse arquivo, e não posso fazer coisas mais poderosas como quebrar tudo em letras minúsculas.
você pode diminuir um campo com o filtro mutate:
filter {
mutate {
lowercase => [ "fieldname" ]
}
}
Felicidades, Jan