графит против сколд. удержания не применяются

Я установил collectd на хостах BIND9 и настроил его для передачи метрик в graphite. Я хочу иметь возможность просматривать метрики как минимум за 1 месяц, но сохранение в storage-schema.conf не применяется к разделу collectd и применяется последний раздел по умолчанию, в котором хранятся только последние 24-часовые метрики. Я понимаю, что мне нужно установить правильное регулярное выражение удержания для соответствия метрикам, но мне кажется, что это уже правильно, но это не работает :(

Мой storage-schemas.conf сейчас выглядит так:

[carbon]
pattern = ^carbon\.
retentions = 60:90d

[mxservers]
pattern = ^mx-servers\.*
retentions = 60s:7d,5m:2y 

[ns.servers]
pattern = ^ns\d\.collectd\..*
retentions = 60s:7d,10m:2y

[collectd]
pattern =^collectd\.*
retentions = 60s:7d,10m:2y 

# *** Netapp Monitoring ***
[netapp.capacity]
pattern = ^netapp\.capacity\.*
retentions = 15m:100d, 1d:5y

[netapp.poller.capacity]
pattern = ^netapp\.poller\.capacity\.*
retentions = 15m:100d, 1d:5y

[netapp.perf]
pattern = ^netapp\.perf\.*
retentions = 60s:35d, 5m:100d, 15m:395d, 1h:5y

[netapp.poller.perf]
pattern = ^netapp\.poller\.perf\.*
retentions = 60s:35d, 5m:100d, 15m:395d, 1h:5y

[netapp.perf7]
pattern = ^netapp\.perf7\.*
retentions = 60s:35d, 5m:100d, 15m:395d, 1h:5y

[netapp.poller.perf7]
pattern = ^netapp\.poller\.perf7\.*
retentions = 60s:35d, 5m:100d, 15m:395d, 1h:5y
# *** Netapp Monitoring ***

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

У меня проблема с разделом с именем - [ns.servers], попытался установить в нем регулярное выражение:

^ns\d\.collectd\.
^ns\d\.collectd\..*
^ns.\.collectd\.
^ns.\.collectd\..*

Ни один из них не решает проблему. Метрики хранятся с такими именами:

ns1.collectd.load.load.shortterm
ns2.collectd.load.load.longterm
ns1.collectd.interface-bond0.if_packets.rx
ns2.collectd.interface-bond0.if_packets.tx

Пожалуйста, помогите мне установить правильное регулярное выражение, чтобы оно совпадало.


person 0xDEAD BEEF    schedule 01.06.2017    source источник


Ответы (2)


Вы случайно не настроили регулярные выражения в storage-schemas.conf после создания файлов .wsp? Если это так, вам придется изменить размер существующих файлов .wsp вручную. Вы можете сделать это с помощью утилиты шептала-изменения размера, входящей в пакет шепота (или просто удалите файлы и дайте углероду воссоздать их).

storage-schemas.conf применяется только при создании нового файла .wsp.

person Popieluch    schedule 01.06.2017
comment
Да, вы правы, настройки хранения были изменены после создания файлов данных, поэтому теперь я удалил старые файлы и должен ждать 1 д + 1 минуту, чтобы убедиться, что теперь все работает как надо. Спасибо. - person 0xDEAD BEEF; 01.06.2017
comment
вы можете проверить файлы шепота с помощью утилиты whisper-info. Он покажет вам сохранение файлов. - person Popieluch; 01.06.2017
comment
Я вообще не понимаю этого вывода: шепот-информация ns1/collectd/interface-bond0/if_packets/tx.wsp maxRetention: 86400 xFilesFactor: 0.5 aggregationMethod: средний размер файла: 17308 Архив 0 сохранение: 86400 секундPerPoint: 60 точек: 1440 размер: 17280 смещение: 28 - person 0xDEAD BEEF; 02.06.2017
comment
whisper-info показывает метаданные о файле шепота. Первая часть — это общая информация, затем идет информация по архиву. В вашем случае это должно показать что-то вроде: › fileSize: 1382440 › maxRetention: 63072000 › aggregationMethod: средний › xFilesFactor: 0.5 › Archive 0 › Retention: 604800 › size: 120960 › offset: 40 › points: 10080 › secondPerPoint: 60 › Archive 1 › сохранение: 63072000 › размер: 1261440 › смещение: 121000 › точек: 105120 › secondPerPoint: 600 - person Popieluch; 03.06.2017
comment
Итак, я проверил это и получил отрицательные результаты. Во-первых: если я использую шепот-изменение размера, он делает то, что мне нужно, и файлы меняют свое сохранение, и я вижу Архив 0 и Архив 1 , но если я останавливаю углеродный кеш и удалите эти показатели из каталога хоста верхнего уровня (ns1, ns2) после запуска углерода, вновь созданные файлы по-прежнему имеют те же ретенции **, что и раньше ** - person 0xDEAD BEEF; 05.06.2017

Наконец-то я понял, в чем проблема! Я смотрю на /var/log/carbon/creates.log и обнаружил, что мои метрики для collecd хранятся как ns2/collectd.* - "hostname"+"/"+"collectd" - потому что в настройках collectd на DNS-серверах была опция Postfix "/collectd", которая делает это.

05/06/2017 09:54:22 :: creating database file /var/lib/graphite/whisper/ns2/collectd/cpu-1/cpu-idle.wsp (archive=[(60, 1440)] xff=None agg=None)
05/06/2017 09:54:22 :: new metric ns2/collectd.disk-sda.disk_octets.write matched schema default_1min_for_1day
05/06/2017 09:54:22 :: new metric ns2/collectd.disk-sda.disk_octets.write matched aggregation schema default

Таким образом, решение состояло в том, чтобы регулярное выражение выглядело так: pattern = ^ns[1-2]\/collectd\.* - экранированный "/" - символ, а затем я удалил старые метрики, и новые файлы метрик были созданы с правильными ретенциями!

05/06/2017 11:32:12 :: creating database file /var/lib/graphite/whisper/ns2/collectd/df-boot-efi/df_complex-free.wsp (archive=[(60, 10080), (600, 105120)] xff=None agg=None)
05/06/2017 11:32:12 :: new metric ns2/collectd.interface-eth0.if_errors.tx matched schema ns.servers
05/06/2017 11:32:12 :: new metric ns2/collectd.interface-eth0.if_errors.tx matched aggregation schema default
person 0xDEAD BEEF    schedule 05.06.2017