使用pm2-zabbix监控node工程

环境

centos 7

zabbix 3.2.6

node 4.4.3

安装

# wget http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-agent-3.2.6-1.el7.x86_64.rpm
# wget 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=[zabbix server ip]
ServerActive=[zabbix server ip]
Hostname=[server端中对应本机配置中的主机名,通常就是本机的IP]

配置开机自启,并启动它

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

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

安装pm2-zabbix

安装并部署配置文件,若没有git命令需要先用yum安装,此处node安装在/usr/local/node-v4.4.3-linux-x64/,安装的pm2-zabbix版本为0.3.2

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

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

User=root

ExecStart=/usr/local/bin/pm2-zabbix --hostname=[同上文的hostname] --monitor

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

UserParameter=pm2.processes,sudo -u root pm2-zabbix --hostname=[同上文的hostname] --discover

配置zabbix用户的sudo权限

# visudo

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

启动

配置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自动创建的触发器策略可能需要调整,可在模板中 “自动发现规则” 下修改

常见问题

后台本机配置的自动发现规则中报错"Unsupported item key"或者/var/log/message中报错"......Failed to send process list with stats to server: Error: Command failed: /usr/bin/zabbix_sender......":

通常是因为下面两个原因:

1. 增加或者修改了/etc/zabbix/zabbix_agentd.d/pm2-zabbix.conf后没有重启zabbix-agent。
2. zabbix支持新加的key需要时间,这个时间配置在"管理->一般->其他->刷新不支持的监控项目(秒),如果这个值太大就改小一点。

pm2-zabbix启动pm2守护进程的问题

一个朋友遇到重启pm2-zabbix服务会清空pm2中业务的问题,经过排查发现这是一个都会遇到的情况:

在pm2-zabbix插件目录下可以发现有一个自带的pm2:./pm2-zabbix/node_modules/pm2/bin/pm2

如果zabbix-agent和pm2-zabbix这两个服务启动时在本机未发现pm2的守护进程,就会用这个pm2启动一个,然后这个pm2守护进程就成了它的一个子进程,如下图:

这种情况下,如果重启pm2-zabbix服务,自然这个pm2的守护进程就会随之重启,其中的业务进程当然也没有了;

另外还有,正在运行的pm2守护进程与系统path目录下的pm2版本不同时使用pm2命令会有如下图的提示,只要运行pm2 update即可自动转换,并且会解除与pm2-zabbix或zabbix-agent的子进程关系:

不过呢,如果凑巧两者版本相同是否就没有这个提示了,由于没做测试无法确定;

反思这个问题其实也可以理解,毕竟该插件是依赖pm2命令的,我们都知道pm2命令执行时若没有守护进程就会启动一个新的,在插件中未发现有提供避免该情况的方法,那就只能自己绕过了;

其实知道了原理处理也就简单了:

先启动系统path中的pm2再启动那两个服务就可以避免这个问题,如果服务都是开机启动的可以用pm2 update纠正,实在不放心直接杀掉有问题的pm2守护进程再自己手动启动;

 

over

转载于:https://www.cnblogs.com/toSeek/p/7274640.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix是一款开源的网络监控和报警系统,可以用于监控服务器、网络设备、虚拟机等。下面是Linux系统上安装Zabbix的操作步骤: 1. 安装所需软件: - 在Debian/Ubuntu系统上,使用以下命令安装所需软件: ``` sudo apt-get update sudo apt-get install apache2 mysql-server mysql-client php php-mysql php-gd php-xml php-bcmath php-mbstring php-ldap php-xmlrpc ``` - 在CentOS/RHEL系统上,使用以下命令安装所需软件: ``` sudo yum install httpd mariadb-server mariadb php php-mysql php-gd php-xml php-bcmath php-mbstring php-ldap php-xmlrpc ``` 2. 配置数据库: - 启动并设置MariaDB/MySQL服务: ``` sudo systemctl start mariadb sudo systemctl enable mariadb ``` - 运行以下命令来设置MariaDB/MySQL的root密码和其他配置: ``` sudo mysql_secure_installation ``` - 创建一个新的数据库和用户: ``` sudo mysql -u root -p CREATE DATABASE zabbixdb character set utf8 collate utf8_bin; GRANT ALL PRIVILEGES ON zabbixdb.* TO 'zabbixuser'@'localhost' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EXIT; ``` 3. 下载和安装Zabbix Server: - 下载最新的Zabbix Server软件包: ``` wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb ``` - 安装Zabbix Server软件包: ``` sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb sudo apt-get update sudo apt-get install zabbix-server-mysql zabbix-frontend-php zabbix-apache-conf zabbix-agent ``` 4. 导入Zabbix数据库模板: - 运行以下命令导入Zabbix数据库模板: ``` sudo zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | sudo mysql -u zabbixuser -p zabbixdb ``` 5. 配置Zabbix Server: - 编辑Zabbix Server配置文件: ``` sudo nano /etc/zabbix/zabbix_server.conf ``` - 修改以下参数: ``` DBHost=localhost DBName=zabbixdb DBUser=zabbixuser DBPassword=password ``` - 保存并关闭文件。 6. 配置Zabbix Frontend: - 编辑Zabbix Frontend配置文件: ``` sudo nano /etc/zabbix/apache.conf ``` - 修改以下参数: ``` php_value date.timezone Asia/Shanghai ``` - 保存并关闭文件。 7. 启动Zabbix服务: - 启动Zabbix Server和Zabbix Agent服务: ``` sudo systemctl start zabbix-server sudo systemctl enable zabbix-server sudo systemctl start zabbix-agent sudo systemctl enable zabbix-agent ``` 8. 访问Zabbix Web界面: - 打开Web浏览器,访问以下URL: ``` http://服务器IP地址/zabbix ``` - 根据安装向导完成Zabbix的初始化配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值