特征:
自动发现通过PM2管理的Node.js进程。
报告Nodes.js进程状态、CPU占用率、内存占用以及进程是否重启。
监控PM2守护进程自身状态、资源占用和PID改变。
已提供易于安装的Zabbix监控项模板。
1.Node.js服务器安装 pm2-zabbix
npm install -g pm2-zabbix
测试自动发现功能是否正常:
pm2-zabbix --discover
输出类似表明安装成功:
{ "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.克隆代码
git clonehttps://github.com/greatcare/pm2-zabbix.git
3.Zabbix Web管理后台导入模板文件 pm2-zabbix/install/zabbix-server/pm2-zabbix.template.xml
4.Node.js服务器添加服务,根据服务器操作系统版本选择,并修改服务运行用户和使用PM2启动的Node.js用户一致
RHEL/CentOS 7系列:
cp pm2-zabbix/install/init/systemd/pm2-zabbix.service /usr/lib/systemd/system/
修改目标文件 pm2-zabbix.service 文件内容 User项:
User=root
RHEL/CentOS 6或5系列:
cp pm2-zabbix/install/init/sysv/pm2-zabbix /etc/init.d/
修改目标文件 pm2-zabbix 文件内容 DAEMON_USER项:
DAEMON_USER=root
5.新建软连接,根据自己服务器修改软连接指向的真实文件路径
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.启动 pm2-zabbix 服务
RHEL/CentOS 7系列:
systemctl start pm2-zabbix
RHEL/CentOS 6或5系列:
service start pm2-zabbix
7.修改Zabbix Agent配置文件 zabbix_agentd.conf,添加包含其它配置
Include=/App/zabbix/etc/zabbix_agentd.conf.d/*.conf
8.拷贝Zabbix Agent配置
cp pm2-zabbix/install/zabbix-agent/pm2-zabbix.conf /App/zabbix/etc/zabbix_agentd.conf.d/pm2.conf
9.修改配置 pm2.conf 内容 sudo -u 用户和第4步一致,同事修改 pm2-zabbix 路径
UserParameter=pm2.processes,sudo -u root /usr/local/bin/pm2-zabbix --discover
10.服务器终端执行程序 visudo 添加sudo配置
zabbix ALL=(ALL:ALL) NOPASSWD: /usr/local/bin/pm2-zabbix Defaults:zabbix !requiretty
11.重启Node.js服务器Zabbix Agent服务
/etc/init.d/zabbix_agentd restart
12.Zabbix Web管理后台设置Node.js服务器添加链接 Template App PM2 模板 PM2守护进程CPU使用率 PM2守护进程内存占用 PM2管理的Node进程实例CPU使用率 PM2管理的Node进程实例内存占用