Skip to content

A simple and efficient PM2 module that forwards logs to Papertrail.

License

Notifications You must be signed in to change notification settings

ImSkully/pm2-papertrail-logger

Repository files navigation

PM2 Papertrail Logger

Maintained License

A simple and efficient PM2 module that forwards logs for all your PM2 processes to Papertrail:

  • ⚡️ Fast and lightweight, unpacked size of 54kb!
  • 🔒 Secure with all logs sent over TLS
  • 🔧 Easy to install and configure, deployed with 3 easy commands within a matter of seconds!
  • 📝 Adjustable hostname for your pm2 source
  • 🚀 Supports all PM2 process modes, including cluster, fork, and standalone.
  • 📦 Memory management and automatic cleanup for closed processes

Prerequisites

PM2

This module requires that you have PM2 installed and running on your system. If you do not have PM2 installed, you can install it via NPM:

npm install pm2 -g

Papertrail

In order to use this module and forward all your pm2 process logs, you must have a Papertrail Standalone account, this will not work for Papertrail instances that are attached as an addon to a Heroku application. For information on setting up a Papertrail Standalone account, click here.

Within your Papertrail account, you will need a Log Destination that accepts connections via TCP/UDP Ports. Once this is setup, take note of your destination host (*.papertrailapp.com) and port number.

Installation & Setup

  1. Install the module via pm2:
pm2 install pm2-papertrail-logger

Important

Use pm2 install, not npm install!

  1. Configure the Papertrail log destination by providing your host and port number:
pm2 set pm2-papertrail-logger:host <host>
pm2 set pm2-papertrail-logger:port <port>
  1. The module should restart and begin logging to Papertrail!

Usage

Once the module is installed and configured, it will automatically begin logging all your PM2 processes to Papertrail. You can view the logs by clicking on the Events tab within your Papertrail account.

Change Hostname

By default, the host name sent to Papertrail will be the OS hostname, you can change this by setting the hostname configuration variable:

pm2 set pm2-papertrail-logger:hostname <hostname>

Process as Systems

If you would like to have each PM2 process be created as its own system group within Papertrail, you can set the process-as-systems configuration to true:

pm2 set pm2-papertrail-logger:process-as-systems true

Blacklist

To prevent certain PM2 processes from being logged to Papertrail, you can set a blacklist of process names in the blacklist configuration variable which is a comma-separated list of process names:

pm2 set pm2-papertrail-logger:blacklist "process1,process2"

PM2 Metrics

This module also provides metrics that can be viewed within the PM2 dashboard.

Metric Description
Attached Processes The number of processes that are currently transporting logs to Papertrail.

Uninstalling

To uninstall the module, simply run:

pm2 uninstall pm2-papertrail-logger

This will remove the module from your PM2 configuration and stop it from running, you may also want to remove the configuration variables that were set:

pm2 unset pm2-papertrail-logger:host
pm2 unset pm2-papertrail-logger:port
pm2 unset pm2-papertrail-logger:hostname
pm2 unset pm2-papertrail-logger:process-as-systems
pm2 unset pm2-papertrail-logger:blacklist