特征:
自动发现通过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进程实例内存占用