首页 > 技术笔记 > NRPE: Unable to read output with visudo

NRPE: Unable to read output with visudo

2014年9月10日 发表评论 阅读评论

通过nrpe远程调用脚本执行MegaCli检查服务器Raid卡状态,为了让nrpe用户可以执行程序,配置了visudo及nrpe.cfg如下
visudo
Cmnd_Alias NAGIOSCMD = /usr/local/nagios/libexec/checkraid
nagios ALL=(ALL) NOPASSWD:NAGIOSCMD
————
nrpe.cfg
command[check_raid]=sudo /opt/nagios/libexec/checkraid

完成后通过远程调用,报错 NRPE: Unable to read output.
但是本地su – nagios 后执行程序,返回正常,而且之前检查mysql 主从状态也是采用nrpe配合visudo的方式完成的,这次为啥不成?
打开nrpe debug日志,跟踪执行过程,没有有意义的信息,
之后使用strace -f -p 跟踪,发现有报错
[pid 31080] write(2, “sorry, you must have a tty to ru”…, 38) = 38
突然想起visudo中的用户默认是require tty的。
更改visudo配置,添加
Defaults:nagios !requiretty
之后再远程执行调用,返回正常,问题解决。

分类: 技术笔记 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.