Zabbix监控ActiveMQ队列数以及结合Grafana展示

在ZABBIX上监控MQ队列

众所周知,Zabbix是可以自定义监控项的,那么就代表只要能获得到的数字都可以进入Zabbix的监控范围内。作为消息队列,Activemq里的“消息堆积数”是监控的重点项目之一。

获取消息堆积数并不是一个很难的事儿,浏览器里登陆MQ的web网页控制台,输入账号密码之后,在Queues的网页里就能看到如下的界面:
akb48

其中Pending Messages就是“等待消息”,Consumers是“消费者”,Enqueued是“入队”,Dequeued是“出队”。入队数=出队数+等待数

现在我们要获取到图中的队列叫AggregateQueue里的那个23596,很简单,shell语句是:

1
curl -s -u网站用户名:网站密码 http://网站外网IP地址:8161/admin/queues.jsp | grep -A 5 "具体的队列名</a></td>"|awk -F '<' '{print $2}'|sed 's/td>//g'|head -2|tail -1

这里curl有一个-s的参数,不然会显示curl的状态。如图:
akb48

语句在此,写脚本就很easy了。不过我这里就直接监控具体数字了,没有写脚本,如果要写python脚本的话,我推荐各位移步:http://blog.51cto.com/sfzhang88/1316789 ,看一下这篇文章。

现在把这个监控项添加到具体的zabbix_agentd.conf里吧,具体添加过程可以参看 http://blog.51cto.com/chenx1242/1839829 ,由于是curl网站,那么直接把这个监控项加到Zabbix-server里就好,然后使用zabbix_get检查一下。有的zabbix 3.x里没有zabbix_get,安装zabbix_get方法:yum install zabbix-get.x86_64

zabbix_get检查情况和具体的trigger情况如下:
akb48
akb48

配置Zabbix结合Grafana

我使用的Grafana版本是4.3.2,下载地址:https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.3.2-1.x86_64.rpm ,下载完毕之后,直接yum install /路径/grafana-4.3.2-1.x86_64.rpm,由于Grafana使用的是AWS的云存储,可能在墙内的下载会比较吃力,有断开的情况就多试几次。话说Grafana的升级是比较频繁的,半年不到的时间升级了三次,现在最新版本已经是4.6.2。所以说这玩意,其实选择一个稳定的就好。

启动grafana的方法就是:systemctl start grafana-server.service,配置开机自启动的方法:chkconfig grafana-server on。然后在浏览器里输入grafana外网ip地址:3000就能看到grafana的界面,默认密码:admin/admin,grafana默认的日志存储路径是/var/log/grafana/

Grafana与ZABBIX联系的插件下载方式:grafana-cli plugins install alexanderzobnin-zabbix-app,安装之后,重启一下grafana-server,在web界面就会看到插件已经成功安装,如图:
akb48

其他更多的插件下载可以在grafana的官方网站查看到:https://grafana.com/plugins ,用grafana-cli都能搞定,还是那话,墙里的同学速度要慢一点。

现在配置Zabbix作为Grafana的数据源,首选点击网站上面的红色漩涡标志,选择zabbix,点击Plugin Config,点击Enable,启动Zabbix插件。如图:
akb48

再次点击红色漩涡,这次选择Data Sources,点击Add data source,如果插件启动成功,那么在Type里是可以选择zabbix的,然后就是填各种东西,如图:
akb48

这里有一些要额外说明:
1)url这个是zabbix的API地址http://ip/zabbix/api_jsonrpc.php,这个可以在zabbix服务端上可查找find / -name api_*.php
2)username和passwd是zabbix WEB界面的登录用户名和密码,有读的权限即可;
3)alerting选择启动,min severity选择high;

然后点击save & test,如果都正确的话,就会出现success,如图:
akb48

在Grafana展示趋势图

点击左上方红色漩涡,Dashboards的地方点击+new,然后在小齿轮的地方选择Templating,如图:
akb48

在Templating里要建立4个模板,其中group的添加方法如下,如果Query正确的话,在点击Include All option的时候,就会有“组”显示出,而且和zabbix里完全一致:
akb48

group添加完了,还有host、application、iteams,添加的大同小异,需要注意的是Query的不同:
host的Query:$group.*
application的Query: $group.$host.*
iterm的Query:$group.$host.$application.*

以上四个template都搞定之后,应该是这个样子:
akb48

模板搞定了,下面就是图形展示,选择对应的hosts、application和items就自动有图像生成了!
akb48

最后说一下页面自动刷新,点击右上角“Last 6 hours”, 在弹出的下拉框中,选择Time range下的Refreshing every选项,点击下拉框按钮,默认应该有“off”和“1m”两个选项。点击“1m” 然后Apply设置,即为每一分钟刷新一次数据的意思。设置成功后,在原来Last 6 hours的后面会出现Refresh every 1m的橙色文字!

参考资料

《实践MQ的小demo》http://www.jianshu.com/p/3a39c8dd4f29

感谢您请我喝咖啡~O(∩_∩)O,如果要联系请直接发我邮箱chenx1242@163.com,我会回复你的
-------------本文结束感谢您的阅读-------------