To set up the PM2 service monitor on Nagios, you’ll need to follow these general steps. PM2 is a process manager for Node.js applications, so we’ll assume you’re monitoring Node.js processes managed by PM2.


1. Server root login credentials.

Step 1:

Log in to your Ubuntu or Centos server as a user with sudo privileges. You can use SSH or directly access the server.

$ ssh root@Ip

Step 2:

Edit the /etc/nagios/nrpe.cfg configuration file and search for command definition sections. Here you can define or update check commands.

$ vi /etc/nagios/nrpe.cfg

Please update the below command for the PM2 check.

command[check_pm2_port]= /usr/lib/nagios/plugins/

Step 3:

Please go to the plugin’s path and create a new script file in the specified path, such as The script should check if the PM2 service port is open or not.

vi /usr/lib/nagios/plugins/

Please copy the below commands, and paste the file, and save the file.

# Modify the following variables according to your setup
nc -z -w 2 $PM2_HOST $PM2_PORT > /dev/null 2>&1
if [ $result -eq 0 ]; then
    echo “OK – PM2 service is listening on port $PM2_PORT”
    exit 0
    echo “CRITICAL – PM2 service is not listening on port $PM2_PORT”
    exit 2

Step 4:

Give permission to the file and follow the below command:

chmod 755

Step 5:

Next, restart the NRPE service. Now it is ready to listen to requests from the Nagios Server.

systemctl restart nagios-nrpe-server

Open the Nagios server.

Step 6:

Go to the path of the object using the below commands:

vi /usr/local/nagios/etc/objects/commands.cfg

Here, we want to add the below command to a file and save it.

define command {
    command_name    check_pm2_port
    command_line    /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c check_pm2_port

Step 7:

Please open the below for the configuration path.

vi /usr/local/nagios/etc/servers/testserver2.cfg

Add the below lines for PM2 checking the configuration and save it.

define service {
       use                             generic-service         ; Name of service template to use
       host_name                       testserver2
       service_description           pm2_service
       check_command              check_nrpe!check_pm2_port
       contact_groups                 admins
       notifications_enabled        1

Step 8:

Save the configuration file.

And finally, restart Nagios to apply the recent configuration changes:

systemctl restart nagios

We can verify the PM2 status in the below snapshot.


Following the steps mentioned above, we can set up the PM2 service monitor on Nagios.

Leave a Reply