간단한 bash 트릭으로 cron 모니터링을 단순화하는 방법
cron 설정 및 실행은 지난 몇 년 동안 crontab 명령에서 이제 Kubernetes에서 CronJob으로 실행하는 것으로 변경되었지만 여전히 기본 사항은 동일하며 cron 작업을 모니터링하는 것이 매우 중요합니다. CronJob이 실행되지 않았기 때문에 일부 클라이언트가 지불되지 않은 상태에서 깨어나고 싶지 않을 것입니다.
이 게시물은 cron 모니터링을 단순화하는 하나의 멋진 bash 트릭을 강조할 것입니다. 솔루션은 명령 자체에서 수행되므로 언어와 프레임워크에 구애받지 않습니다. 크론을 모니터링하는 이 방법에 대해 자세히 알아보겠습니다.
Cron 모니터링이 중요합니다.
우리는 하나는 6시간마다 실행되고 다른 하나는 2주마다 실행되는 두 개의 CronJob이 있는 프로젝트에서 작업하고 있었습니다. 이 프로젝트는 Symfony에서 수행되었으며 cron은 Kubernetes에서 CronJob으로 실행되는 Symfony 명령으로 설정되었습니다.
As we monitor our applications with New Relic, we monitor and get notified if the Crons don’t run in time with OpsGenie Heartbeat Monitoring.
필요에 따라 Healthchecks 또는 Cronitor 을 사용할 수 있습니다. 가장 중요한 것은 크론이 예상 시간과 빈도로 실행되지 않을 때 경고를 받는 것입니다.
지금까지는 괜찮았지만 OpsGenie를 ping하는 코드를 살펴보았을 때 여러 가지 방법을 보았습니다. 대부분 최신 OpsGenie API/SDK를 가져와 애플리케이션에서 호출하는 것과 같았습니다. 누군가는 이 하트비트 핑 및 기타 작업을 수행하기 위해 래퍼 라이브러리를 구축하기도 했습니다.
문제
다음은 이 접근 방식의 문제점입니다.
해결책
위의 모든 문제에 대한 해결책은 매우 간단합니다. bash를 && operator와 함께 사용하면 cron 실행이 성공한 경우에만 ping이 실행됩니다.
“&&” is used to chain commands together, such that the next command is run if and only if the preceding command exited without errors (or, more accurately, exits with a return code of 0). — Source
아래와 같이 OpsGenie에 ping을 사용하여 Symfony cron 명령을 실행했습니다.
bin/console our-cron:command \
&& curl -X GET 'https://api.opsgenie.com/v2/heartbeats/our-cron/ping' --header 'Authorization: GenieKey '"$OPSGENIE_API_KEY"''
우리는 위의 명령에 대해 약간 다른 변형을 수행하고 하트비트의 명령과 이름이 매개 변수로 전송되는 bash 스크립트를 만들었습니다.
또 다른 SAAS
우리는 OpsGenie를 사용하고 있지만 cron 모니터링 공간에도 다른 SAAS 공급자가 있습니다. 단일 모니터에 무료로 사용할 수 있는 것은 Cronitor.io 입니다. cron monitoring 외에도 Cronitor는 웹 사이트 및 API에 간단한 uptime monitoring을 제공합니다. 또한 기존 crontab을 가져와 Cronitor로 보낼 수 있는 편리한 CLI 도구도 있습니다.
그래서 어떤 문제가 해결되었나요?
결론
즉시 사용할 수 있는 솔루션을 찾으십시오. 이전에 수행된 것처럼 문제를 해결하려면 새 라이브러리를 가져오거나 일종의 자체 OpsGenie 클라이언트를 구축했을 것입니다. 그것은 문제를 해결하지만 미래를 위해 유지해야 할 더 많은 종속성과 코드를 제공합니다.
When trying to find a fix for a problem, step back and think of solutions that are not very obvious.
자세한 내용은 Geshan.com.np에서 확인하세요.
Reference
이 문제에 관하여(간단한 bash 트릭으로 cron 모니터링을 단순화하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/geshan/how-to-simplify-cron-monitoring-with-a-simple-bash-trick-4646텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)