postgrespro / mamonsu

BSD 3-Clause "New" or "Revised" License
186 stars 29 forks source link

Как можно отфильтровать дискаверинг баз? #171

Open ktulkhu opened 3 years ago

ktulkhu commented 3 years ago

В шаблоне присутствует дискавери для баз данных: Database discovery

в котором есть фильтры: {#DATABASE} matches .*

Хочу исключить из дискаверинга базы postgres, mamonsu: {#DATABASE} not matches postgres|mamonsu

После этого получаю в логе кучу ошибок о том, что часть переданных сендером элементов не принята. Я так понял, что сендер ВСЕГДА посылать данные по ВСЕМ базам, неважно, пофильтрованы они на стороне шаблона или нет, следовательно, если они пофильтрованы и под них не создались элементы (с типом zabbix trapper), то данные, которые сендер посылает по этим пофильтрованным базам, будут отвергаться сервером (т. к. под них нет созданных айтемов).

Следовательно, фильтрация в таком виде - бесполезна? Или я не правильно ей пользуюсь? Или нужно фильтровать на стороне mamonsu агента? Типа, как с метриками системы: [system]

enabled = True

enabled = False

что-то подобное нужно и для фильтрации баз, чтобы сендер не посылал данные по отфильтрованным базам?

cuprumtan commented 2 years ago

Добрый день! Шаблон Mamonsu генерируется и настраивается только с помощью команды mamonsu export, любые другие изменения, сделанные в шаблоне вручную, либо не дадут никакого эффекта, либо приведут к ошибкам в процессе сбора метрик.

В Mamonsu нет возможности фильтровать базы, discovery собирают и отправляют информацию по всем доступным базам кластера.

ktulkhu commented 2 years ago

Тогда два вопроса:

  1. Как-то можно эту "фичу", что шаблон можно модифиицировать только командой export укзать в документации? Совсем неочевидно, что поведение шаблона именно такое. И в целом, существует какая-то более подробная документация по настройке шаблона с помощью mamonsu export? Хотя бы пара живых примеров, как это использовать. Из того, что в описании команды export - не читается, что там можно менять что-то кроме описания Application и включать/выключать метрики системы (за последнее, кстатит, тоже не уверен, но из описания я именно так понял). И, как я понял, на этом возможности тюнинга все? Или есть какие-то возможнсоти выборочно включать-выключать метрики, которые представлены на текущий момент (не блоком, типа [system] disable), а выборочно прям по любой метрике?

  2. Можно добавить возможность фильтрации баз? Хотя бы на стороне агента. У меня есть объекты мониторинга, в которых среди порядка 20 баз мониторить нужно только штук пять. Остальные - тестовые или архивные. Смысл их мониторить? И смысл передавать данные по пятнадцати ненужным базам в заббикс? Можно, например, сделать блок [databases] (в конфиге агента), где будет возможность составлять какие-то фильтры по базам? Вообще, функционал агента довольно разнообразен, но документация по нему какая-то куцая. Приходится все методом тыка пробовать, не до конца понимая, как это вообще должно рабоать. Та же возможность фильтра дискавери баз в самом шаблоне указана (прям фильтр в дискавери, который, якобы, дает возмоность отбора). Если она не работает - зачем так сделали? Зачем вообще в шаблоне добавили этот "фейковый" фильтр, который только путает, подразумевая функционал (стандартный, между прочим, для дискавери), который не реализован?

cuprumtan commented 2 years ago
  1. Mamonsu - это внешний агент мониторинга, который собирает данные о состоянии кластера и системы и отправляет данные на Zabbix-сервер, где уже имеется подготовленный для Mamonsu шаблон. При этом агент не производит анализ состояния шаблона на Zabbix-сервере, чтобы получить какие-либо изменения, внесенные вручную после загрузки шаблона. Это стандартное поведение для Zabbix trapper. mamonsu export генерирует шаблон исходя из того, какие плагины активны и какие плагины пользователь добавил сам. Включить/отключить плагины Mamonsu можно через конфигурационный файл агента. Выборочно отдельные метрики включать/отключать возмжности нет, на данный момент можно управлять только на уровне плагинов. Возможности тюнинга есть у каждого плагина - в конфигурационном файле практически в каждой секции есть свои парметры. Например, частота опроса, критический размер bloat и т.д. Примеры тюнинга плагинов также есть. Команда mamonsu export в свою очередь при генерации шаблона применяет настройки из конфигурационного файла агента и позволяет менять название самого шаблона (--template-name), название группы элементов данных (--application), добавлять свои собственные плагины (--add-plugins).
    Давайте этот пункт кратко подытожим: невозможность модификацировать шаблон агента после его загрузки на сервер Zabbix - не фича, а обычное поведение. Документацию можно будет дополнить: добавим больше примеров с тюнингом плагинов. Также у нас есть постепенно наполняемый раздел best practices, добавим туда примеры генерации шаблонов в различных вариациях. :slightly_smiling_face:
  2. Mamonsu на данный момент отслеживает состояние кластера полностью, но, да, будет замечательно добавить возможность на уровне баз данных отслеживать только определенные. Задача ушла в разработку. Надеюсь, в ближайшем мажорном релизе эта возможность появится.
ktulkhu commented 2 years ago

Все понял, благодарю за пояснения.