mamonsu
mamonsu — агент мониторинга для сбора метрик операционной системы и Postgres Pro
Синтаксис
mamonsu agent [действие_агента]
mamonsu bootstrap -M [пользователь_mamonsu-c | --config] [-x | --create-extensions] [параметры_подключения]
mamonsu export {template | config} имя_файла [параметры_экспорта]
mamonsu report [параметры_отчёта] [параметры_подключения]
mamonsu tune [параметры_оптимизации] [параметры_подключения]
mamonsu upload [параметры_передачи]
mamonsu zabbix dashboard upload имя_шаблона
mamonsu zabbix {template | host | hostgroup} действие_сервера
mamonsu zabbix item {error | lastvalue | lastclock} ид_узла
mamonsu zabbix version
mamonsu [-c | --config] [-d | --daemonize]
mamonsu --version
mamonsu --help
Описание
Приложение mamonsu представляет собой агент мониторинга, собирающий метрики Postgres Pro и системы, которые можно визуализировать на сервере Zabbix. В отличие от стандартного Zabbix Agent, который тоже можно настроить для сбора метрик Postgres Pro, mamonsu использует одно подключение к базе данных, что позволяет минимизировать влияние на целевую систему.
Агент mamonsu включает следующие компоненты:
Руководящий процесс, наблюдающий за активностью системы и базы данных.
Модули, определяющие, какие метрики Postgres Pro и системы будут собираться.
Файлы конфигурации и шаблона, в которых определяется, какие модули будут использоваться и как будут представляться собранные данные.
mamonsu является активным агентом, что означает, что он передаёт серверу Zabbix данные сразу, по мере их сбора. В mamonsu имеется набор готовых метрик для мониторинга Postgres Pro и системы, но вы можете разработать и дополнительные модули для сбора других интересующих вас метрик.
В mamonsu также реализован интерфейс командной строки для управления некоторыми параметрами сервера Zabbix, для получения общего представления о конфигурации целевой системы, а также для оптимизации параметров Postgres Pro и системы «на лету». Список всех команд mamonsu приведён в Разделе «Справка по командной строке».
Установка и подготовка
Важно
Перед началом установки рекомендуется внимательно ознакомиться с Замечаниями о совместимости.
Для использования mamonsu вы должны создать учётную запись Zabbix и настроить сервер Zabbix, как описано в документации Zabbix. Естественно, если вы планируете наблюдать за метриками Postgres Pro, у вас должен работать экземпляр Postgres Pro. Если вам нужны инструкции по установке и настройке кластера Postgres Pro, обратитесь к Главе 17 и Разделу 18.2.
Примечание
Тогда как метрики Postgres Pro mamonsu может собирать с удалённого кластера, метрики системы собираются только локально. Поэтому если вы решите собирать метрики удалённого экземпляра Postgres Pro, во избежание путаницы обязательно отключите системные метрики, иначе оба набора будут представлены в Zabbix как метрики одного узла.
Приложение mamonsu поставляется вместе с Postgres Pro Enterprise в виде отдельного предварительно собранного пакета mamonsu (подробные инструкции по установке приведены в Главе 17). Завершив установку mamonsu, выполните следующие действия, чтобы начать сбор метрик:
По желанию произведите специальную подготовку mamonsu
Если вы опустите этот этап, метрики можно будет собирать только с правами суперпользователя, что не рекомендуется.
На этом этапе команда
bootstrapзадаёт пользователя mamonsu, создаёт схемуmamonsuв базе данных, заданной явно или по умолчанию, а также расширения и объекты, необходимые для мониторинга.Команда
bootstrapне имеет обязательных параметров. При запуске без параметров она берёт необходимые значения из файла конфигурации (по умолчанию —/etc/mamonsu/agent.conf). Ниже приведён простой пример подготовительной процедуры:В разделе
[postgres]файлаagent.confукажите параметры подключения для кластера Postgres Pro, за которым вы собираетесь наблюдать. За дополнительными сведениями обратитесь к разделу Параметры подключения.Выполните следующую команду для подготовки mamonsu:
mamonsu bootstrap
Эта команда создаст пользователя
mamonsuс паролемmamonsu, а также функции мониторинга в базе данных, указанной вagent.conf, и предоставит право выполнять их пользователюmamonsu.
В следующем примере параметры
bootstrapпередаются явно.Создайте непривилегированного пользователя базы данных для mamonsu. Например:
CREATE USER mamonsu_user WITH PASSWORD 'mamonsu_password'; GRANT pg_monitor TO mamonsu_user;
Создайте базу данных, которая будет применяться для установления подключения к Postgres Pro. Например:
CREATE DATABASE mamonsu_database OWNER mamonsu_user;
Выполните следующую команду для подготовки mamonsu:
mamonsu bootstrap -M mamonsu_user -x -c /etc/mamonsu/agent.conf -d mamonsu_database -U postgres --host myhost --port 5432
Для получения подробной информации о параметрах
-M,-xи-cсм.bootstrap. За дополнительными сведениями о других параметрах обратитесь к разделу Параметры подключения. Эта команда создаст функции мониторинга вбазе_mamonsuи предоставит право выполнять ихпользователю_mamonsu. Кроме того, будет создано расширение pg_buffercache, позволяющее собирать метрики общего кеша буферов. При этом задаётся другой путь к файлу конфигурации.
В результате суперпользователь не требуется для дальнейших подключений. Обратите внимание, что в этой базе данных создаётся несколько таблиц в схеме
mamonsu. Не удаляйте эти таблицы, так как они необходимы для работы mamonsu.Настройте mamonsu
Отредактируйте конфигурационный файл
agent.conf, по умолчанию размещённый в каталоге/etc/mamonsu/.Настройте параметры, связанные с Zabbix. Значение
addressдолжно указывать на работающий сервер Zabbix, а в полеclientдолжно задаваться имя узла Zabbix. Узлы, доступные для вашей учётной записи Zabbix, вы можете увидеть в его веб-интерфейсе на странице (Настройка) > (Узлы сети).[zabbix] ; включён по умолчанию enabled =
Trueclient =имя_узла_zabbixaddress =сервер_zabbixПо умолчанию mamonsu будет собирать и метрики Postgres Pro, и системные метрики. При необходимости вы можете запретить сбор метрик первого или второго типа, установив в файле
agent.confдля параметраenabledзначениеFalseв разделе[postgres]или[system], соответственно.[system] ; включён по умолчанию enabled = True
Примечание
Тогда как метрики Postgres Pro mamonsu может собирать с удалённого кластера, метрики системы собираются только локально. Поэтому если вы решите собирать метрики удалённого экземпляра Postgres Pro, во избежание путаницы обязательно отключите системные метрики, иначе оба набора будут представлены в Zabbix как метрики одного узла.
Если вы будете собирать метрики Postgres Pro, необходимо задать параметры подключения к кластеру Postgres Pro, за которым вы намерены наблюдать. Для этого задайте в полях
user,passwordиdatabaseсоответственно имя пользователя (mamonsu_user), пароль (mamonsu_password) и базу данных (mamonsu_database), указанные при подготовке. Если вы пропустили подготовительную процедуру, задайте имя и пароль суперпользователя, а также целевую базу.[postgres] ; включён по умолчанию enabled = True user =
пользователь_mamonsudatabase =база_mamonsupassword =пароль_mamonsuport = 5432
Это базовые параметры, позволяющие начать использование mamonsu. Кроме них можно настроить и другие параметры mamonsu, описанные в Разделе «Параметры конфигурации».
Настройте представление метрик на сервере Zabbix
Создайте шаблон, определяющий, как будут представляться собранные метрики на сервере Zabbix:
mamonsu export template template.xml
mamonsu формирует файл шаблона
template.xmlв текущем каталоге. По умолчанию отображаемым в Zabbix именем шаблона будетPostgresPro-, гдеOSOS— название вашей операционной системы. Чтобы получить шаблон с другим отображаемым именем, в показанную выше команду можно добавить аргумент--template-name.При желании укажите учётные данные в Zabbix в следующих переменных окружения в той системе, где настраивается мониторинг:
Задайте в переменных
ZABBIX_USERиZABBIX_PASSWDимя и пароль вашей учётной записи Zabbix, соответственно.Задайте в переменной
ZABBIX_URLадресhttp://zabbix/
Если этого не сделать, вам нужно будет указывать следующие параметры при каждом вызове любой подкоманды
mamonsu zabbix:--url=http://zabbix/ --user=
имя_пользователя_zabbix--password=пароль_пользователя_zabbixЗагрузите шаблон
template.xmlна сервер Zabbix.mamonsu zabbix template export template.xml
Шаблон также можно загрузить через веб-интерфейс Zabbix: воспользуйтесь своей учётной записью в Zabbix и перейдите на страницу Templates (Шаблоны) > Import (Импорт).
Привяжите полученный шаблон к узлу, за которым будете наблюдать.
Для этого в веб-интерфейсе Zabbix выберите нужный узел, перейдите на страницу Templates (Шаблоны) > Add (Добавить), выберите шаблон и затем щёлкните Update (Обновить).
Подсказка
Если вы хотите связать шаблон с создаваемым узлом в Zabbix, вы можете сделать это в командной строке, используя команды
mamonsu zabbix. Подробнее это описывается в Подразделе «Управление параметрами сервера Zabbix в командной строке».
Завершив настройку, запустите mamonsu. Например, в системах Linux вы можете запустить mamonsu в виде службы так:
service mamonsu start
mamonsu считывает все параметры из файла конфигурации mamonsu и начинает мониторинг системы.
Справка по командной строке
agent
Синтаксис:
mamonsu agent { metric-list | metric-get имя_метрики | version }Предоставлять информацию о собираемых метриках из командной строки. Вы можете задать одно из следующих действий:
metric-listВывести список метрик, которые собирает mamonsu. Вывод этой команды включает ключ метрики, её последнее значение и время получения этого значения.
metric-getимя_метрикиПолучить последнее значение указанной метрики. Список доступных метрик можно получить с помощью команды
metric-list.versionВывести версию mamonsu.
bootstrap
Синтаксис:
mamonsu bootstrap -Mимя пользователя[-c[файл конфигурации] | --config[=файл конфигурации]] [-x | --create-extensions] [параметры подключения]
Подготовить mamonsu к работе. Данная команда может принимать следующие параметры:
-MЗадаёт имя пользователя, который будет владеть всеми процессами mamonsu. Указанный пользователь не должен быть привилегированным.
-cфайл_конфигурации--config=файл_конфигурацииЗадаёт файл
agent.conf, в котором раздел[postgres]содержит имя базы данных, которое будет использоваться, если параметр--dbnameне указан среди.параметров подключенияЗначение по умолчанию:
/etc/mamonsu/agent.conf-x--create-extensionsСоздаёт вспомогательные расширения. Будет создано расширение pg_buffercache, которое больше не создаётся по умолчанию. Для Postgres Pro версии 12 или выше команда
bootstrapсоздаст функции для работы с pgpro_stats и предоставит права на их выполнение пользователю-xmamonsu.параметры_подключенияНеобязательные параметры подключения, задаваемые в командной строке.
export
Синтаксис:
mamonsu export configимя_файла.conf [--add-plugins=каталог_модулей] mamonsu export templateимя_файла.xml [--add-plugins=каталог_модулей] [--template-name=имя_шаблона] [--application=имя_приложения] [--old-zabbix]
Сгенерировать файл конфигурации или файл шаблона для набора метрик. Для настройки набора метрик можно передать дополнительные параметры:
--add-plugins=каталог_модулейСобирать метрики, определённые в дополнительных модулях, расположенных в заданном
каталоге_модулей. Если вы будете использовать какие-либо дополнительные модули, этот параметр нужно передавать при формировании файла конфигурации и шаблона.--template-name=имя_шаблонаЗадаёт название шаблона, которое будет отображаться на сервере Zabbix.
Значение по умолчанию:
PostgresPro-, гдеOSOS— название вашей операционной системы--application=имя_приложенияЗадаёт идентификатор, с которым собранные метрики будут отображаться на сервере Zabbix.
Значение по умолчанию:
App-PostgresPro-, гдеOSOS— название вашей операционной системы--old-zabbixЭкспортировать шаблон для сервера Zabbix версии 4.2 или старее. По умолчанию шаблон генерируется в формате, совместимом с Zabbix 4.4 и новее.
export zabbix-parameters
Синтаксис:
mamonsu export zabbix-parametersимя_файла.conf [--add-plugins=каталог_модулей] [--plugin-type={pg | sys | all}] [--pg-version=версия] [--config=файл_конфигурации]
Экспортировать конфигурацию метрик для использования со стандартным агентом Zabbix. Для настройки сбора метрик можно передать дополнительные параметры:
--add-plugins=каталог_модулейСобирать метрики, определённые в дополнительных модулях, расположенных в заданном
каталоге_модулей. Если вы будете использовать какие-либо дополнительные модули, этот параметр нужно передавать при формировании файла конфигурации и шаблона.--plugin-type={pg | sys | all}Типы метрик, которые должны собираться:
pg— метрики Postgres Pro.sys— системные метрики.all— все метрики.
По умолчанию:
all--pg-version=версияЗадаёт основную версию сервера, для которого будет настраиваться набор метрик. Программа
mamonsuможет собирать метрики во всех поддерживаемых версиях Postgres Pro, а также в PostgreSQL, начиная с версии 9.5.Значение по умолчанию:
10--config=файл_конфигурацииЗадаёт путь к файлу
agent.conf, который будет источником определений метрик.Значение по умолчанию:
/etc/mamonsu/agent.conf
export zabbix-template
Синтаксис:
mamonsu export zabbix-templateимя_файла.conf [--add-plugins=каталог_модулей] [--plugin-type={pg | sys | all}] [--template-name=имя_шаблона] [--application=имя_приложения] [--config=файл_конфигурации] [--old-zabbix]
Экспортировать шаблон для использования со стандартным агентом Zabbix. Для настройки конфигурации можно передать дополнительные параметры:
--add-plugins=каталог_модулейСобирать метрики, определённые в дополнительных модулях, расположенных в заданном
каталоге_модулей. Если вы будете использовать какие-либо дополнительные модули, этот параметр нужно передавать при формировании файла конфигурации и шаблона.--plugin-type={pg | sys | all}Типы метрик, которые должны собираться:
pg— метрики Postgres Pro.sys— системные метрики.all— все метрики.
По умолчанию:
all--template-name=имя_шаблонаЗадаёт название шаблона, которое будет отображаться на сервере Zabbix.
Значение по умолчанию:
PostgresPro-, гдеOSOS— название вашей операционной системы--application=имя_приложенияЗадаёт идентификатор, с которым собранные метрики будут отображаться на сервере Zabbix.
Значение по умолчанию:
App-PostgresPro-, гдеOSOS— название вашей операционной системы--config=файл_конфигурацииЗадаёт путь к файлу
agent.conf, который будет источником определений метрик.Значение по умолчанию:
/etc/mamonsu/agent.conf--old-zabbixЭкспортировать шаблон для сервера Zabbix версии 4.2 или старее. По умолчанию шаблон генерируется в формате, совместимом с Zabbix 4.4 и новее.
report
Синтаксис:
mamonsu report [--run-system=логическое_значение] [--run-postgres=логическое_значение] [--print-report=логическое_значение] [--report-path=файл_отчёта] [--disable-sudo] [параметры_подключения]
Выдать подробный отчёт об оборудовании, операционной системе, использовании памяти и других характеристиках объекта мониторинга, а также конфигурацию Postgres Pro.
Отчёт настраивается с помощью следующих необязательных параметров:
--run-system=логическое_значениеВключить в генерируемый отчёт информацию о системе.
По умолчанию:
True(вкл.)--run-postgres=логическое_значениеВключить в генерируемый отчёт информацию о Postgres Pro.
По умолчанию:
True(вкл.)--print-report=логическое_значениеВывести отчёт в stdout.
По умолчанию:
True(вкл.)--report-path=файл_отчётаВывести отчёт в указанный файл.
Путь по умолчанию:
/tmp/report.txt--disable-sudoСобирать при формировании отчёта только те данные, для получения которых не нужны права суперпользователя. Этот режим поддерживается только в системах Linux.
параметры_подключенияНеобязательные параметры подключения, задаваемые в командной строке.
tune
Синтаксис:
mamonsu tune [--dry-run] [--disable-sudo] [--log-level {INFO|DEBUG|WARN}]
[--dont-tune-pgbadger] [--dont-reload-postgresql]
[параметры_подключения]Оптимизировать конфигурацию Postgres Pro и системы, исходя из собранной статистики. Настроить оптимизацию позволяют следующие параметры:
--dry-runВывести параметры конфигурации системы и Postgres Pro, которые будут настроены, но не изменять их фактически.
--disable-sudoОптимизировать только те параметры, для изменения которых не нужны права суперпользователя. Этот режим поддерживается только в системах Linux.
--dont-tune-pgbadgerНе оптимизировать параметры pgbadger.
--log-level { INFO | DEBUG | WARN}Изменить уровень детализации сообщений.
Значение по умолчанию:
INFO--dont-reload-postgresqlНе допустить выполнения приложением mamonsu функции
pg_reload_conf(). В этом случае изменения некоторых параметров, которые вступают в силу только после перезагрузки конфигурации Postgres Pro, не начнут действовать немедленно.параметры_подключенияНеобязательные параметры подключения, задаваемые в командной строке.
upload
Синтаксис:
mamonsu upload [--zabbix-file=файл_метрик] [--zabbix-address=адрес_zabbix] [--zabbix-port=порт] [--zabbix-client=имя_узла_zabbix] [--zabbix-log-level={INFO|DEBUG|WARN}]
Передать данные метрик, ранее сохранённые в файле, на сервер Zabbix для визуализации. Более подробно получение файла метрик рассматривается в Подразделе «Параметры вывода».
Эта команда может принимать следующие параметры:
--zabbix-address=адрес_zabbixАдрес сервера Zabbix.
Значение по умолчанию:
localhost--zabbix-port=портПорт сервера Zabbix.
Значение по умолчанию: 10051
--zabbix-file=файл_метрикИмя текстового файла с метриками, которые можно визуализировать, например
localhost.log.--zabbix-client=имя_узла_zabbixИмя узла в Zabbix.
Значение по умолчанию:
localhost--zabbix-log-level={INFO|DEBUG|WARN}Изменить уровень детализации сообщений.
Значение по умолчанию:
INFO
zabbix dashboard upload
Синтаксис:
mamonsu dashboard upload имя_шаблонаЗагрузить панель Zabbix с метриками mamonsu в шаблон на сервере Zabbix версии 6.0 или выше.
zabbix item
Синтаксис:
mamonsu zabbix item {error | lastvalue | lastclock } имя_узлаПросмотреть заданное свойство последних метрик, полученных сервером Zabbix для указанного узла.
zabbix version
Синтаксис:
mamonsu zabbix version
Получить версию сервера Zabbix, к которой подключён агент mamonsu.
zabbix host
Синтаксис:
mamonsu zabbix host list mamonsu zabbix host showимя_узлаmamonsu zabbix host idимя_узлаmamonsu zabbix host deleteид_узлаmamonsu zabbix host createимя_узлаид_группы_узловид_шаблонаадрес_mamonsumamonsu zabbix host info {templates | hostgroups | graphs | items}ид_узла
Позволяет управлять узлами Zabbix, выполняя одно из действий, описанных в Подразделе «Управление сервером Zabbix».
zabbix hostgroup
Синтаксис:
mamonsu zabbix hostgroup list mamonsu zabbix hostgroup showимя_группы_узловmamonsu zabbix hostgroup idимя_группы_узловmamonsu zabbix hostgroup deleteид_группы_узловmamonsu zabbix hostgroup createимя_группы_узлов
Позволяет управлять группами узлов Zabbix, выполняя одно из действий, описанных в Подразделе «Управление сервером Zabbix».
zabbix template
Синтаксис:
mamonsu zabbix template list mamonsu zabbix template showимя_шаблонаmamonsu zabbix template idимя_шаблонаmamonsu zabbix template deleteид_шаблонаmamonsu zabbix template exportфайл
Позволяет управлять шаблонами Zabbix, выполняя одно из действий, описанных в Подразделе «Управление сервером Zabbix».
[--config] [--daemonize]
Синтаксис:
mamonsu [-cфайл конфигурации| --config=файл конфигурации] [-d | --daemonize]
Запустить в качестве агента мониторинга на переднем плане или в фоновом режиме, используя параметры, загруженные из файла конфигурации. Если указанный файл конфигурации или стандартный файл конфигурации не существует, завершиться с ошибкой. Полезно для отладки. Принимаются следующие параметры:
-cфайл_конфигурации--config=файл_конфигурацииЗадаёт файл
agent.confдля загрузки параметров конфигурации.Значение по умолчанию:
/etc/mamonsu/agent.conf-d--daemonizeЗапустить в фоновом режиме. Без этого указания mamonsu будет работать на переднем плане.
--version
Синтаксис:
mamonsu --version
Вывести версию mamonsu.
--help
Синтаксис:
mamonsu --help
Вывести справку по параметрам командной строки mamonsu.
Параметры подключения
При вызове вышеуказанных команд параметры_подключения в командной строке задают параметры подключения к целевому кластеру Postgres Pro. параметры_подключения могут содержать аргументы --host, --port, --dbname (-d), --username (-U), и --password (-W). В аргументе --dbname (-d) должна указываться mamonsu_database, созданная для наблюдения. Заметьте, что в аргументе --username (-U) необходимо передать имя суперпользователя в данном кластере.
Если вы не зададите параметры_подключения, mamonsu будет использовать соответствующие параметры из файла конфигурации.
Управление сервером Zabbix
Используя mamonsu, вы можете управлять некоторой функциональностью Zabbix из командной строки. А именно, вы можете создавать или удалять узлы и группы узлов Zabbix, а также генерировать, импортировать и удалять шаблоны Zabbix с помощью описанных ниже команд. В них имя_объекта должно соответствовать типу объекта Zabbix в команде: template (шаблон), host (узел) или hostgroup (группа узлов).
listВывести список доступных шаблонов, узлов или групп узлов.
showимя_объектаВывести информацию об указанном шаблоне, узле или группе узлов.
idимя_объектаПоказать идентификатор заданного объекта, назначаемый автоматически сервером Zabbix.
deleteид_объектаУдалить объект с заданным идентификатором.
createимя_группы_узловcreateимя_узлаид_группы_узловид_шаблонаадрес_mamonsuСоздать новый узел или группу узлов.
exportимя_шаблонаСформировать шаблон Zabbix.
info {templates | hostgroups | graphs | items}ид_узлаВывести подробную информацию о шаблонах, группах узлов, графиках и метриках, связанных с узлом с заданным идентификатором.
Параметры конфигурации
Файл конфигурации agent.conf по умолчанию располагается в каталоге /etc/mamonsu. Он содержит несколько групп параметров, определяющих, какие метрики собирать и как выводить собранные данные:
Все параметры должны задаваться в формате .параметр = значение
Параметры подключения агента
[postgres]
В разделе [postgres] настраивается сбор метрик Postgres Pro и могут содержаться следующие параметры:
enabledВключает/отключает сбор метрик Postgres Pro при значении, равном
TrueилиFalse, соответственно.По умолчанию:
True(вкл.)userПользователь, от имени которого будут запускаться процессы наблюдения за кластером. Это должен быть пользователь mamonsu, заданный при подготовке, либо суперпользователь, если команда
bootstrapне запускалась.Имя по умолчанию:
postgrespasswordПароль указанного пользователя.
databaseБаза данных, через подключение к которой будут собираться метрики.
Имя по умолчанию:
postgreshostАдрес сервера базы данных.
Значение по умолчанию:
localhostportЦелевой порт на сервере.
Значение по умолчанию: 5432
application_nameИмя приложения, идентифицирующее процесс mamonsu, выполняющийся в кластере Postgres Pro.
Значение по умолчанию:
mamonsuquery_timeoutЗначение statement_timeout для сеанса mamonsu, в секундах. Если запрос метрики Postgres Pro не успевает выполниться за указанное время, он прерывается.
Значение по умолчанию: 10
Также вместо параметров конфигурации можно использовать следующие переменные среды: PGUSER, PGPASSWORD, PGHOST, PGDATABASE, PGPORT и PGAPPNAME. За подробным описанием этих переменных обратитесь к Разделу 36.15 для их значения.
[system]
В разделе [system] настраивается сбор системных метрик и могут содержаться следующие параметры:
enabledВключает/отключает сбор системных метрик при значении, равном
TrueилиFalse, соответственно.По умолчанию:
True(вкл.)
[zabbix]
В разделе [zabbix] настраиваются свойства подключения к серверу Zabbix и могут содержаться следующие параметры:
enabledВключает/отключает передачу собранных метрик на сервер Zabbix при значении, равном
TrueилиFalse, соответственно.По умолчанию:
True(вкл.)clientИмя узла в Zabbix.
addressАдрес сервера Zabbix.
Значение по умолчанию: 127.0.0.1
portПорт сервера Zabbix.
Значение по умолчанию: 10051
timeoutМаксимальное время ожидания при подключении к серверу Zabbix (в секундах).
Значение по умолчанию: 15
[agent]
В разделе [agent] задаётся расположение службы mamonsu и включается возможность обращения к метрикам в командной строке:
enabledВключает/отключает сбор метрик в командной строке с помощью команды
agent.По умолчанию:
True(вкл.)hostАдрес системы, в которой работает mamonsu.
Значение по умолчанию: 127.0.0.1
portПорт, через который mamonsu принимает соединения.
Значение по умолчанию: 10052
[sender]
В разделе [sender] определяется размер очереди, в которой накапливаются данные, прежде чем они передаются серверу Zabbix:
queueМаксимальное количество собранных значений метрик, которое может накапливаться локально, прежде чем mamonsu передаст их на сервер Zabbix. После передачи накопленных данных очередь очищается.
Значение по умолчанию: 2048
Параметры вывода
[metric_log]
В разделе [metric_log] настраивается сохранение собранных значений метрик в локальных текстовых файлах. Этот раздел может содержать следующие параметры:
enabledВключает/отключает сохранение собранных значений метрик в текстовом файле. Если этот параметр равен
True, mamonsu создаёт файлlocalhost.logдля сохранения значений метрик.Значение по умолчанию:
FalsedirectoryУказывает каталог, в котором будут сохраняться данные метрик.
Каталог по умолчанию:
/var/log/mamonsumax_size_mbМаксимальный размер файла метрик, в мегабайтах. По достижении заданного размера этот файл переименовывается в
localhost.log.archive, и создаётся новый файлlocalhost.log.Значение по умолчанию: 1024
[log]
В разделе [log] настраивается запись сообщений в журнал mamonsu и могут содержаться следующие параметры:
fileЗадаёт имя файла журнала; может также задавать полный путь.
levelЗадаёт уровень отладки. Этот параметр может принимать значение
DEBUG,ERRORилиINFO.Значение по умолчанию:
INFOformatФормат записываемых сообщений.
Значение по умолчанию:
[%(asctime)s] %(asctime)s - %(name)s - %(message)sЗдесь
levelname— уровень важности сообщения,asctime— текущее время,name— имя модуля, выдавшего это сообщение (либоroot, если сообщение выдано не модулем), иmessage— собственно текст сообщения.
Параметры модулей
[plugins]
В разделе [plugins] описываются дополнительные модули, осуществляющие сбор метрик, и могут содержаться следующие параметры:
enabledВключает/отключает дополнительные модули, осуществляющие сбор метрик, при значении равном
TrueилиFalse, соответственно.Значение по умолчанию:
FalsedirectoryЗадаёт каталог, содержащий дополнительные модули. При значении, равном
None, использование дополнительных модулей отключается.Значение по умолчанию:
/etc/mamonsu/plugins
Если вы хотите настроить модуль, который вы дополнительно добавили в mamonsu после установки, для него нужно добавить раздел параметров в файл agent.conf.
Синтаксис, которому должен соответствовать этот раздел, показан в примере в Подразделе «Разделы отдельных модулей».
Разделы отдельных модулей
Все встроенные модули устанавливаются в составе mamonsu. Чтобы настроить такой модуль, найдите соответствующий ему раздел под заголовком Individual Plugin Sections (Разделы отдельных модулей) и измените значения параметров:
enabledВключает/отключает встроенные модули при значении равном
TrueилиFalseсоответственно. Эти значения чувствительны к регистру.Значение по умолчанию:
FalseintervalУказывает интервал работы модуля в секундах. Параметр задаётся целым числом. Можно установить разные интервалы для разных модулей. Для модулей, собирающих метрики PostgreSQL/Postgres Pro, например autovacuum, checkpoint и т. д., это интервал, в течение которого mamonsu обращается к экземпляру Postgres Pro для сбора метрик. Для системных модулей, например diskstats, memory и т. д., это интервал, в течение которого осуществляется обращение к операционной системе. Для служебных модулей, например agentapi, logsender, zbxsender, это интервал, в течение которого вызываются их функции. Обратите внимание, что параметр
intervalмодуля zbxsender связан с параметромtimeoutраздела[zabbix]. Максимальное время ожидания ответа сервера Zabbix, превышающее интервал работы модуля, может привести к неправильному поведению модуля zbxsender: модуль перезапускается с сообщением об ошибке, если подключение или передача данных занимают больше времени, чем значение, указанное в параметреinterval.Значение по умолчанию: 60
В следующем примере показаны разделы, соответствующие встроенным модулям preparedtransaction и pgprobackup:
[preparedtransaction] max_prepared_transaction_time = 60 interval = 60 [pgprobackup] enabled = false interval = 300 backup_dirs = /backup_dir1,/backup_dir2 pg_probackup_path = /usr/bin/pg_probackup-11
[preparedtransaction]
Этот модуль получает возраст старейшей подготовленной транзакции в секундах, а также число всех транзакций, подготовленных для двухфазной фиксации. За дополнительными сведениями обратитесь к PREPARE TRANSACTION и Разделу 56.17.
Параметр max_prepared_transaction_time задаёт в секундах пороговое значения для возраста подготовленной транзакции.
Данный модуль собирает две метрики: pgsql.prepared.count (число подготовленных транзакций) и pgsql.prepared.oldest (возраст старейшей подготовленной транзакции в секундах).
Если значение pgsql.prepared.oldest превышает порог, заданный параметром max_prepared_transaction_time, срабатывает триггер со следующим сообщением: «PostgreSQL prepared transaction is too old on {host}» (Слишком старая подготовленная транзакция PostgreSQL на {узел}).
[pgprobackup]
Этот модуль обращается к программе pg_probackup для отслеживания состояния её резервных копий, а также вычисляет объём каталогов, в которых хранятся все файлы копий.
Заметьте, что этот модуль подсчитывает общий объём всех файлов в целевом каталоге. Убедитесь в том, что в целевой каталог не попадают посторонние файлы.
Параметр backup_dirs задаёт разделённый запятыми список путей к каталогам, для которых будут собираться метрики.
Параметр pg_probackup_path задаёт путь к программе pg_probackup.
По умолчанию этот модуль отключён. Чтобы включить его, задайте для параметра enabled значение True.
Данный модуль собирает две метрики: pg_probackup.dir.size[#каталог_копий] (объём целевого каталога) и pg_probackup.dir.error[#каталог_копий] (ошибки копий) для каждого указанного каталога_копий.
Если какая-либо копия имеет ошибочное состояние, например ERROR, CORRUPT, ORPHAN, этот модуль вызывает срабатывание триггера.
Использование
Сбор и просмотр метрик
Сразу после запуска mamonsu начинает сбор метрик системы и Postgres Pro. Команда agent позволяет в реальном времени получать текущие значения собираемых метрик в командной строке.
Чтобы просмотреть список имеющихся метрик, воспользуйтесь командой agent metric-list:
mamonsu agent metric-list
Вывод этой команды включает ключ метрики, её последнее значение и время получения этого значения. Например:
system.memory[active] 7921004544 1564570818 system.memory[swap_cache] 868352 1564570818 pgsql.connections[idle] 6.0 1564570818 pgsql.archive_command[failed_trying_to_archive] 0 1564570818
Чтобы просмотреть текущее значение определённой метрики, воспользуйтесь командой agent metric-get:
mamonsu agent metric-get имя_метрики Здесь имя_метрики — ключ интересующей вас метрики, представленный в выводе команды metric-list. Например: pgsql.connections[idle].
Вы можете просмотреть графики собранных метрик в веб-интерфейсе Zabbix в разделе (Графики). Подробнее об использовании Zabbix рассказывается в его официальной документации по адресу https://www.zabbix.com/documentation/current/manual.
Если вы решили сохранять все собираемые метрики в файле как описано в «Параметры вывода», собранные метрики можно передать на сервер Zabbix для визуализации, воспользовавшись командой upload.
Добавление дополнительных модулей
Вы можете расширить функциональность mamonsu, добавив собственные дополнительные модули следующим образом:
Сохраните все нужные вам дополнительные модули в одном каталоге, например, в
/etc/mamonsu/plugins.Убедитесь в том, что этот каталог указан в файле конфигурации в разделе
[plugins]:[plugins] directory = /etc/mamonsu/plugins
Сгенерируйте новый шаблон Zabbix, включающий информацию дополнительных модулей:
mamonsu export template template.xml --add-plugins=/etc/mamonsu/plugins
Загрузите сгенерированный
template.xmlна сервер Zabbix, как описано в Разделе «Установка и подготовка».
Оптимизация конфигурации Postgres Pro и системы
В зависимости от собранных значений метрик, mamonsu может настроить конфигурацию Postgres Pro и системы для оптимальной производительности.
Вы можете получить подробную информацию об оборудовании, операционной системе, использовании памяти и других характеристиках объекта мониторинга, а также конфигурацию Postgres Pro, выполнив команду:
mamonsu report
Чтобы только просмотреть предлагаемые для оптимизации изменения, но не применять их, запустите команду tune с ключом --dry-run:
mamonsu tune --dry-run
Чтобы предлагаемые изменения были применены, запустите команду tune без каких-либо параметров:
mamonsu tune
Вы можете исключить некоторые параметры из отчёта или отключить некоторые методы оптимизации, передав дополнительные аргументы. Полный список аргументов команд report и tune приведён в Разделе «Справка по командной строке».
Управление параметрами сервера Zabbix в командной строке
Приложение mamonsu позволяет работать с сервером Zabbix, используя командную строку. В частности, вы можете загружать файлы шаблонов на сервер Zabbix, создавать и удалять узлы и группы узлов Zabbix, привязывать шаблоны к узлам и получать последние значения метрик.
Чтобы настроить узел мониторинга в Zabbix с самого начала, вы можете выполнить следующие действия:
При желании укажите учётные данные в Zabbix в следующих переменных окружения в той системе, где настраивается мониторинг:
Задайте в переменных
ZABBIX_USERиZABBIX_PASSWDимя и пароль вашей учётной записи Zabbix, соответственно.Задайте в переменной
ZABBIX_URLадресhttp://zabbix/
Если этого не сделать, вам нужно будет указывать следующие параметры при каждом вызове любой подкоманды
mamonsu zabbix:--url=http://zabbix/ --user=
имя_пользователя_zabbix--password=пароль_пользователя_zabbixСгенерируйте новый файл шаблона и загрузите его на сервер Zabbix:
mamonsu export template template.xml mamonsu zabbix template export template.xml
Создайте новую группу узлов:
mamonsu zabbix hostgroup create
имя_группы_узловОпределите идентификаторы созданной группы и загруженного шаблона, назначаемые автоматически сервером Zabbix:
mamonsu zabbix hostgroup id
имя_группы_узловmamonsu zabbix template idимя_шаблонаСоздайте узел, связанный с этой группой, и привяжите к нему загруженный шаблон с помощью одной команды:
mamonsu zabbix host create
имя_узлаид_группы_узловид_шаблонаадрес_mamonsuЗдесь
имя_узла— имя создаваемого узла,ид_группы_узловиид_шаблона— уникальные идентификаторы, полученные на предыдущем шаге, аmamonsu_address— IP-адрес системы, в которой работает mamonsu.
Создав узел в Zabbix, произведите настройку целевой системы, как описано в Разделе «Установка и подготовка».
Экспорт метрик для стандартного агента Zabbix
Используя mamonsu, вы можете преобразовать определения метрик системы и Postgres Pro в формат, который поддерживает стандартный агент Zabbix.
В настоящее время эта функциональность имеет следующие ограничения:
В Windows экспорт метрик
mamonsuне поддерживается.Определения метрик входящего в Postgres Pro Enterprise расширения
pg_wait_samplingи механизма CFS не преобразуются.
Важно
Для работы с прокси Zabbix необходимо экспортировать все параметры в формат, который поддерживается стандартным агентом Zabbix.
Чтобы использовать агент Zabbix для сбора метрик mamonsu, выполните следующее:
Сгенерируйте файл конфигурации, совместимый со стандартным агентом Zabbix, и поместите его в
/etc/zabbix/zabbix_agent.d/. Вы можете добавить нужный путь перед именем файла:mamonsu export zabbix-parameters /etc/zabbix/zabbix_agent.d/zabbix_agent.conf
Все имеющиеся параметры команды
export zabbix-parametersописаны в Разделе «Справка по командной строке».Сгенерируйте шаблон для стандартного агента Zabbix:
mamonsu export zabbix-template template.xml
Все параметры команды
export zabbix-templateописаны в Разделе «Справка по командной строке».Загрузите сгенерированный шаблон на сервер Zabbix, как описано в Разделе «Установка и подготовка».
Если вы намерены собирать метрики Postgres Pro, после загрузки шаблона измените в веб-интерфейсе следующие макросы:
Вместо
{$PG_CONNINFO}укажите параметры подключения к серверу Postgres Pro, за которым вы намерены наблюдать.Вместо
{$PG_PATH}укажите путь к каталогу, где установлена программа psql.
Замечания о совместимости
Если вы хотите обновить mamonsu до версии, несовместимой с предыдущей, то ваши дальнейшие действия зависят от того, нужно ли вам сохранить собранные данные метрик.
Если вам нужно сохранить собранные данные, выполните следующее:
Установите новую версию mamonsu.
Сгенерируйте новый шаблон для сервера Zabbix.
Если вы выполняли специальную подготовительную процедуру в предыдущей версии mamonsu, запустите команду
bootstrapещё раз.Загрузите новый шаблон на сервер Zabbix.
Переименуйте узел, для которого вы хотите сохранить собранные данные, и оставьте его привязку к старому шаблону.
Создайте новый узел для той же системы и привяжите к нему новый шаблон.
Перезапустите службу mamonsu. Она будет собирать данные для нового узла. Старый узел больше не будет использоваться, но собранные для него данные будут по-прежнему доступны.
Если вам не нужно сохранять собранные данные, выполните следующее:
Установите новую версию mamonsu.
Сгенерируйте новый шаблон для сервера Zabbix.
Если вы выполняли специальную подготовительную процедуру в предыдущей версии mamonsu, запустите команду
bootstrapещё раз.Загрузите новый шаблон на сервер Zabbix.
В параметрах узла Zabbix привяжите к узлу новый шаблон вместо старого.
Перезапустите службу mamonsu, чтобы начался сбор данных. Все данные, собранные ранее, будут потеряны.