参见博文http://john88wang.blog.51cto.com/2165294/1538456 利用zabbix api根据主机分组来添加screen
当一个Screen中的Item数量需要增加时,执行Screen会报错
The Y coordinate of screen element xxx is too big
这个问题一直存在了好久,以前都是先删除原来的Screen,再重新创建新的Screen临时解决,今天总算一次性解决了。
原来的代码
print "Updating Screen Name %s Screen ID %s" %(screen_name,update_screenid) values1 = { "jsonrpc" : "2.0", "method" : "screen.update", "params" : { "screenid" : update_screenid, "screenitems": [] }, "auth" : auth, "id" : 2 } output1 = requestJson(url,values1)
关键就在于使用screen.update这里,没有把hsize和vsize这两个参数写上,因为如果当需要添加的Screen中的Item需要增加时,这两个参数也会跟着变动,如果保持原来的不变,那么的新增的Item就添加不进去,没有办法更新Screen,所以报错The Y coordinate of screen element xxx is too big
解决办法:
values1 = { "jsonrpc" : "2.0", "method" : "screen.update", "params" : { "screenid" : update_screenid, "screenitems": [], "hsize": columns, "vsize": vsize, }, "auth" : auth, "id" : 2 }
Zabbix API官方说明
https://www.zabbix.com/documentation/2.2/manual/api/reference/screen/update
https://www.zabbix.com/documentation/2.2/manual/api/reference/screen/object#screen
https://www.zabbix.com/documentation/2.2/manual/api/reference/screenitem/object#screen_item