原创作者:郑海山
2007-2014:厦门大学 工程师
2013-至今: 厦门大学信息与网络中心 研发部部长
2014-至今: 厦门大学 高级工程师
管理学上有一句名言,If You Can't Measure It, You Can't Manage It。对于监控的重要性我就不细说了,原先我们使用Nagios、Catti、SmokePing、Icinga。Prometheus、Grafana、collectd、ELK、Graylog2啥的乱78糟的也都在用,每个开源软件都有他的适用场景。最近是由于原先安装的Nagios操作系统版本太老了,而且Nagios都9102年了都没什么大更新,索性我重新做了升级,并且全程使用了自动化部署,将一键部署源代码放在GitHub上,
https://github.com/haishanzheng/CampusMonitor
欢迎试用,觉得好用,请Star,有意见或者建议欢迎写信给haishanzheng@sina.com。
Why Them
为什么选择Zabbix、Grafana、Icinga、SmokePing组合?主要是对应信息中心的2个需求。
业务是否正常,涉及到网络交换机,网站和业务流程。
测量师生在多出口环境下对外访问互联网网站延迟。
对应第一个需求,由于Nagios太老了,所以换Zabbix。Zabbix功能非常强大,GUI、API配置,然而我还是忘不了Nagios的文本配置对于程序化生成配置文件的友好,所以也引入了Icinga,2套类似的系统并行。
测量延迟使用SmokePing,SmokePing使用Perl和RRD文件,技术上稍微落后,但是配置异常简单,能达到目的也行。当然最近某网也出了很帅的“此版本与60寸以上大屏幕更配哦”的基于现网流量时延分析升级版,SmokePing可以认为是主动的定向的测量。
引入Grafana是地质大学宋焘的一句话给我打开了新天地。确实,Grafana的界面更加酷炫,Zabbix更偏向内部系统,通过将数据传递给Grafana,做一些友好性处理,剔除技术细节,就可以做个类似 https://grafana.wikimedia.org 或者中科大张焕杰的 http://linux.ustc.edu.cn/ ,向公众开放可访问的界面,让用户也可以看到整个校园网、数据中心和业务正常情况,减少故障报修订单。当然,是不是真的敢对外公开这个以后再说了。。。
这是整体框架图。

自动化部署有什么好处
可以看框架图,部署是非常复杂的,为了安全,Zabbix使用主从模式部署,从代理服务器部入一卡通专网和互联网云平台。SmokePing可使用树莓派部署后到处乱丢,没有自动化部署工作量是非常巨大的,而且使用了自动化部署,也可以在不同地方复制,让其他闲人也可以参与进来。
最简单的部署就需要6台服务器,我还引入了Vagrant,引入Vagrant的目的是建立服务器都自动化了。原先你可能需要在云平台开6台服务器,配置IP地址,写入inventory,然后跑Ansible脚本,加入Vagrant后,只要安装完Vagrant、VirtualBox,在项目目录内跑一个命令vagrant up,就会自动建立6台服务器,并自动跑Ansible部署完成。然后就可以在本机玩了,当然本机的内存要大一点。
GitHub的代码只供参考暂时,可能有错误,很多东西我也在摸索,我会根据反馈继续完善。
有什么坑
幸运的是坑我都踩了,以Zabbix支持中文为例,全网查找你可能会看到很多让你传Windows字体文件,替换或者更改PHP源代码,但是实际上Ubuntu的Zabbix包已经自带了字体切换功能。比如:
apt-get install fonts-wqy-zenhei
update-alternatives --install /usr/share/zabbix/fonts/graphfont.ttf zabbix-frontend-font /usr/share/fonts/truetype/wqy/wqy-zenhei.ttc 20
在Ansible里面就是这么一段话

这才是最优雅的实现。
说重点,界面长什么样
如果你花10分钟安装完Vagrant、VirtualBox,又花了半个小时跑完vagrant up,你会得到什么?

6个虚拟机,一台主控controller。
Zabbix

Zabbix主界面,最下面是目前问题的服务器或交换机。

基于SNMP自发现交换机端口后的对端口出入流量的画图。

Ping的结果。

资产视图,总的资产和问题资产。

资产视图。
Grafana

Grafana以Zabbix数据源做的图。某台安装了Agent的Linux的服务器性能图。

Grafana可以方便叠加Zabbix的指标。找出Ping时延最大的多台交换机。
Icinga

Icinga总资产。

问题出现的时间序列。

Icinga Dashboard。
SmokePing

SmokePing左边是监控目标。

对某个目标,叠加多个树莓派检测的结果,比较。


整体Top视图。

单个服务器的Ping时延和丢包率。

Zabbix中国峰会即将开幕

加入Zabbix中国峰会,学习更前沿的监控技术,聆听更多元的行业案例,解决使用疑点难点

点击图片,立即参与!

一键关注
关注公众号
加入社区群


Zabbix社区,因你而更美好

点击“阅读原文”









