# Jenkins를 이용하여 상태 모니터링하기
매번하지만 항상 까먹는 젠킨스 설정.
간단하게 젠킨스를 이용해 서비스가 잘 돌아가고 있는지 체크하는 잡을 정리한다.
환경: Jenkins
# 매개 변수
- 매개변수로 꺼내놓으면 다른 서비스, 웹사이트 등 하나의 item을 카피해서 변경해주기 쉽다.
URL
: 확인할 URLATTEMPT
: 시도 할 숫자TIMEOUT
: 실패 시, 다시 시도할때까지 기다릴 시간(초)
# 빌드 유발
- Build periodically
- 매 5분마다.
H/5 * * * *
# Build Script
위의 매개 변수를 적용한 코드
#!/bin/bash
url=${URL}
attempts=${ATTEMPT}
timeout=${TIMEOUT}
online=false
echo "Checking status of $url."
for (( i=1; i<=$attempts; i++ ))
do
code=`curl -sL --connect-timeout 20 --max-time 30 -w "%{http_code}\\n" "$url" -o /dev/null`
if [ "$code" = "200" ]; then
online=true
break
else
sleep $timeout
fi
done
if $online; then
echo "Monitor finished, website is online."
exit 0 # Build Success
else
echo "Monitor failed, website seems to be down."
exit 1 # Build Failed
fi
# 빌드 후 조치
- 슬랙, 이메일 등 상황에 맞는 알림 시스템과 연결한다.