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