@nocproject

Страница 225 из 2357
Aleksandr
30.07.2016
09:52:48
именно

Dmitry
30.07.2016
09:52:49
в influx они должны попасть как значения осмысленных тегов

Aleksandr
30.07.2016
09:54:08
поэтому до того как данные попадут в influx - должен отработать особый методо сбора нужной инфы, к какому объекту привязать данный метод выбирается на уровно шаблона, а какой шабон использовать для этого объекта можно определить по oid железки

Dmitry
30.07.2016
09:54:10
или смысла не будет

Google
Dmitry
30.07.2016
09:54:32
"особый метод сбора" в терминах NOC называется "discovery"

:)

Aleksandr
30.07.2016
09:54:43
нет, скорее профиль

discovery - это общее понятие

Dmitry
30.07.2016
09:55:09
которое обозначет процесс сбора черти-чего с черти-чего

:)

по логике вещей в box discovery должен быть какой-то метод

который возьмет все метрики, которые мы хотим получить с железки

Andrey
30.07.2016
09:56:07
сейчас, просто, не понятно, как написать свой discovery для метрик не очень бы, хотелось, править код НОКа для этого, а просто дописать своё

Dmitry
30.07.2016
09:56:09
пройдется по железке и выдаст какие-то хинты

Aleksandr
30.07.2016
09:56:13
у каждого продукта есть свой системид

Dmitry
30.07.2016
09:56:23
сейчас у нас ifindex'ы так передаются в get_metrics

Aleksandr
30.07.2016
09:56:27
vendor oid

Google
Andrey
30.07.2016
09:56:52
@akubatkin в ноке и так понятно кто вендор. Для этого в MO есть профили

и скрипты пишутся жёстко под вендора

Dmitry
30.07.2016
09:57:11
эти oid'ы жестко забиты в скриптах

Aleksandr
30.07.2016
09:57:15
на скриншоте - описание какие методы сбора ip/mac применять к конкретной модели коммутатора, это плагин мактрак в какти

Dmitry
30.07.2016
09:57:34
кстати, как вариант -- в caps discovery выносить

и пусть он и capabitity выдает, и отображения

в NOC'е проще

хочешь mac - дергай get_mac_address_table

остальное уже - не твое дело :)

Andrey
30.07.2016
09:58:42
caps будет возвращать scope? а кто будет hints формировать?

Dmitry
30.07.2016
09:58:53
ну вот надо подумать

Andrey
30.07.2016
09:59:08
или будет привязка scope <-> discovery script?

Dmitry
30.07.2016
09:59:17
по логике вещей с твоими политиками - он должен просечь, что они есть вообще

и выдернуть mapping'и

Andrey
30.07.2016
09:59:36
ну да

Dmitry
30.07.2016
09:59:51
теоретически эти mapping'и можно вернуть как capability

и там же и хранить

ну или возвращать как capability, но хранить отдельно

Andrey
30.07.2016
10:00:48
теоритически да... но всяких разные табличек в SNMP гора целая

Aleksandr
30.07.2016
10:00:54
тут вот список шаблонов, которые применяются к железке, этот список навешивается через общий профиль

Google
Andrey
30.07.2016
10:01:02
не хотелось бы всё сосредотачивать в caps

Dmitry
30.07.2016
10:01:18
caps - это централизованный механизм

Aleksandr
30.07.2016
10:01:18
эти data query - это как раз прослойки перед стандартным хранением инфы

Dmitry
30.07.2016
10:01:36
который показывает, что есть на железке

Andrey
30.07.2016
10:01:41
да

Dmitry
30.07.2016
10:01:43
и caps'ы передаются в каждый скрипт

по логике вещей mapping'и всякие -- там же могут собираться

другое дело, что хранить их стоит отдельно

Andrey
30.07.2016
10:02:30
ну, основная проблема это хранение

и привязка его к скрипту

Dmitry
30.07.2016
10:02:41
да ну ладно, какая это проблема?

делаем коллекцию ObjectMappings

Andrey
30.07.2016
10:02:53
в плане что сейчас это не хранится нигде:)

Dmitry
30.07.2016
10:03:24
и спокойно сохраняем там

Andrey
30.07.2016
10:04:32
и через scope передаём в get_metrics, а в нём пишем метод, дополняющий словарь SNMP_OIDS ?

Dmitry
30.07.2016
10:09:07
можно и шаблоны в словаре сделать

Andrey
30.07.2016
10:09:12
кстати, также можно шаблоны реализовать, создать коллекцию шаблонов. И сделать привязку scope <-> шаблон

Dmitry
30.07.2016
10:09:21
шаблоны oid'ов

Andrey
30.07.2016
10:10:14
в плане .1.2.3.4.5.6.{X}.{Y} ?

