대규모 상태 확인 관리
한동안 이것은 꽤 잘 작동했습니다.
그러나 곧 우리는 도전에 직면했습니다. 상태 확인을 모든 테스트 환경으로 확장하고 싶었지만 그렇게 하려면 수백 개의 새 확인을 만들어야 했습니다. 이는 수작업이 많은데 자동화할 수 있는데 왜 작업을 해야 할까요?
copy the checks from one project to another에 스크립트를 작성하거나 코드베이스에 쉽게 삽입할 수 있는 형식으로 모든 ping 끝점을 구문 분석하는 스크립트 또는 상태 확인 관리via terraform와 같은 다양한 솔루션을 고민했습니다. 그러나 이러한 솔루션 중 어느 것도 완벽하지 않았습니다. 프로세스를 완전히 자동화하는 무언가를 원했습니다.
다행스럽게도 Healthchecks 관리자와 이야기를 나눈 후 그들이 already had a basic script for that . 작업이 완료될 때마다 Healthcheck API에 대한 간단한 호출을 수행하여 아직 존재하지 않는 경우 확인을 생성하고 확인 엔드포인트를 반환합니다. 끝점에 핑하면 완료됩니다! 쉬운 peasy, 인간 작업이 필요하지 않습니다.
#!/bin/bash
API_KEY=your-api-key-here
# Check's parameters. This example uses system's hostname for check's name.
PAYLOAD='{"name": "'`hostname`'", "timeout": 60, "grace": 60, "unique": ["name"]}'
# Create the check if it does not exist.
# Grab the ping_url from JSON response using the jq utility:
URL=`curl -s https://healthchecks.io/api/v1/checks/ -H "X-Api-Key: $API_KEY" -d "$PAYLOAD" | jq -r .ping_url`
# Finally, send a ping:
curl -m 10 --retry 5 $URL
경보 채널 작업, 시작 및 종료 시간 측정, 실패 기록을 위해 이를 확장했습니다.
jq을 설치하고 healthchecks_api_key
를 API 키로 교체한 다음 cron 작업과 함께 파일을 제공합니다. 이제 cron 명령을 스크립트에 전달할 수 있으며 스크립트가 모든 작업을 수행합니다. 새로운 환경을 만들고 있습니까? API 키를 업데이트하기만 하면 됩니다.
Ansible을 사용하여 jq를 설치하고 crontab 및 healthcheck 파일을 템플릿화합니다. 대신 Puppet을 사용하거나 Minecraft의 수동 배포 또는 docker 또는 heck 레드스톤 블록을 사용해도 됩니다. 누가 판단해야 할까요?
몇 달 동안 프로덕션 환경에서 잘 작동하고 있습니다. 보너스로 Healthchecks.io에 들어가면 작업 시작 및 종료 시간에 대한 자세한 기록을 볼 수 있습니다.
새로운 데이터 센터를 설정하고 단단한 녹색 체크의 활기찬 필드에서 편안함을 느낄 수 있어서 정말 좋았습니다. 설정을 위해 제가 해야 했던 유일한 일은 API 키를 업데이트하는 것이었습니다!
Reference
이 문제에 관하여(대규모 상태 확인 관리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/15five/managing-health-checks-at-scale-4731텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)