PM2 ile Node.js Uygulamalarını Yönetme

PM2, Node.js uygulamalarını yönetmek ve optimize etmek için kullanılan popüler bir süreç yöneticisidir. Özellikle üretim ortamında, uygulamalarınızın sürekli olarak çalışır durumda kalmasını sağlamak için son derece kullanışlıdır. Bu rehberde, PM2'nin kurulumu, temel kullanımı ve gelişmiş özellikleri hakkında kapsamlı bir bilgi sunacağız.

PM2 Nedir ve Neden Kullanmalısınız?

PM2, Node.js uygulamalarını yönetmek için tasarlanmış bir süreç yöneticisidir. Aşağıdaki avantajları sunar:

  • Süreç Yönetimi: Uygulamaları kolayca başlatma, durdurma, yeniden başlatma ve izleme.
  • Yüksek Kullanılabilirlik: Uygulamalar çöktüğünde veya sunucu yeniden başlatıldığında otomatik yeniden başlatma.
  • Performans İzleme: Gerçek zamanlı olarak CPU ve bellek kullanımını izleme.
  • Log Yönetimi: Merkezi log yönetimi ile uygulama loglarını toplama ve görüntüleme.

PM2 Kurulumu

PM2'yi kurmak oldukça basittir. İlk adım, Node.js ve npm'nin sisteminizde yüklü olduğundan emin olmaktır. Ardından, PM2'yi global olarak yüklemek için aşağıdaki komutu kullanabilirsiniz:

npm install pm2 -g

Bu komut, PM2'yi global olarak kurar ve komut satırından erişilebilir hale getirir.

İlk Uygulamanızı Başlatma

PM2 ile bir Node.js uygulamasını başlatmak için aşağıdaki komutu kullanabilirsiniz:

pm2 start app.js

Burada app.js, başlatmak istediğiniz Node.js dosyasının adıdır. PM2, uygulamanızı başlattıktan sonra, uygulamanızın çalışır durumda olduğunu ve sürecin yönetildiğini gösterir.

Süreç Yönetimi Komutları

PM2, süreçlerinizi yönetmek için bir dizi kullanışlı komut sağlar. Bu komutlar, uygulamalarınızı başlatma, durdurma, yeniden başlatma ve silme işlemlerini kolayca gerçekleştirmenizi sağlar.

Uygulamaları Listeleme

PM2 tarafından yönetilen tüm süreçleri listelemek için:

pm2 list

Bu komut, çalışan tüm uygulamaların bir listesini ve durumlarını gösterir.

Uygulamaları Yeniden Başlatma

Bir uygulamayı yeniden başlatmak için:

pm2 restart app.js

Bu komut, app.js dosyasını yeniden başlatır ve herhangi bir kesinti olmadan çalışmaya devam eder.

Uygulamaları Durdurma

Bir uygulamayı durdurmak için:

pm2 stop app.js

Bu komut, belirtilen uygulamayı durdurur, ancak sürecini PM2'nin listesinde tutar.

Uygulamaları Silme

Bir uygulamayı süreç listesinden tamamen kaldırmak için:

pm2 delete app.js

Bu komut, uygulamanın sürecini durdurur ve PM2'nin yönetim listesinden çıkarır.

Log Yönetimi

PM2, uygulama loglarını merkezi bir yerde toplar ve yönetir. Logları izlemek için:

pm2 logs

Bu komut, tüm süreçlerin loglarını gerçek zamanlı olarak görüntüler. Ayrıca, belirli bir uygulamanın loglarını görüntülemek için uygulama ID'sini veya adını kullanabilirsiniz:

pm2 logs [app-id|name]

PM2 ile Performans İzleme

PM2, uygulamalarınızın performansını izlemek için kullanışlı araçlar sunar. Gerçek zamanlı olarak CPU ve bellek kullanımını izlemek için aşağıdaki komutu kullanabilirsiniz:

pm2 monit

Bu komut, tüm süreçlerin performansını ve sistem kaynak kullanımını gösteren etkileşimli bir monitör ekranı açar.

PM2'nin Diğer Gelişmiş Özellikleri

PM2, sadece temel süreç yönetimi komutlarıyla sınırlı değildir. Aşağıda, PM2'nin sunduğu bazı gelişmiş özellikler ve kullanım senaryoları bulunmaktadır:

Otomatik Yeniden Başlatma

PM2, uygulamalarınızın çökmesi durumunda otomatik olarak yeniden başlatılmasını sağlar. Bu, yüksek kullanılabilirlik gerektiren üretim ortamları için kritik öneme sahiptir. PM2'nin bu özelliği varsayılan olarak etkindir, ancak özelleştirilebilir:

pm2 start app.js --watch

Bu komut, app.js dosyasında yapılan herhangi bir değişiklikte uygulamanın otomatik olarak yeniden başlatılmasını sağlar.

Daemon Modu

PM2'yi daemon modu ile çalıştırarak, sunucunuzu yeniden başlattığınızda bile uygulamalarınızın otomatik olarak başlatılmasını sağlayabilirsiniz. Bunu yapmak için:

pm2 startup

Bu komut, PM2'yi sisteminize uygun şekilde yapılandırarak, sunucu yeniden başlatıldığında PM2'nin otomatik olarak başlamasını sağlar. Ardından, mevcut süreçlerinizi kaydetmek için:

pm2 save

Bu komut, PM2 tarafından yönetilen tüm süreçleri kaydeder ve yeniden başlatma sonrasında otomatik olarak geri yükler.

PM2 Konfigürasyon Dosyaları

PM2, JSON veya YAML formatında konfigürasyon dosyaları kullanarak uygulamalarınızı yönetmenizi sağlar. Örneğin, ecosystem.config.js adında bir konfigürasyon dosyası oluşturabilirsiniz:

module.exports = {
  apps: [
    {
      name: 'app',
      script: './app.js',
      watch: true,
      env: {
        NODE_ENV: 'development'
      },
      env_production: {
        NODE_ENV: 'production'
      }
    }
  ]
};

Bu dosya, PM2'nin başlatma komutlarına ek olarak, uygulamalarınız için farklı ortam değişkenlerini ve seçeneklerini tanımlamanıza olanak tanır. Bu dosyayı kullanarak uygulamanızı başlatmak için:

pm2 start ecosystem.config.js

PM2, Node.js uygulamalarını yönetmek için güçlü ve esnek bir süreç yöneticisidir. Bu rehberde, PM2'nin kurulumundan temel ve gelişmiş özelliklerine kadar kapsamlı bir bilgi sunduk. PM2'yi kullanarak, Node.js uygulamalarınızın performansını artırabilir, kesintisiz çalışmasını sağlayabilir ve yönetim süreçlerini kolaylaştırabilirsiniz. Daha fazla bilgi ve ileri düzey kullanım senaryoları için PM2'nun resmi dokümantasyonunu ziyaret edebilirsiniz.

Telefon +90 505 747 42 84
Email info@devedijital.com
Adres
Tacettin Veli Mahallesi Halit Narin Caddesi Bahadır Plaza Kat:11 Daire:41 38230 Deve Dijital Melikgazi/Kayseri/Türkiye