Dmitry
30.07.2016
10:13:13
1.2.3.4.5.{{ mappings.policy.get("x") }}

Google
Aleksandr
30.07.2016
10:13:22
пока внедрял в какти шаблоны для сбора инфы с ssr - наткнулся на то, индекс oid может быть и не повторяющимся, а string в hex :)

например так были зашифрованы названия процессов

имена

Andrey
30.07.2016
10:14:15
@akubatkin это можно в скрипте разрулить

Aleksandr
30.07.2016
10:15:57
для этого в xml-шаблоне какти надо было делать типа такого <name>Get rbnCpuProcTable Information</name> <description>Get SNMP based cpu process information from the RBN-CPU-METER-MIB::rbnCpuProcTable</description> <index_order>rbnCpuProcName</index_order> <oid_index>.1.3.6.1.4.1.2352.2.6.3.1.1.1</oid_index> <oid_index_parse>OID/REGEXP:^.{29}(.*)</oid_index_parse> т.е. oid - 29символов, а остальное будет считаться индексом

http://docs.cacti.net/howto:data_query_templates#snmp_index_is_present - как в какти разруливаются нестандартные ситуации с индексами

Andrey
30.07.2016
10:25:25
1) отрабатывает get_capabilities - он проверяет что данные имеет смысл собираить, возвращает список scope 2) в базу пишутся в коллекцию ObjectMappings 3) на основании поля Scope в Metric Type мы передаём в get_metric необходимые scope 4) get_metrics отрабатывает и возвращает данные Требования 1. Надо дописать get_capabilities 2. Необходимо где-то хранить шаблоны, можно сделать, как остальные коллекции

пока я не понял вопрос с mapping'ами... у нас caps не разрасётся их собирать?

или это можно вынести в отдельную структуру?

Aleksandr
30.07.2016
10:27:02
пусть спросит vendor oid и затем по нему уже узнает, что еще надо опросить

Andrey
30.07.2016
10:27:25
Vendor oid у нас и так есть:) когда заводится MO ему он назначается

все скрипты пишутся под конкретного вендора сразу

Aleksandr
30.07.2016
10:27:53
:) а ведь mo может автозаводиться по vendor oid :)

Andrey
30.07.2016
10:28:04
т.е. он у нас есть

раз оно по нему автозавелось

Dmitry
30.07.2016
10:28:21
у нас выбор профиля работает, в том числе, и по oid

Aleksandr
30.07.2016
10:29:10
я что-то пропустил или в микросервисах работает автодискавери mo? т.е. не надо заводить mo? пропингуется, опросится и сам заведется с нужными профилями?

Andrey
30.07.2016
10:29:24
@akubatkin да, работает такое

и если железка поменяет личину - это отработается

автоматически

Google
Aleksandr
30.07.2016
10:30:14
эту гуд, не знал, когда тестировал на старом - этого вроде бы не было

Andrey
30.07.2016
10:30:32
появилось в микросервисах

можешь написать статью:)

Aleksandr
30.07.2016
10:31:19
как сломаю себе голову, как в продакшн поставить башню на сервер с другими сервисами, так обязательно эту тему изучу

Andrey
30.07.2016
10:31:41
@dvolodin 1) отрабатывает get_capabilities - он проверяет что данные имеет смысл собираить, возвращает список scope, пригодных для сбора 2) они пишутся в коллекцию ObjectMappings 3) на основании поля Scope в Metric Type мы передаём в get_metric необходимые scope 4) get_metrics отрабатывает и возвращает данные Требования 1. Надо дописать get_capabilities 2. Необходимо где-то хранить шаблоны, можно сделать, как остальные коллекции пока я не понял вопрос с mapping'ами... у нас caps не разрасётся их собирать? или это можно вынести в отдельную структуру?

:) и про это тоже напиши)))))

"NOC. Как сломать себе голову"

Dmitry
30.07.2016
10:32:48
mapping'и в отдельную структуру

Andrey
30.07.2016
10:38:16
Шаблоны, у нас будут в get_metrics обитать?

Dmitry
30.07.2016
10:38:24
наверное

там им и место

Andrey
30.07.2016
10:38:37
ну... по сути да

у нас get_metric как коллекция шаблонов получается:)

Aleksandr
30.07.2016
10:41:04
:) в какти есть graph_templates,data_templates,host_templates, помио data_query и data_input_method :)

шаблоны кругом, задачи разные

Andrey
30.07.2016
10:41:56
как раз как было до микросервисов в НОКе

Dmitry
30.07.2016
10:43:52
там не только шаблоны, но и логика

шаблоны - один из способов получить результат

Andrey
30.07.2016
10:44:52
второй способ писать свой скрипт)

Dmitry
30.07.2016
10:46:00
ну, фактически, шаблоны -- это некий DSL

Страница 225 из 2357