Альтернатива конфигурационным файлам в Prometheus?

Я хочу внедрить систему мониторинга в небольшой организации. У меня есть опыт работы с Zabbix, но я рассматриваю Prometheus, поскольку кажется, что за ним стоит большое сообщество, и на сегодняшний день это в значительной степени стандарт (пожалуйста, поправьте меня, если я ошибаюсь).

Однако мне интересно, насколько удобно обрабатывать всю конфигурацию правил очистки и предупреждений в файлах конфигурации, а не в веб-интерфейсе, как в Zabbix. Я имею в виду, что это может быть нормально для 10-20 предупреждений, но как это можно сделать, например, с помощью 20 различных служб и 1000 разных предупреждений? Может, есть решение, которое я пропустил? В Zabbix очень удобно всем управлять, так как это пользовательский интерфейс, а также все разделено на группы (группы узлов сети, шаблоны и т. Д.)

Буду признателен за ваше понимание.


person roeezab    schedule 21.03.2019    source источник


Ответы (1)


Prometheus - убедительное решение, которое заслуженно имеет значительную динамику. Для полноты картины я призываю вас рассмотреть другие изменения, которые могут потребоваться Prometheus, когда вы решите, подходит ли вам переход с существующего решения. Это будет одно из многих изменений, к которым вы должны быть готовы.

Я не знаю, почему разработчики Prometheus пошли по пути, который они сделали с конфигурацией, но я дам вам одно преимущество модели. Требуя, чтобы конфигурация была записана в файлах конфигурации (YAML), вы можете зафиксировать эти конфигурации в системе управления версиями и управлять изменениями в этих файлах так же, как и с другими источниками. Это принцип «Инфраструктура как код», и у этого есть много преимуществ.

Теперь верно и то, что инструмент UI Console может записывать изменения в файлы конфигурации за вас, и затем вы можете управлять этими файлами, используя систему управления версиями, как и раньше. Но эта функция недоступна в основном решении.

Одна из возможностей, которая может вас заинтересовать, заключается в том, что вам не нужно перезапускать prometheus или alertmananger, когда вы вносите изменения в их конфигурацию. Вы можете изменить конфигурацию, а затем POST на /-/reload конечную точку службы, и служба обновит конфигурацию.

Видеть:

https://prometheus.io/docs/prometheus/latest/configuration/configuration/ https://prometheus.io/docs/alerting/configuration/

Также см. Эту полезную статью, в которой объясняется, как Prometheus автоматически обновляет свою конфигурацию при внесении изменений в список целей:

https://www.robustperception.io/using-json-file-service-discovery-with-prometheus

person DazWilkin    schedule 22.03.2019
comment
Спасибо за Ваш ответ. Инфраструктура как код великолепна, и я иду по этому пути в других инструментах, таких как Ansible и Terraform, но есть некоторые инструменты, которые, я думаю, можно рассматривать как черный ящик и просто регулярно создавать резервные копии их конфигурации традиционными способами, а не системой управления версиями. В любом случае, идя по этому пути файлов конфигурации, я думаю, что одной из основных функций должна быть возможность разделить конфигурацию на несколько файлов с импортом и включением, чтобы избежать одного огромного файла конфигурации. - person roeezab; 22.03.2019
comment
Просто кажется, что некоторые функции Prometheus были разработаны для мониторинга очень маленькой системы. Еще одна вещь, с которой мне трудно справиться, - это поиск по всем показателям. В Graphite, например, для этого есть дерево. В AWS CloudWatch у вас есть пространства имен, и очень легко начать поиск показателей для вашего сервиса. Жаль, потому что Prometheus может быть отличным инструментом для мониторинга, но ему не хватает основных функций для поддержки мониторинга больших систем. - person roeezab; 22.03.2019