Перейти к основному содержимому
Версия: 2.5

Управление сервисами

Для управления сервисами Памир используется утилита командной строки (CLI) — pamirctl. Утилита автоматически устанавливается в PATH пользователя в ходе установки приложения; привилегии суперпользователя для этого не требуются. При необходимости утилиту можно вызвать напрямую по пути $HOME/.pamir/pamirctl.

Утилита принимает следующие команды:

  • start — запуск сервисов приложения. Перед запуском автоматически выполняется проверка целостности образов контейнеров и конфигурационных файлов.
  • stop — остановка сервисов и удаление контейнеров. Тома хранения данных сохраняются.
  • restart — последовательная остановка и запуск сервисов. Также выполняет проверку целостности перед запуском.
  • status — просмотр текущего состояния всех сервисов.
  • sums — вывод эталонных контрольных сумм, встроенных в бинарник при сборке.
  • --daemon — режим демона: непрерывный периодический контроль целостности работающих контейнеров с автоматической остановкой нарушителей. Устанавливается и запускается инсталлятором автоматически как пользовательский сервис systemd.
подсказка

Утилита применяется для управления как сервисами Памир, так и сервисами пробы. Для этого используется файл конфигурации, по умолчанию располагающийся по пути $HOME/.pamirctl.yml, и может быть переопределён опциональным аргументом --config /path/to/config.yml.

Пример файла конфигурации для управления сервером Памир:

.pamirctl.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
# 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
# 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
# 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) |
+------------------------+--------------+------------------------+
# pamirctl status database rabbitmq redis
+----------+--------+------------------------+
| СЕРВИС | ВЕРСИЯ | СОСТОЯНИЕ |
+----------+--------+------------------------+
| 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
# 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