다음 헬스체크 URL을 모니터링하고 싶습니다. mongodb가 연결 해제 상태가 되면 경고를 생성해야 합니다. 나는 bash 스크립트를 작성했습니다. 아직 작동하지 않는 것 같습니다. 누구든지 도와줄 수 있나요? 감사해요
건강검진은 언제 진행되나요?https://www.example.com/healthz결과는 다음과 같은 응답입니다.{"mongodb":"connected","redis":"connected"}
내 Bash 스크립트는 다음과 같습니다
#!/bin/bash
data=$(wget --timeout 5 -O - -q -t 1 https://www.example.com/healthz)
message=$(jq '.Disconnected' <<< "$data")
if [[ "$message" == '"Success"' ]] ; then
echo something
else
send email
답변1
.Disconnected
JSON 응답에는 키가 없습니다.
.mongodb
문자열의 키를 확인하려면 connected
다음을 수행하십시오.
#!/bin/sh
if wget --timeout 5 -O - -q -t 1 https://www.example.com/healthz |
jq --exit-status '.mongodb == "connected"' >/dev/null
then
# code for the case when MongoDB is connected
else
# code for the case when MongoDB is *not* connected
fi
이렇게 하면 응답을 중간 변수에 저장하는 우회적인 방식이 아닌 wget
에서 로 직접 전달됩니다.jq
유틸리티가 출력되지 않거나 --exit-status
(또는 -e
)을 사용하면 유틸리티가 성공적인 종료 상태(0)로 종료됩니다. 키에 값이 있으면 우리가 제공한 표현식이 출력됩니다.jq
nil
false
jq
true
.mongodb
connected
jq
그런 다음 명령문의 종료 상태를 사용하여 if
취할 분기를 선택합니다.