Zabbix添加Node.js監控

目前網上已有 pm2-zabbix 工具能夠實現 Zabbix 對 Node.js 的監控報警,Github地址node

特徵:

  • 自動發現經過 PM2 管理的 Node.js 進程。
  • 報告 Nodes.js 進程狀態、CPU 使用率、內存佔用以及進程是否重啓。
  • 監控 PM2 守護進程自身狀態、資源佔用和 PID 改變。
  • 已提供易於安裝的 Zabbix 監控項模板。

本文示例說明:

操做系統:RHEL/CentOS 7系列或者其它支持 systemd 管理服務的 Linux 發行版git

服務運行帳號:github

  • Node.js: node
  • Zabbix: zabbix

程序安裝路徑:npm

  • Node.js: /App/node
  • Zabbix: /App/zabbix

1.Node.js 服務器 root 帳號安裝 pm2-zabbix

npm install -g pm2-zabbix

2.終端切換至 node 帳號,測試自動發現功能是否正常:

su - node 
/App/node/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"
                }
        ]
    }

3.克隆代碼至 Node.js 服務器:

git clone https://github.com/greatcare/pm2-zabbix.git

4.登陸 Zabbix Web 管理後臺,導入模板文件 pm2-zabbix/install/zabbix-server/pm2-zabbix.template.xml

5.Node.js 服務器添加服務,並修改文件 pm2-zabbix.service 內容爲 User=node

cp pm2-zabbix/install/init/systemd/pm2-zabbix.service /usr/lib/systemd/system/

6.新建軟鏈接:

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 /App/node/bin/node /usr/bin/node
ln -s /App/node/bin/pm2-zabbix /usr/local/bin/pm2-zabbix

7.啓動 pm2-zabbix 服務:

systemctl start pm2-zabbix

8.修改 Zabbix Agent 配置文件 zabbix_agentd.conf,添加包含其它配置:

Include=/App/zabbix/etc/zabbix_agentd.conf.d/*.conf

9.拷貝 Zabbix Agent 配置:

cp pm2-zabbix/install/zabbix-agent/pm2-zabbix.conf /App/zabbix/etc/zabbix_agentd.conf.d/

10.修改文件 pm2-zabbix.conf 內容:

UserParameter=pm2.processes,sudo -u node /usr/local/bin/pm2-zabbix --discover

11.服務器終端執行程序 visudo 添加 sudo 配置:

zabbix  ALL=(ALL:ALL) NOPASSWD: /usr/local/bin/pm2-zabbix
Defaults:zabbix !requiretty

12.重啓 Node.js 服務器 Zabbix Agent 服務:

/etc/init.d/zabbix_agentd restart

13.Zabbix Web 管理後臺設置 Node.js 服務器添加連接 Template App PM2 模板後效果:

PM2 Daemon CPU Usage
PM2 Daemon Memory Usage
PM2's {#PROCESS_ID} CPU Usage
PM2's {#PROCESS_ID} Memory Usage

相關文章
相關標籤/搜索