Home > Article > Web Front-end > How to add Node.js monitoring to Zabbix
Features:
Automatic discovery of Node.js processes managed through PM2.
Report Nodes.js process status, CPU usage, memory usage and whether the process is restarted.
Monitor the status, resource usage and PID changes of the PM2 daemon process.
Easy-to-install Zabbix monitoring item templates have been provided.
1. Node.js server installation pm2-zabbix
npm install -g pm2-zabbix
Test whether the automatic discovery function is normal:
pm2-zabbix --discover
Output similar to that indicates successful installation:
{ "data": [ { "{#PROCESS_ID}": "qb_node-0", "{#PROCESS_NAME}": "qb_node" }, { "{#PROCESS_ID}": "qb_node-1", "{#PROCESS_NAME}": "qb_node" }, { "{#PROCESS_ID}": "qb_node-2", "{#PROCESS_NAME}": "qb_node" }, { "{#PROCESS_ID}": "qb_node-3", "{#PROCESS_NAME}": "qb_node" } ] }
2.Clone code
git clonehttps://github.com/greatcare/pm2-zabbix.git
3. Zabbix Web management background import template file pm2-zabbix/install/zabbix-server/pm2-zabbix.template.xml
4. Add services to the Node.js server, select according to the server operating system version, and modify the service running user to be consistent with the Node.js user started with PM2
RHEL/CentOS 7 series:
cp pm2-zabbix/install/init/systemd/pm2-zabbix.service /usr/lib/systemd/system/
Modify the target file pm2-zabbix .service file content User item:
User=root
RHEL/CentOS 6 or 5 series:
cp pm2-zabbix/install/init/sysv/pm2-zabbix /etc/init.d/
Modify the target file pm2-zabbix file content DAEMON_USER item:
DAEMON_USER=root
5. Create a new soft connection and modify the real file path pointed by the soft connection according to your server
mkdir -p /etc/zabbix ln -s /App/zabbix/etc/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf ln -s /App/zabbix/bin/zabbix_sender /usr/bin/zabbix_sender ln -s `which node` /usr/bin/node ln -s `which pm2-zabbix` /usr/local/bin/pm2-zabbix
6. Start the pm2-zabbix service
RHEL/CentOS 7 series:
systemctl start pm2-zabbix
RHEL/CentOS 6 Or 5 series:
service start pm2-zabbix
7. Modify the Zabbix Agent configuration file zabbix_agentd.conf and add other configurations
Include=/App/zabbix/etc/zabbix_agentd.conf.d/*.conf
8. Copy the Zabbix Agent configuration
cp pm2-zabbix/install/zabbix-agent/pm2-zabbix.conf /App/zabbix/etc/zabbix_agentd.conf.d/pm2.conf
9. Modify the configuration of pm2.conf. The sudo -u user is consistent with step 4. Colleagues modify the pm2-zabbix path
UserParameter=pm2.processes,sudo -u root /usr/local/bin/pm2-zabbix --discover
10. The server terminal executes the program visudo and adds sudo configuration
zabbix ALL=(ALL:ALL) NOPASSWD: /usr/local/bin/pm2-zabbix Defaults:zabbix !requiretty
11. Restart Node .js server Zabbix Agent service
/etc/init.d/zabbix_agentd restart
12.Zabbix Web management background settings Node.js server Add link Template App PM2 template PM2 daemon CPU usage PM2 daemon memory usage Node process instance CPU usage managed by PM2 Memory usage of Node process instances managed by PM2