내 서버가 Openstack Swift 컨테이너에 연결할 수 있는지 여부를 NAGIOS와 확인하고 싶습니다. 나는Nagios 커스텀 플러그인 python Openstack Swift 클라이언트
스크립트를 잘 작성 권한을 가지고 있으며, Nagios를 제대로 실행할 수 있는지
#!/bin/bash
set -e
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
if ! which /usr/bin/swift >/dev/null 2>&1
then
echo "Swift command not found"
exit $STATE_UNKNOWN
fi
my_swift="/usr/bin/swift -V 2.0 -A http://my-swift-domain.com:5000/v2.0/ --insecure --os-username my-user-name --os-password my-password --os-tenant-name tenant-name stat container"
output=`$my_swift | grep Objects | sed 's/Objects:\s*\([0-9]*\).*/\1/'`
if [ "$output" -eq "$output" ] 2>/dev/null
then
echo "successfully connected to swift. Number of objects in container $output";
exit $STATE_OK
else
echo "Number of container objects is not correct";
exit $STATE_CRITICAL
fi
스크립트처럼 보이는 용기의 stat
을 얻기 위해 내가 스위프트 파이썬 클라이언트를 사용하여 간단한 스크립트를 썼다. 스크립트 자체가 bash는 작품에서 호출과 같은 반환
successfully connected to swift. Number of objects in container 4973123
을하지만 NRPE를 통해 그것을 실행하면 그렇지 않습니다. 난 그냥 내가 명령
output=`$my_swift | grep Objects | sed 's/Objects:\s*\([0-9]*\).*/\1/'`
심지어 호출되지 확신 디버깅 후 Number of container objects is not correct
를 얻을 수 /usr/lib64/nagios/plugins/check_nrpe -H 127.0.0.1 -c check_swift
를 실행하여 확인.
나는 거기에 swift --version
을 넣으려고했는데, 출력물을 줄 수 있는지 알아 보았습니다. 그래서 매개 변수에 문제가 있다고 생각하게되었지만 명령 자체가 쉘에서 호출 되었기 때문에 완벽하게 정상적으로 작동했기 때문에 실제로 무엇을 알지 못합니다.
는 어떤 도움을 주시면 감사 :