Hubot + Rocket.Chat 支持zabbix监控

Hubot在网上能找到很多相关脚本,我之前查找zabbix相关脚本时找到了一个由日本国际友人编写的一个脚本,地址如下:
https://github.com/sorah/hubot-zabbix/blob/master/scripts/hubot-zabbix.coffee

看日期虽然是2014年最后一次修改,但zabbix官方Api这些年并没有太大的变化,所以这个脚本可以直接使用。

这个coffee脚本下载到scripts目录下,需要安装几个模块:

1
npm install crypto util moment

同时需要配置几个系统变量:

1
2
3
4
5
6
export HUBOT_ZABBIX_USER=           #zabbix用户
export HUBOT_ZABBIX_PASSWORD= #zabbix密码
export HUBOT_ZABBIX_ENDPOINT= #zabbix url
export HUBOT_ZABBIX_MIN_SEVERITY=2 #告警等级
export HUBOT_CACHE_IMAGE=true #是否开启监控图缓存
export HUBOT_URL= #hubot url

如果开启监控图缓存,会保存监控图到缓存,通过#{hubot url}/zbximg/#{hash}.png访问,所以你需要对外开放Hubot端口,才能访问到监控图。

我后面根据个人需要对这个脚本又改了一下:

1
2
3
1、添加zbx hosts,用于查看所有主机;
2、将输出图像链接改为输出图像,适用于Rocket.Chat;
3、去掉缓存zabbix监控图像到hubot域名,改为保存到本地,并通过nginx再返回,这样做是为了避免对外直接暴露hubot端口,缺点是需要多搭一个带https的图片服务器;

改后的脚本需要加上两个系统变量:

1
2
export IMAGE_URL=          #图片服务器URL
export IMAGE_PATH= #图片本地保存目录,比如/opt/zbx_image

还要安装fs模块:

1
npm install fs

需要改后的可以下载下面coffee文件:
hubot-zabbix.coffee

zabbix监控图:
hubot10.png


- - END - -


腾讯云
0%