Keycloak의 간단한 상태 확인
5000 단어 keycloakmonitoring
Today we will see how to add a simple and not intrusive health check based on shell script for your Keycloak
언젠가 나는 메인 클러스터에서 알려진 이유 없이 사용자 세션이 매우 빠르게 증가한다는 (나쁜) 경험을 했습니다.
그 결과 최대 힙 메모리 점유에 도달했기 때문에 CPU를 계속 사용하는 사용자 세션이 증가했습니다. 약간 수다스러운 상태 확인 프로브에 의해 전용 Keycloak 클라이언트에서 50,000개 이상의 사용자 세션이 생성되었습니다 😇
오늘의 교훈, 토큰 설정을 미세 조정했다면 테스트 사용자를 로그인하고 로그아웃하는 것을 잊지 마십시오.
간단한 프로브
유일한 전제 조건은 스크립트가 실행되는 환경에서
jq
명령을 사용할 수 있어야 한다는 것입니다.#!/bin/bash
login_access=$(curl -k -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-d "grant_type=password" \
-d "client_id=admin-cli" \
-d "username=alive" \
-d "password=[REDACTED]" \
'https://keyclaok.company.com/auth/realms/[REALM]/protocol/openid-connect/token')
error=$(jq -r .error <<< $login_access)
if [ $error == "null" ]; then
echo "Login successful for test user."
else
echo "Unable to login test user ($error)."
exit 1
fi
access_token=$(jq -r '.access_token' <<< "${login_access}")
refresh_token=$(jq -r '.refresh_token' <<< "${login_access}")
logout_response=$(curl -s -o /dev/null -w '%{http_code}' -k -X POST \
-H "Content-Type:application/x-www-form-urlencoded" \
-H "Authorization: Bearer $access_token" \
-d "client_id=[CLIENT_ID]" \
-d "refresh_token=$refresh_token" \
'https://keycloak.company.com/auth/realms/[REALM]/protocol/openid-connect/logout')
if [ $logout_response -eq 204 ]; then
echo "Logout successful for test user."
else
echo "Unable to logout test user ($logout_response)."
exit 1
fi
내가 해봐
https://gist.github.com/ulrich/aa04a793d54703998ecb015a0e2ff803
신용 사진 : https://pixabay.com/fr/users/jackmac34-483877/
Reference
이 문제에 관하여(Keycloak의 간단한 상태 확인), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ulrich/simple-health-check-for-keycloak-259p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)