Я собираю статистику из Лак с участием Logstash, который настроен на приращение statsd счетчики на основе vhost в журналах сервера и кода результата. у меня тоже есть углерод создание шептать архивы для графит.
Я читаю логи из лак который настроен на добавление vhost и размещение запросов в стандартные журналы:
VARNISHNCSA_LOG_FORMAT="%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\" %{Host}i %{Varnish:hitmiss}x"
Конфигурация моего отправителя logstash выглядит так:
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}"
}
}
Сотни различных счетчиков создаются углерод из-за различий в домене, введенном в браузеры пользователей. Так, например, у меня
www_mywebsite_com
WWW_MyWebsite_Com
www_mywebsite_net <-- an alias
...etc...
Очевидно, что тогда они упускаются из виду в моих графиках, которые рассматривают статистику только под каноническим именем vhost.
Я бы хотел, чтобы процесс канонизации происходил заранее. Я могу написать сценарий, чтобы взять «сырой» домен и выдать «настоящее» имя виртуального хоста, но я не уверен, как это интегрировать. Поместить ли я его в конфиг logstash, в statsd или в углерод? Могу я что-нибудь сделать с функцией агрегации хранилища углерода?
Обновить: Я работал над худшими случаями, запустив демон-агрегатор углерода перед кешем и добавив правила в rewrite-rules.conf
. Однако для этого файла очень мало документации, и я не могу делать более мощные вещи, такие как разбивать все до нижнего регистра.
вы можете строчные буквы с помощью фильтра изменения:
filter {
mutate {
lowercase => [ "fieldname" ]
}
}
Ура, янв