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 =
True
client =имя_узла_zabbix
address =сервер_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 =
пользователь_mamonsu
database =база_mamonsu
password =пароль_mamonsu
port = 5432
Это базовые параметры, позволяющие начать использование mamonsu. Кроме них можно настроить и другие параметры mamonsu, описанные в Разделе «Параметры конфигурации».
Настройте представление метрик на сервере Zabbix
Создайте шаблон, определяющий, как будут представляться собранные метрики на сервере Zabbix:
mamonsu export template template.xml
mamonsu формирует файл шаблона
template.xml
в текущем каталоге. По умолчанию отображаемым в Zabbix именем шаблона будетPostgresPro-
, гдеOS
OS
— название вашей операционной системы. Чтобы получить шаблон с другим отображаемым именем, в показанную выше команду можно добавить аргумент--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 и предоставит права на их выполнение пользователю-x
mamonsu
.параметры_подключения
Необязательные параметры подключения, задаваемые в командной строке.
export
Синтаксис:
mamonsu export configимя_файла
.conf [--add-plugins=каталог_модулей
] mamonsu export templateимя_файла
.xml [--add-plugins=каталог_модулей
] [--template-name=имя_шаблона
] [--application=имя_приложения
] [--old-zabbix]
Сгенерировать файл конфигурации или файл шаблона для набора метрик. Для настройки набора метрик можно передать дополнительные параметры:
--add-plugins=
каталог_модулей
Собирать метрики, определённые в дополнительных модулях, расположенных в заданном
каталоге_модулей
. Если вы будете использовать какие-либо дополнительные модули, этот параметр нужно передавать при формировании файла конфигурации и шаблона.--template-name=
имя_шаблона
Задаёт название шаблона, которое будет отображаться на сервере Zabbix.
Значение по умолчанию:
PostgresPro-
, гдеOS
OS
— название вашей операционной системы--application=
имя_приложения
Задаёт идентификатор, с которым собранные метрики будут отображаться на сервере Zabbix.
Значение по умолчанию:
App-PostgresPro-
, гдеOS
OS
— название вашей операционной системы--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-
, гдеOS
OS
— название вашей операционной системы--application=
имя_приложения
Задаёт идентификатор, с которым собранные метрики будут отображаться на сервере Zabbix.
Значение по умолчанию:
App-PostgresPro-
, гдеOS
OS
— название вашей операционной системы--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имя_узла
ид_группы_узлов
ид_шаблона
адрес_mamonsu
mamonsu 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
не запускалась.Имя по умолчанию:
postgres
password
Пароль указанного пользователя.
database
База данных, через подключение к которой будут собираться метрики.
Имя по умолчанию:
postgres
host
Адрес сервера базы данных.
Значение по умолчанию:
localhost
port
Целевой порт на сервере.
Значение по умолчанию: 5432
application_name
Имя приложения, идентифицирующее процесс mamonsu, выполняющийся в кластере Postgres Pro.
Значение по умолчанию:
mamonsu
query_timeout
Значение statement_timeout для сеанса mamonsu, в секундах. Если запрос метрики Postgres Pro не успевает выполниться за указанное время, он прерывается.
Значение по умолчанию: 10
Также вместо параметров конфигурации можно использовать следующие переменные среды: PGUSER
, PGPASSWORD
, PGHOST
, PGDATABASE
, PGPORT
и PGAPPNAME
. За подробным описанием этих переменных обратитесь к Разделу 34.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
для сохранения значений метрик.Значение по умолчанию:
False
directory
Указывает каталог, в котором будут сохраняться данные метрик.
Каталог по умолчанию:
/var/log/mamonsu
max_size_mb
Максимальный размер файла метрик, в мегабайтах. По достижении заданного размера этот файл переименовывается в
localhost.log.archive
, и создаётся новый файлlocalhost.log
.Значение по умолчанию: 1024
[log]
В разделе [log]
настраивается запись сообщений в журнал mamonsu и могут содержаться следующие параметры:
file
Задаёт имя файла журнала; может также задавать полный путь.
level
Задаёт уровень отладки. Этот параметр может принимать значение
DEBUG
,ERROR
илиINFO
.Значение по умолчанию:
INFO
format
Формат записываемых сообщений.
Значение по умолчанию:
[%(asctime)s] %(asctime)s - %(name)s - %(message)s
Здесь
levelname
— уровень важности сообщения,asctime
— текущее время,name
— имя модуля, выдавшего это сообщение (либоroot
, если сообщение выдано не модулем), иmessage
— собственно текст сообщения.
Параметры модулей #
[plugins]
В разделе [plugins]
описываются дополнительные модули, осуществляющие сбор метрик, и могут содержаться следующие параметры:
enabled
Включает/отключает дополнительные модули, осуществляющие сбор метрик, при значении равном
True
илиFalse
, соответственно.Значение по умолчанию:
False
directory
Задаёт каталог, содержащий дополнительные модули. При значении, равном
None
, использование дополнительных модулей отключается.Значение по умолчанию:
/etc/mamonsu/plugins
Если вы хотите настроить модуль, который вы дополнительно добавили в mamonsu после установки, для него нужно добавить раздел параметров в файл agent.conf
.
Синтаксис, которому должен соответствовать этот раздел, показан в примере в Подразделе «Разделы отдельных модулей».
Разделы отдельных модулей #
Все встроенные модули устанавливаются в составе mamonsu. Чтобы настроить такой модуль, найдите соответствующий ему раздел под заголовком Individual Plugin Sections
(Разделы отдельных модулей) и измените значения параметров:
enabled
Включает/отключает встроенные модули при значении равном
True
илиFalse
соответственно. Эти значения чувствительны к регистру.Значение по умолчанию:
False
interval
Указывает интервал работы модуля в секундах. Параметр задаётся целым числом. Можно установить разные интервалы для разных модулей. Для модулей, собирающих метрики 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 и Разделу 54.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, чтобы начался сбор данных. Все данные, собранные ранее, будут потеряны.