Zabbix通过Scripts检测时报gethostbyname
2018-05-02 本文已影响16人
不正经运维
2018年5月2日 星期三
09:26
现象
因为某同事无意中把Zabbix数据库给truncate了,数据没能完全恢复(这台机器刚好近期进行了清理,而且历史问题导致一直没有进行磁带备份),所以就先把他的账号禁用了。
今天因为配置Agent需要进行连通性测试,所以要求进行账号开通。考虑到安全问题,建议他通过Web进行检测,方式如下:
- 在Web界面中,任意包含主机链接的地方,左键点击主机,在弹出菜单中,选择“Check/Agent”下的选项,即可进行Port和Alive测试。
但是,另外一个同事反馈,出现问题:
zabbix_get [6400]: Get value error: gethostbyname() failed for 'ip-hostname': [1] Unknown host
分析
问题很明显,gethostbyname
,本地不配置hosts的,所以应该用zabbix中的IP信息。
好久没用了,难道要修改代码?顿时头大。
看了下Scripts
中的内容,顿时清楚了,因为还有其他的项目做比较:
Check/Agent/Alive
/usr/local/zabbixagent/bin/zabbix_get -k agent.ping -s {HOST.NAME}
Check/Agent/Port
/usr/bin/nmap {HOST.NAME} -p 10050,20050 2>&1
这里使用的是{HOST.NAME}',所以
gethostbyname`了。
解决
直到原因就好解决了,直接修改{HOST.NAME}
为{HOST.CONN}
,如下:
Check/Agent/Alive
/usr/local/zabbixagent/bin/zabbix_get -k agent.ping -s {HOST.CONN}
Check/Agent/Port
/usr/bin/nmap {HOST.CONN} -p 10050,20050 2>&1
经过测试,正常好用。
其他
如果报找不到命令,那就说明命令的地址配置错了,修改下就行。