先说下公司游戏的简单程序架构,客户端安装包会封装一个router地址,通过这个router地址可以找到login(登录服)的地址,通过登录服的配置文件可以找到配置的各个区服如,s1,s2等。router和login两个域名的可用性是最重要的,如果其中一个域名出现问题都会影响所有区服的登录。监控router和login的可用性可以利用Zabbix的Web monitoring功能来监控。由于去年出现过好几次由于MongoDB慢查询导致游戏没法登录的情况,或者由于游戏的配置文件配置失误导致游戏无法登录游戏等。所以现在除了对router和login域名的可用性进行监控之外,也需要通过程序模拟玩家登录游戏,如果有任何区服登录失败就发送报警信息,这样就可以在玩家发现之前作出相应处理。还需要和开发同事进行沟通,理解登录游戏的整个过程,提供一些参数和接口。

zabbix官方关于web monitoring的介绍地址:

https://www.zabbix.com/documentation/2.2/manual/web_monitoring

利用zabbix的web监控功能,可以监控多个站点的可用性。使用之功能之前系统需要安装curl相关的软件包。CentOS下使用yum install curl-devel。然后编译安装zabbix server的时候需要添加--with-libcurl参数。

要激活web监控之前需要先定义web应用场景。一个web应用场景包括多个HTTP请求步骤,zabbix server将按照指定的顺序执行这些步骤。

从zabbix 2.2开始,web应用场景可以和item,trigger一样在模板中添加,并应用到多个主机。

任何定义的web应用场景将收集以下信息:

如定义Login_Router_Url_Check这个web应用场景,其中定义了两个检查步骤Login_Url,Router_Url


  • 整个web应用场景定义的所有步骤的每秒的平均下载速度

    web.test.in[Login_Router_Url_Check,,bps]

  • 执行步骤失败的次数

   web.test.fail[Login_Router_Url_Check]

  • 最后一次的错误信息

   web.test.error[Login_Router_Url_Check]

任何定义的web应用场景步骤将收集一下信息:

  • 每秒的下载速度

   web.test.in[Login_Router_Url_Check,Login_Url,bps]

  • 响应时间

   web.test.time[Login_Router_Url_Check,Login_Url,resp]


  • 响应代码,如200,403等

   web.test.rspcode[Login_Router_Url_Check,Login_Url]


zabbix可以检查一个页面的返回值中是否包含某个自定义的字符串,这个可以用来检测web的可用性,同时可以模拟web登录过程。

zabbix同时支持HTTP和HTTPS。当运行一个web应用场景时,zabbix将跟踪所有的重定向链接,所有的cookie将被保留。执行过程中收集的所有数据将被存储在数据库中,供创建图标,触发器,告警通知使用。


手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_网站可用性监控


手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_网站可用性监控_02


手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_zabbix_03



手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_网站可用性监控_04


设定好web应用场景后,zabbix会自动添加一些items到这个模板,可以根据这几个items设定触发器。

手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_网站可用性监控_05


手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_zabbix_06


手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_zabbix_07



手游公司运维之利用Zabbix的Web monitoring功能监控游戏相关域名_zabbix_08