Управление сервисами
Для управления сервисами Памир используется утилита командной строки (CLI) —
pamirctl. Утилита автоматически устанавливается в PATH пользователя в ходе
установки приложения; привилегии суперпользователя для этого не требуются.
При необходимости утилиту можно вызвать напрямую по пути $HOME/.pamir/pamirctl.
Утилита принимает следующие команды:
start— запуск сервисов приложения. Перед запуском автоматически выполняется проверка целостности образов контейнеров и конфигурационных файлов.stop— остановка сервисов и удаление контейнеров. Тома хранения данных сохраняются.restart— последовательная остановка и запуск сервисов. Также выполняет проверку целостности перед запуском.status— просмотр текущего состояния всех сервисов.sums— вывод эталонных контрольных сумм, встроенных в бинарник при сборке.--daemon— режим демона: непрерывный периодический контроль целостности работающих контейнеров с автоматической остановкой нарушителей. Устанавливается и запускается инсталлятором автоматически как пользовательский сервис systemd.
Утилита применяется для управления как сервисами Памир, так и сервисами пробы.
Для этого используется файл конфигурации, по умолчанию располагающийся по пути
$HOME/.pamirctl.yml, и может быть переопределён опциональным аргументом
--config /path/to/config.yml.
Пример файла конфигурации для управления сервером Памир:
---
app_type: pamir
app_path: /home/user/.pamir
app_profiles:
- app
Изменение набора запускаемых сервисов
Набор запускаемых сервисов (приложение, СУБД, экспортеры и дополнительные компоненты) может быть
переопределен в файле конфигурации pamirctl. По-умолчанию приложение запускается со следующим
набором компонентов:
- app
- tsdb
- exporters
- ldap
- ca
- opensearch
Под набором сервисов ещё можно понимать набор ролей, которые будет выполнять сервер Памир, например, в поведении по-умолчанию, сервер Памир является ещё и базой данных временных рядов, коллектором метрик blackbox и snmp, а также является LDAP-сервером и удостоверяющим центром для приложения.
Технически набор запускаемых сервисов называется профили, а в файле конфигурации за установку
профилей отвечает параметр app_profiles.
Файл конфигурации .pamirctl.yml отсутствует в стандартной инсталляции и должен быть создан вручную, в случае
необходимости конфигурации pamirctl. Утилита ищет его в следующих путях:
- текущая рабочая директория (
$CWD), например, если Вы находитесь в каталоге/opt/pamir, то файл конфигурации должен находиться по пути/opt/pamir/.pamirctl.yml; - домашняя директория пользователя (
$HOME), например,/home/user/.pamirctl.yml; /etc/.pamirctl.yml.
Хорошей практикой будет расположение файла конфигурации .pamirctl.yml в каталоге пользователя.
В таком случае файл гарантированно не будет перезаписан при обновлении
(например, при удалении каталога $HOME/.pamir), а также утилита pamirctl может быть запущена
из любой рабочей директории.
Доступные роли сервера Памир
| Профиль (роль) | Набор сервисов, входящих в профиль |
|---|---|
| all | Все сервисы, входящие в дистрибутив |
| app | Все сервисы в ролях backend и frontend |
| backend | Все сервисы backend и их зависимости |
| backend.auth | Сервис auth и его зависимости (PostgreSQL, RabbitMQ, Redis, Flower) |
| backend.celery | Сервис celery и его зависимости |
| backend.docker-tool | Сервис docker-tool и его зависимости |
| backend.license | Сервис лицензирования и его зависимости |
| backend.monitoring | Сервис monitoring и его зависимости |
| backend.notification | Сервис notification и его зависимости |
| backend.srm | Сервис srm и его зависимости |
| backend.task-tool | Сервис task-tool и его зависимости |
| ca | Сервис удостоверяющего центра (Smallstep Step CA) и ACME клиент (ACME Companion) |
| db | Все сервисы СУБД, кроме СУБД временных рядов (PostgreSQL, Redis) |
| db.postgres | Сервис СУБД PostgreSQL |
| db.redis | Сервис СУБД Redis |
| debug | Профиль, используемый для отладки приложения и разработки |
| exporters | Все экспортеры, входящие в дистрибутив |
| exporters.external | Экспортеры, не управляемые Памир (postgres-exporter, cadvisor, docker-state-exporter, jmx-exporter) |
| exporters.internal | Экспортеры, управляемые Памир (blackbox, snmp, json, sql, nginxlog, node) |
| frontend | Сервис frontend |
| ldap | Сервис службы каталогов (OpenLDAP) |
| migrations | Профиль применения миграций баз данных; запускается автоматически при установке/обновлении Памир |
| mq | Все сервисы брокера сообщений |
| mq.rabbitmq | Сервис брокера сообщений RabbitMQ |
| opensearch | Все компоненты хранилища журналов (OpenSearch, OpenSearch Dashboards, Logstash) |
| opensearch.dashboards | Сервис веб-интерфейса OpenSearch Dashboards |
| opensearch.logstash | Сервис Logstash (агент сбора и передачи журналов в OpenSearch) |
| tsdb | Все базовые сервисы СУБД временных рядов (Metrics, Alertmanager) |
| tsdb.alertmanager | Сервис уведомлений Alertmanager |
| tsdb.longterm | Сервисы Metrics для долговременного хранения метрик (хранилище, агент сбора, обработчик правил) |
| vector | Сервис Vector (агент маршрутизации журналов и метрик) |
Запуск приложения
Запуск Памир осуществляется командой pamirctl start, после чего создаются и
запускаются контейнеры. Большая часть контейнеров дополнительно проверяется
на работоспособность и способность принимать трафик (healthcheck).
Пример вывода команды pamirctl start
2026/10/01 16:44:50 INFO Проверка контрольных сумм образов успешно пройдена count=34
[+] Running 39/39
✔ Container pamir-rabbitmq-1 Healthy 1.0s
✔ Container pamir-fluent-bit-1 Running 0.0s
✔ Container pamir-step-ca-1 Running 0.0s
✔ Container pamir-redis-1 Healthy 1.0s
✔ Container pamir-openldap-1 Running 0.0s
✔ Container pamir-flower-1 Running 0.0s
✔ Container pamir-license-1 Running 0.0s
✔ Container pamir-alertmanager-1 Running 0.0s
✔ Container pamir-pamir-agent-1 Running 0.0s
✔ Container pamir-opensearch-1 Running 0.0s
✔ Container pamir-frontend-1 Running 0.0s
✔ Container pamir-metrics-storage-1 Running 0.0s
✔ Container pamir-logstash-1 Running 0.0s
✔ Container pamir-opensearch-dashboards-1 Running 0.0s
✔ Container pamir-metrics-ruler-1 Running 0.0s
✔ Container pamir-metrics-agent-1 Healthy 1.0s
✔ Container pamir-database-1 Healthy 1.0s
✔ Container pamir-acme-1 Running 0.0s
✔ Container pamir-cadvisor-1 Running 0.0s
✔ Container pamir-snmp-exporter-1 Running 0.0s
✔ Container pamir-blackbox-exporter-1 Running 0.0s
✔ Container pamir-sql-exporter-1 Running 0.0s
✔ Container pamir-json-exporter-1 Running 0.0s
✔ Container pamir-elasticsearch-exporter-1 Running 0.0s
✔ Container pamir-postgres-exporter-1 Running 0.0s
✔ Container pamir-monitoring-1 Running 0.0s
✔ Container pamir-jmx-exporter-1 Running 0.0s
✔ Container pamir-nginxlog-exporter-1 Running 0.0s
✔ Container pamir-docker-state-exporter-1 Running 0.0s
✔ Container pamir-task-tool-1 Running 0.0s
✔ Container pamir-auth-1 Running 0.0s
✔ Container pamir-docker-tool-1 Running 0.0s
✔ Container pamir-srm-worker-1 Running 0.0s
✔ Container pamir-monitoring-worker-1 Running 0.0s
✔ Container pamir-monitoring-scheduler-1 Running 0.0s
✔ Container pamir-notification-1 Running 0.0s
✔ Container pamir-srm-scheduler-1 Running 0.0s
✔ Container pamir-srm-1 Running 0.0s
✔ Container pamir-srm-worker-periodic-1 Running 0.0s
2026/10/01 16:44:51 INFO Сервисы Compose успешно созданы и запущены
Параметризация сервисов
Данная команда также может использоваться для применения настроек, внесенных
в конфигурацию сервисов (файлы docker-compose*.yml), например, если нужно
опубликовать извне сервис Metrics, для настройки remote-write, вносятся
изменения в файл docker-compose.additional.yml такого вида:
services:
metrics-storage:
ports:
- "8428:8428"
Для применения данных параметров необходимо запустить команду запуска с дополнительным позиционным аргументом - именем сервиса:
pamirctl start metrics-storage
Остановка приложения
Остановка Памир осуществляется командой pamirctl stop, которая останавливает
работающие контейнеры и удаляет их. Тома хранения (volumes) и директория
$HOME/.pamir остаются нетронутыми (для дальнейшего запуска приложения).
Пример вывода команды pamirctl stop
[+] Running 40/40
✔ Container pamir-monitoring-scheduler-1 Removed 2.8s
✔ Container pamir-metrics-ruler-1 Removed 1.8s
✔ Container pamir-srm-worker-1 Removed 4.3s
✔ Container pamir-openldap-1 Removed 2.6s
✔ Container pamir-blackbox-exporter-1 Removed 2.1s
✔ Container pamir-opensearch-1 Removed 3.2s
✔ Container pamir-monitoring-worker-1 Removed 4.4s
✔ Container pamir-flower-1 Removed 2.7s
✔ Container pamir-postgres-exporter-1 Removed 2.7s
✔ Container pamir-acme-1 Removed 0.9s
✔ Container pamir-task-tool-1 Removed 3.2s
✔ Container pamir-alertmanager-1 Removed 1.7s
✔ Container pamir-json-exporter-1 Removed 1.5s
✔ Container pamir-monitoring-1 Removed 3.4s
✔ Container pamir-srm-1 Removed 3.7s
✔ Container pamir-jmx-exporter-1 Removed 2.7s
✔ Container pamir-srm-worker-periodic-1 Removed 4.2s
✔ Container pamir-notification-1 Removed 3.3s
✔ Container pamir-srm-scheduler-1 Removed 3.3s
✔ Container pamir-sql-exporter-1 Removed 2.7s
✔ Container pamir-license-1 Removed 2.8s
✔ Container pamir-snmp-exporter-1 Removed 2.1s
✔ Container pamir-logstash-1 Removed 3.2s
✔ Container pamir-pamir-agent-1 Removed 2.7s
✔ Container pamir-opensearch-dashboards-1 Removed 2.8s
✔ Container pamir-nginxlog-exporter-1 Removed 1.5s
✔ Container pamir-cadvisor-1 Removed 1.8s
✔ Container pamir-elasticsearch-exporter-1 Removed 1.8s
✔ Container pamir-step-ca-1 Removed 1.0s
✔ Container pamir-docker-state-exporter-1 Removed 2.6s
✔ Container pamir-auth-1 Removed 3.3s
✔ Container pamir-docker-tool-1 Removed 3.1s
✔ Container pamir-frontend-1 Removed 3.6s
✔ Container pamir-metrics-agent-1 Removed 0.5s
✔ Container pamir-metrics-storage-1 Removed 10.2s
✔ Container pamir-redis-1 Removed 0.3s
✔ Container pamir-database-1 Removed 0.3s
✔ Container pamir-fluent-bit-1 Removed 1.2s
✔ Container pamir-rabbitmq-1 Removed 10.3s
✔ Network pamir-net Removed 0.2s
Просмотр состояния сервисов
Просмотр статуса работы сервисов осуществляется командой pamirctl status.
Команда также может принимать дополнительные позиционные аргументы - имена сервисов, разделенные пробелом. В таком случае в таблице будут отображены указанные сервисы.
Пример вывода команды pamirctl status
+------------------------+--------------+------------------------+
| СЕРВИС | ВЕРСИЯ | СОСТОЯНИЕ |
+------------------------+--------------+------------------------+
| nginxlog-exporter | 1.11.0 | Up 4 minutes (healthy) |
| sql-exporter | 0.4.0 | Up 4 minutes (healthy) |
| blackbox-exporter | 0.20.0 | Up 4 minutes (healthy) |
| json-exporter | 1.3.0 | Up 4 minutes (healthy) |
| snmp-exporter | 0.20.0 | Up 4 minutes (healthy) |
| elasticsearch-exporter | v1.10.0 | Up 4 minutes |
| jmx-exporter | latest | Up 4 minutes |
| postgres-exporter | v0.15.0 | Up 4 minutes |
| cadvisor | v0.50.0 | Up 4 minutes (healthy) |
| docker-state-exporter | v1.0.0 | Up 4 minutes (healthy) |
| task-tool | 2.5.0-rc.257 | Up 4 minutes (healthy) |
| srm-worker | 2.5.0-rc.458 | Up 4 minutes |
| docker-tool | 2.5.0-rc.261 | Up 4 minutes (healthy) |
| monitoring | 2.5.0-rc.531 | Up 4 minutes (healthy) |
| srm-scheduler | 2.5.0-rc.458 | Up 4 minutes |
| notification | 2.5.0-rc.293 | Up 4 minutes (healthy) |
| auth | 2.5.0-rc.378 | Up 4 minutes (healthy) |
| monitoring-worker | 2.5.0-rc.531 | Up 4 minutes |
| srm-worker-periodic | 2.5.0-rc.458 | Up 4 minutes |
| srm | 2.5.0-rc.458 | Up 4 minutes (healthy) |
| monitoring-scheduler | 2.5.0-rc.531 | Up 4 minutes |
| alertmanager | 0.27.0 | Up 4 minutes (healthy) |
| metrics-ruler | 1.81.2-pamir | Up 4 minutes (healthy) |
| metrics-agent | 1.81.2-pamir | Up 4 minutes (healthy) |
| acme | 2.2.9 | Up 4 minutes |
| step-ca | 0.24.1 | Up 4 minutes (healthy) |
| logstash | 9.2.4 | Up 4 minutes |
| redis | 7.0.15 | Up 4 minutes (healthy) |
| flower | 2.0.1 | Up 4 minutes |
| opensearch-dashboards | 3.3.0 | Up 4 minutes |
| openldap | 2.5.13 | Up 4 minutes (healthy) |
| metrics-storage | 1.81.2-pamir | Up 4 minutes (healthy) |
| frontend | 2.5.0-rc.634 | Up 4 minutes (healthy) |
| opensearch | 3.3.2 | Up 4 minutes (healthy) |
| license | 2.5.0-rc.257 | Up 4 minutes (healthy) |
| database | 15.13 | Up 4 minutes (healthy) |
| pamir-agent | 1.3.0 | Up 4 minutes (healthy) |
| fluent-bit | 2.1.8 | Up 4 minutes |
| rabbitmq | 3.10.8 | Up 5 minutes (healthy) |
+------------------------+--------------+------------------------+
+----------+--------+------------------------+
| СЕРВИС | ВЕРСИЯ | СОСТОЯНИЕ |
+----------+--------+------------------------+
| redis | 7.0.15 | Up 2 minutes (healthy) |
| database | 15.13 | Up 2 minutes (healthy) |
| rabbitmq | 3.10.8 | Up 2 minutes (healthy) |
+----------+--------+------------------------+
Перезапуск приложения (сервисов)
Перезапуск сервисов приложения осуществляется командой pamirctl restart.
Команда также может принимать дополнительные позиционные аргументы - имена сервисов, разделенные пробелом. В данном случае будут перезапущены указанные в команде сервисы.
Пример вывода команды pamirctl restart
2026/10/01 16:55:27 INFO Проверка контрольных сумм образов успешно пройдена count=34
[+] Restarting 39/39
✔ Container pamir-opensearch-dashboards-1 Started 3.3s
✔ Container pamir-fluent-bit-1 Started 3.2s
✔ Container pamir-acme-1 Started 2.2s
✔ Container pamir-redis-1 Healthy 32.9s
✔ Container pamir-step-ca-1 Started 2.5s
✔ Container pamir-sql-exporter-1 Started 3.0s
✔ Container pamir-logstash-1 Started 3.5s
✔ Container pamir-flower-1 Started 3.4s
✔ Container pamir-jmx-exporter-1 Started 2.9s
✔ Container pamir-database-1 Healthy 32.9s
✔ Container pamir-elasticsearch-exporter-1 Started 2.6s
✔ Container pamir-rabbitmq-1 Healthy 42.4s
✔ Container pamir-license-1 Started 3.4s
✔ Container pamir-cadvisor-1 Started 2.6s
✔ Container pamir-metrics-storage-1 Started 11.0s
✔ Container pamir-nginxlog-exporter-1 Started 3.2s
✔ Container pamir-postgres-exporter-1 Started 2.3s
✔ Container pamir-opensearch-1 Started 3.4s
✔ Container pamir-alertmanager-1 Started 2.2s
✔ Container pamir-openldap-1 Started 2.0s
✔ Container pamir-pamir-agent-1 Started 2.3s
✔ Container pamir-frontend-1 Started 2.9s
✔ Container pamir-metrics-agent-1 Started 2.6s
✔ Container pamir-metrics-ruler-1 Started 2.4s
✔ Container pamir-blackbox-exporter-1 Started 2.2s
✔ Container pamir-json-exporter-1 Started 2.9s
✔ Container pamir-snmp-exporter-1 Started 2.1s
✔ Container pamir-docker-state-exporter-1 Started 2.7s
✔ Container pamir-auth-1 Started 2.7s
✔ Container pamir-monitoring-1 Started 3.7s
✔ Container pamir-docker-tool-1 Started 2.2s
✔ Container pamir-monitoring-scheduler-1 Started 2.3s
✔ Container pamir-task-tool-1 Started 2.4s
✔ Container pamir-srm-worker-1 Started 6.5s
✔ Container pamir-notification-1 Started 2.9s
✔ Container pamir-srm-1 Started 4.1s
✔ Container pamir-srm-worker-periodic-1 Started 5.6s
✔ Container pamir-srm-scheduler-1 Started 2.4s
✔ Container pamir-monitoring-worker-1 Started 6.3s