goodmm 发表于 2018-1-1 20:00:52

使用pm2-zabbix监控node工程

环境
  centos 7
  zabbix 3.2.6
  node 4.4.3

安装
  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.6-1.el7.x86_64.rpm
  http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-sender-3.2.6-1.el7.x86_64.rpm
  yum install ./zabbix-*.rpm -y

配置agent
  修改配置文件/etc/zabbix/zabbix_agentd.conf
  

Server=  
ServerActive
=  
Hostname
=[对应到server端的主机名]  

  配置开机自启,并启动它
  

# systemctl enable zabbix-agent  
# systemctl start zabbix
-agent  

  服务端的配置这里就省略了...

安装pm2-zabbix
  安装并部署配置文件
  

# npm install -g pm2-zabbix  
# cd
/usr/local/node-v4.4.3-linux-x64/  
# cp lib
/node_modules/pm2-zabbix/install/zabbix-agent/pm2-zabbix.conf /etc/zabbix/zabbix_agentd.d/  
# cp lib
/node_modules/pm2-zabbix/install/init/systemd/pm2-zabbix.service /usr/lib/systemd/system/  

  修改 /usr/lib/systemd/system/pm2-zabbix.service
  

User=root  

  
ExecStart
=/usr/local/node-v4.4.3-linux-x64/bin/pm2-zabbix --hostname=[对应到server端的主机名] --monitor  

  修改 /etc/zabbix/zabbix_agentd.d/pm2-zabbix.conf (注意sudo -u的用户要改为自己的)
  

UserParameter=pm2.processes,sudo -u root /usr/local/node-v4.4.3-linux-x64/bin/pm2-zabbix --hostname=[对应到server端的主机名] --discover  

  配置zabbix用户的sudo权限
  

# visudo  
zabbixALL
=(ALL)       NOPASSWD: /usr/local/node-v4.4.3-linux-x64/bin/pm2-zabbix  
Defaults:zabbix !requiretty
  

  另外有一个需要注意的地方,我这边的环境中node命令是安装在/usr/local/bin/下,而在sudo中未将此路径纳入允许范围,而pm2-zabbix中第一句又是通过env寻找node,这样sudo时必然找不到;
  解决方法有两个:
  一是将/usr/local/node-v4.4.3-linux-x64/bin/pm2-zabbix中第一句由 #!/usr/bin/env node 改为 #!/usr/local/bin/node
  二是在visudo中找到配置 Defaultssecure_path ,在其后面加上 /usr/local/bin (推荐)

启动
  配置pm2-zabbix开机自启,并启动它
  

systemctl enable pm2-zabbix  
systemctl start pm2
-zabbix  

  可以通过 systemctl status pm2-zabbix 查看启动状态,其日志默认追加到 /var/log/message
  最后重启zabbix-agent服务
  

systemctl restart zabbix-agent  


服务端导入pm2模板
  模板文件位于node下面:lib/node_modules/pm2-zabbix/install/zabbix-server/pm2-zabbix.template.xml
  管理员后台登陆zabbix服务端,通过 “配置” → “模板” → “导入”,选择该文件后导入,然后创建或者修改已存在的主机链接到这个模板(Template App PM2)
  pm2-zabbix会自动发现pm2管理下的工程并传到服务端创建对应监控项和触发器,不过需要几分钟时间
  pm2-zabbix自动创建的触发器策略可能需要调整,可在模板中 “自动发现规则” 下修改
  over
页: [1]
查看完整版本: 使用pm2-zabbix监控node工程