pm2-zabbix?工具可以實(shí)現(xiàn)Zabbix對(duì)Node.js的監(jiān)控報(bào)警
Node.js安裝
wget http://nodejs.org/dist/node-latest.tar.gz? 下載最新版本
./configure
make && make install
特征:
自動(dòng)發(fā)現(xiàn)通過(guò)PM2管理的Node.js進(jìn)程腹纳。
報(bào)告Nodes.js進(jìn)程狀態(tài)帖烘、CPU使用率、內(nèi)存占用以及進(jìn)程是否重啟纸厉。
監(jiān)控PM2守護(hù)進(jìn)程自身狀態(tài)挠蛉、資源占用和PID改變瘾敢。
已提供易于安裝的Zabbix監(jiān)控項(xiàng)模板祝辣。
1.Node.js服務(wù)器安裝?pm2-zabbix救赐,如果沒(méi)有安裝?cnpm涧团,使用Node.js自帶?npm?代替
npm install -g pm2-zabbix
2.新建軟連接,根據(jù)自身服務(wù)器修改軟連接指向的真實(shí)文件路徑(把客戶端上的配置文件和zabbix_sender提供給pm2-zabbix調(diào)用)
mkdir -p /etc/zabbix
ln -s /usr/local/zabbix/etc/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf
ln -s /usr/local/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
3.測(cè)試自動(dòng)發(fā)現(xiàn)功能是否正常经磅,Node.js應(yīng)用實(shí)例使用普通賬號(hào)node運(yùn)行,所以切換到node執(zhí)行即可
sudo -u node /usr/local/bin/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"
? ? ? ? ? ? ? ? }
? ? ? ? ]
}
4.克隆代碼
git clone https://github.com/greatcare/pm2-zabbix.git
5.Zabbix Web管理后臺(tái)導(dǎo)入模板文件?pm2-zabbix/install/zabbix-server/pm2-zabbix.template.xml
6.Node.js服務(wù)器添加服務(wù)泌绣,根據(jù)服務(wù)器操作系統(tǒng)版本選擇,并修改服務(wù)運(yùn)行用戶
RHEL/CentOS 7系列:
cp pm2-zabbix/install/init/systemd/pm2-zabbix.service /usr/lib/systemd/system/
修改目標(biāo)文件?pm2-zabbix.service?文件內(nèi)容?User:
User=node
RHEL/CentOS 6或5系列:
cp pm2-zabbix/install/init/sysv/pm2-zabbix /etc/init.d/
修改目標(biāo)文件?pm2-zabbix?文件內(nèi)容?DAEMON_USER?和?PIDFILE?項(xiàng)预厌,確保運(yùn)行用戶對(duì)?PIDFILE?指向文件有寫(xiě)權(quán)限:
DAEMON_USER=node
PIDFILE=/tmp/pm2-zabbix.pid
7.啟動(dòng)?pm2-zabbix?服務(wù)
RHEL/CentOS 7系列:
systemctl start pm2-zabbix
RHEL/CentOS 6或5系列:
service start pm2-zabbix
8.修改Zabbix Agent配置文件?zabbix_agentd.conf,添加包含其它配置
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf
9.拷貝Zabbix Agent配置
cp pm2-zabbix/install/zabbix-agent/pm2-zabbix.conf /usr/local/zabbix/etc/zabbix_agentd.conf.d/pm2-zabbix.conf
10.修改配置?pm2-zabbix.conf?內(nèi)容運(yùn)行用戶和?pm2-zabbix?路徑
UserParameter=pm2.processes,sudo -u node /usr/local/bin/pm2-zabbix --discover
11.服務(wù)器終端執(zhí)行程序?visudo?或者直接修改文件?/etc/sudoers?添加sudo配置
zabbix? ALL=(ALL:ALL) NOPASSWD: /usr/local/bin/pm2-zabbix
Defaults:zabbix !requiretty
12.重啟Node.js服務(wù)器Zabbix Agent服務(wù)
/etc/init.d/zabbix_agentd restart
13.Zabbix Web管理后臺(tái)設(shè)置Node.js服務(wù)器添加鏈接?Template App PM2?模板?
收集數(shù)據(jù)阿迈,開(kāi)啟(debug)??server(zabbix服務(wù)端IP)
pm2-zabbix --monitor --server 172.16.23.1 --debug
來(lái)確定是否可以正常發(fā)送數(shù)據(jù)給服務(wù)端