当我尝试使用 nagios 连接到 docker 容器时,我得到了 NRPE:无法读取输出。
当我直接在客户端计算机上运行此脚本时,它成功返回了 mongo db 中的行数。但是当我从服务器远程运行它时,我得到了无法读取输出的结果。
executing from nagios server
/usr/lib64/nagios/plugins/check_nrpe -H hostipaddress -c check_mongocount
NRPE: Unable to read output
检查MongoCount脚本基本上连接到docker容器并计算特定客户某个日期的行数。
count=`sudo /bin/docker exec -it container mongo dbname --quiet -u "test" -p "test" --authenticationDatabase "test" --eval '(db.test.count( { $and: [{create_at: {$gte: NumberLong("1499227200"), $lt: NumberLong("1499313599")}},{customerid:1}]}))'
/etc/nagios/nrpe.cfg添加了以下行。
command[check_mongocount]=sudo /usr/lib64/nagios/plugins/test.sh
我nrpe ALL=(ALL) NOPASSWD:ALL
有/etc/sudoers文件。虽然 nrpe 拥有执行 docker 命令的所有权限,但它无法返回计数值。