Zabbix工程师面对在线研讨会大家的各种提问一一做了解答:

 

Zabbix与AWS的Cloudwatch之间的关系?

Tina的回答:

首先,Cloudwatch是AWS上的一个服务,用途在于监控AWS的产品,虽然它也可以自定义一些监控,但是与Zabbix这个开源的监控服务有所区别。Zabbix是可以同时对很多设备进行监控,除了Linux服务以外,还支持物理服务器,像防火墙、交换机等等。

 

Zabbix的自动化监控部署是怎么做的? 以及如何批量调整机器的监控策略?

Tina的回答:

Zabbix本身有三种自动发现功能。

第一种是网络自动发现。可以在指定的IP段或者范围内发现服务器,自动创建host,并做相应模板操作。

第二种是自动注册的功能。它是通过事先部署好的Zabbix代理,在启动的时候自动向Zabbix服务器发出请求,后者可以根据请求创建host,比较适合与AutoScaling这样的服务配合使用。

第三种是Zabbix的低级发现功能。对于在服务器上数量不确定的服务,通过脚本实现,当增加服务时就会向Zabbix请求,可以创建item和trigger的功能。这通常是和自动化部署搭配,并用Zabbix API,结合像Ansible、SaltStack这样的自动化工具在一起使用。Zabbix自带的功能对于做批量调整是十分麻烦的,因此我们公司写了许多工具,通过调用API来做到批量的调整。

 

Zabbix如何优化内存以及CPU的使用,以及能够支持客户端的数量大概是多少?

Tina的回答:

不清楚贵公司对于Zabbix的具体使用,但Zabbix是一个内部工具,它的访问量通常比普通的商务上的业务服务要小得多。Zabbix的压力主要是在后端的数据库,它的前端PHP并不会有太多压力。如果想优化前端,可以调整PHP相应的参数。你可以设置buffer 和cache,来使他们尽量使用缓存。trigger不要设置得过于复杂,表达式的逻辑尽量精简以减低它的计算量。

 

Zabbix 在监控Docker类应用时,是否有相应功能?或者说只可以是我们自己写好相应的脚本然后由Zabbix调取,官方不提供此类?

Tina的回答:

容器非常火,对于容器的监控也是一大难题。Zabbix有一个相匹配的功能,就是低级自动发现。但也需要自己写脚本去实现。对于Docker可以返回容器的名字,Zabbix会根据发现的容器自动创建host。同时,还可以创建相应的监控像和trigger。在2版本之后,Zabbix可以支持载入C模块,可以在启动Zabbix 客户端时载入。非官方发布了一个Docker容器的C模块,大家可以尝试使用。通过C语言调用Docker的API,去检测Docker容器的状态,随后把它编译成C模块,载入到代理中,这样可以非常好用地监控Docker,但更多功能还需像我司一样,自己开发。

 

对以上监控工程师Tina的回答,不知您满不满意?若有更多想与我们探讨的问题,请以各种方式联系我们,恭候您的赐教。