双十一剁了手(是真的剁了手),今天在这手残志坚,开始写一些东西吧,做网络运维已经有五六年,从现在开始养成记录的良好习惯,希望不晚。
在运维的过程中遇到问题我大都首先会去谷歌(之前是用百度的,发现大多解决不了问题或搜不到,问各种技术群里的大神,或许问题太简单没人愿意回答,或许没人懂。得到的最多的一句话是‘谷歌啊!’,感谢这句话,现在读英文文章的水平也有些许的提升吧),英文的资料会多一些,也大多能解决自己的问题,也会遇到一些没有答案的。尽量多写一些我遇到的问题,希望能给同行的兄弟姐妹们哪怕一点点的帮助。
最近部署了Zabbix(说是最近,也有几个月了吧),把一些基本的网络设备如:交换机、路由器、防火墙、WLC等都加了进来。领导心血来潮,要把之前安装的智能PDU也要纳入监控,通过智能PDU监控机房的温湿度以及机柜的用电量信息。
第一步研究监控的方法:肯定是基于SNMP监控,Easy!!!信心满满跟领导说此事可行,好实现,现实却常常打脸。PDU的SNMP OID 找不到!厂商(RITTAL)产品网络上没有资料,只能厂商提供,厂商的项目负责人不懂技术,技术支持又特别不给力,来来回回将近一个月才拿到我要的信息。
第二步制作模板:有了第一步的基础,制作模板相对来说会比较简单一点。制作过程中注意Item中SNMP获取到的值和日常使用的值的关系,一般做一些简单的倍数运算就可以修正,然后改一下单位就好了。然后设置温度、湿度、电流、电压的告警,添加曲线图就OK了。
这里就不在介绍API是什么了,如果不知道的化自行百度吧,会得到很多像如下的解释: http://baijiahao.baidu.com/s?id=1597881116201407882&wfr=spider&for=pc
我的理解API就是允许你通过代码的方式对系统进行你需要的操作,就像我要把这200个PDU加入到Zabbix系统里并应用相关的模板。
资料最准确最详细的肯定是官方文档了,会列举所有的操作所需要的参数以及方法: https://www.zabbix.com/documentation/4.4/manual/api
测试的时候可以使用相关的工具如:Postman、Curl等进行相关的测试,我选用了Curl进行测试。
1、login方法获取身份验证令牌,之后的所有操作都可以用这一串字符串做为认证的信息。
2、继续测试其他方法
测试的时候发现问题,返回结果总是为空,‘{"jsonrpc":"2.0","result":[],"id":1}’,试了其他方法也是这样,user.login可以返回正确的返回值,账户什么的应该没有问题。
有问题怎么办?百度呗,百度不行谷歌,大家可以根据返回信息‘{"jsonrpc":"2.0","result":[],"id":1}’自行百度或谷歌一下,我确实是没有找到结果,谷歌上确实有人遇到过同样的问题,但是下面的回复全部是让按照官方API的规则去使用,问题是我根本就是按照API的规则写的啊,哪有什么问题。。。
经过我不断的思考以及尝试,终于发现问题原因。
首先确定Curl的账户权限问题,即使root权限仍然不行。
然后确认API 账户的权限问题,为了防止权限问题也已把API的测试账户和administrator账户放在了同一个组。经过不断尝试发现是 User type问题,改成Zabbix Super Admin就好了。
然后可以进行下一步了,批量添加主机,下次更新。