PM2 — Мониторинг приложений JavaScript (Node.js)

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Что такое PM2?

PM2 (Process Manager 2) — это мощный менеджер процессов для Node.js приложений. Он не только запускает и перезапускает приложения, но и предоставляет встроенные средства для мониторинга производительности, управления кластеризацией и сбора метрик в реальном времени.

Зачем нужен PM2?

При развертывании production-приложений на Node.js возникают задачи: автоматический перезапуск при сбое, балансировка нагрузки между ядрами CPU, просмотр логов и отслеживание использования памяти/CPU. PM2 решает все эти задачи из коробки, заменяя собой несколько инструментов (nodemon, forever, cluster).

Установка

npm install -g pm2

Глобальная установка позволяет запускать PM2 из любого места в системе.

Основные функции мониторинга

  • pm2 list — отображает все запущенные процессы с PID, статусом, потреблением памяти и CPU.
  • pm2 monit — интерактивный терминальный монитор, показывающий метрики каждого процесса в реальном времени.
  • pm2 show <id> — детальная информация о конкретном процессе: uptime, количество рестартов, версия Node.js, переменные окружения.
  • pm2 logs — просмотр объединенных логов всех приложений или конкретного процесса.
  • pm2 status — краткий статус всех приложений.

Пример кода (Node.js)

Создайте файл app.js:

const http = require('http');
const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello from monitored app!');
});
server.listen(3000, () => {
  console.log('Server running on port 3000');
});

Запустите с мониторингом:

pm2 start app.js --name my-app --watch
pm2 monit

Флаг --watch автоматически перезапускает приложение при изменении файлов. Команда pm2 monit откроет панель, где вы увидите загрузку CPU, память, количество запросов и uptime.

Когда использовать

PM2 идеален для production-сред: веб-серверы (Express, Koa), API-сервисы, боты, микросервисы. Он незаменим, когда нужно:

  • Обеспечить 24/7 работу приложения
  • Автоматически перезапускать после сбоя
  • Масштабировать приложение на все ядра процессора
  • Собирать метрики для дальнейшего анализа
  • Централизованно управлять логами

PM2 не подходит для одноразовых скриптов или локальной разработки (для этого лучше nodemon).

Заключение

PM2 — это стандарт де-факто для мониторинга Node.js приложений. Он прост в установке, предоставляет богатый набор метрик и легко интегрируется с системами оповещения (через плагины). Начните с pm2 monit, чтобы в реальном времени видеть здоровье вашего приложения.

Рекомендаций