Geekflare API를 사용하여 사이트가 다운될 때 알림을 받는 방법은 무엇입니까?
게시 됨: 2021-08-22사용자가 귀하의 사이트에 액세스하려고 합니다. 무슨 일이 있었는지 아십니까? 나타나지 않습니다. 이전에 파악하지 못한 몇 가지 오류가 있습니다. 사용자는 좌절하고 사이트를 떠납니다. 따라서 일부 충성도 높은 사용자를 잃었습니다.
이 문제를 해결하는 방법? 사용자가 사이트를 찾기 전에 다운된 사이트에 대해 어떻게 알 수 있습니까?
두 가지 가능한 방법이 있습니다.
몇 달러를 지출해도 괜찮다면 StatusCake 또는 여기에 언급된 다른 솔루션과 같은 모니터링 솔루션을 사용할 수 있습니다.
그러나 개발자이거나 월별 비용을 지출할 준비가 되지 않은 경우 Geekflare API – Is Site Up?을 활용할 수 있습니다.
사이트가 가동 중입니까? API는 사이트가 다른 위치에서 작동하는지 여부를 확인합니다.
Gmail 을 통해 사이트가 다운될 때 즉시 알려주는 Python 코드를 보여드리겠습니다.
Is Site Up? API.
사이트가 가동 중입니까? API
API를 확인하기 전에 Python에서 API를 사용하려면 요청이라는 패키지를 설치해야 합니다. 그러나 Python만 사용할 필요는 없습니다. 원하는 언어를 사용할 수 있습니다. 그러나 API 요청을 수행하는 데 필요한 항목을 설정했는지 확인하십시오.
따라서 Python을 사용하는 사용자는 pip install requests
명령을 사용하여 요청 패키지를 설치하십시오.
다른 언어에 대한 설정을 완료하고(Python 이외의 언어를 선택한 경우) 다음 단계를 계속합니다.
이제 Geekflare API 페이지로 이동합니다.
Is Site Up?을 포함하여 다양한 유형의 API를 찾을 수 있습니다. 이 기사에서 관심을 갖는 API입니다. Geekflare API를 사용하려면 Geekflare API에 가입하여 얻을 수 있는 API 키가 필요합니다.
헤더의 무료 가입 버튼을 클릭하고 Geeflare API에서 계정을 생성합니다.
계정을 생성하면 Geekflare API의 대시보드로 리디렉션됩니다. 대시보드에서 API 키와 이메일, 활성 계획 등과 같은 기타 세부 정보를 찾을 수 있습니다.
API 키를 복사할 수 있습니다. 이제 Is Site Up API 문서를 확인하겠습니다. 프로필 아이콘과 문서를 클릭하십시오.
Geeflare API 설명서로 리디렉션됩니다.
여기에서 사이트 상태(Is Site Up?) API 설명서를 찾을 수 있습니다. 그것으로 가십시오.
오른쪽에 API 사용법이 표시됩니다. 오른쪽의 코드 조각 섹션에서 Python을 선택합니다. Python을 사용하지 않는 경우 원하는 언어를 선택하십시오.
Is Site Up? 을 호출하는 코드를 받게 됩니다. API. 나중에 더 많은 코드를 쉽게 추가할 수 있도록 약간 수정해 보겠습니다. Python에서 수정된 코드를 살펴보십시오.
import requests import json API_URL = "https://api.geekflare.com/up" def make_api_request(): headers = { 'x-api-key': 'YOUR-API-KEY', 'Content-Type': 'application/json' } payload = json.dumps({"url": "https://geekflare.com"}) response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() if __name__ == '__main__': data = make_api_request() print(data)
YOUR-API-KEY 를 Geekflare API 대시보드에서 자신의 API 키로 바꾸십시오. 사용자마다 다를 것입니다. 대시보드에서 API 키를 복사하여 위 코드에 추가합니다.
다중 위치
위의 코드는 단일 위치(미국 뉴욕)에서 사이트가 작동하는지 여부를 확인합니다. 그러나 요청 본문의 proxyCountry 를 사용하여 다른 위치에서 테스트할 수 있습니다.
사용 가능한 다른 위치는 영국(런던)과 싱가포르입니다. 다음과 같이 사이트 URL과 함께 proxyCountry 데이터를 전달할 수 있습니다.
{ "proxyCountry": "uk", "url": "geekflare.com" }
여기에서 사용 가능한 위치 중에서 원하는 위치를 통과할 수 있습니다.
사이트가 작동하는지 여부에 대한 데이터를 가져오는 API 요청을 만드는 코드를 완성했습니다. 이제 사이트가 다운되었을 때 메일을 보내는 코드를 더 작성할 차례입니다. 갑시다.
사이트가 다운되었을 때 이메일 수신
Python에서 Gmail을 통해 이메일을 보내는 방법 에 대한 자세한 자습서를 찾을 수 있습니다. 또는 Gmail 에서 이메일을 보내도록 특별히 설계된 yagmail 이라는 패키지를 사용하는 다음 코드를 사용할 수 있습니다.
Gmail 계정을 통해 메일을 보내기 전에 보안 수준이 낮은 앱 허용 옵션을 켜야 합니다. 여기에서 켤 수 있습니다.
코드를 보자.
def send_mail(): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Testing Subject" body = "This is a testing mail" gmail.send( to=receiver, subject=subject, contents=body, )
여기에서 yagmail의 전체 자습서를 찾을 수 있습니다.
이제 API 요청 및 메일 전송을 위한 코드가 있습니다. 다음 단계는 API 요청에서 잘못된 상태를 수신할 때마다 send_mail 을 호출하는 것입니다.
그렇다면 사이트가 다운되었는지 업인지 어떻게 알 수 있습니까? Is Site Up? API는 다음과 같은 일부 데이터로 응답합니다.
{ "timestamp": 1671545622213, "apiStatus": "success", "apiCode": 200, "message": "Site is up.", "meta": { "url": "https://geekflare.com", "proxyCountry": "United Kingdom", "followRedirect": false, "test": { "id": "riah3dvi04ngaa1jw1b75smiibrus2a7" } }, "data": { "statusCode": 200, "reasonPhrase": "OK" } }
메시지 라는 키를 찾을 수 있습니다. 핵심 메시지 의 값은 사이트가 가동 중인지 중지되었는지 알려줍니다. 따라서 다음과 같은 두 가지 유형의 메시지가 될 수 있습니다.
- 사이트가 올라왔습니다.
- 사이트가 다운되었습니다
나는 당신이 지금 그것을 가지고 있다고 생각합니다. 따라서 “ 사이트가 다운되었습니다.”라는 메시지를 받으면 메일을 보내도록 하겠습니다. 최종 코드는 다음과 같습니다.
import requests import json import yagmail API_URL = "https://api.geekflare.com/up" def make_api_request(): headers = { 'x-api-key': 'YOUR-API-KEY', 'Content-Type': 'application/json' } payload = json.dumps({ "url": "https://geekflare.com", "followRedirect": True, "proxyCountry": "uk" }) response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() def send_mail(content): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Your Site is Down" gmail.send( to=receiver, subject=subject, contents=content, ) if __name__ == '__main__': data = make_api_request() message = data['message'] ## seding the mail if message == 'Site is down': ## extracting the location and error location = data['meta']['proxyCountry'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below.nn" if location: mail_content += f"{location}" mail_content += f"{data['data']['reasonPhrase']}nn" mail_content += "Check the error and resolve it as soon as possible." send_mail(mail_content)
원하는 대로 메일 내용을 업데이트할 수 있습니다. 사이트가 다운될 때마다 메일 발송을 완료했습니다.
그러나 여전히 문제가 있습니다.
사이트가 작동하는지 중지되는지 확인하려면 코드를 실행해야 합니다. 얼마나 자주 실행합니까? 네, 취향에 따라 다릅니다. 매시간 확인해야 한다고 가정해 보겠습니다.
터미널이나 명령줄을 열고 매시간 코드를 실행할 수 있습니다. 하지만 반복되는 과정이고 지루하다. 때때로 우리는 그것을 확인하는 것을 잊을 수 있습니다. 따라서 매시간 자동으로 코드를 실행해야 합니다.
여기에서 cron을 사용하여 매시간 자동으로 코드를 실행할 수 있습니다. 어떻게 설정하는지 봅시다.
크론 설정
UNIX 기반 운영 체제에서 cron을 설정하는 단계를 살펴보겠습니다.
- 터미널을 엽니다.
- 터미널에서 crontab 파일을 여는
crontab -e
명령을 실행합니다. - 키
i
를 눌러 INSERT 모드로 들어갑니다. - 이제 cron 패턴, Python 디렉터리 및 코드 파일 디렉터리를 추가합니다. 아래 예를 참조하십시오.
0 * * * * /usr/bin/python3 /home/sample.py
매시간 코드를 실행하도록 패턴을 설정했습니다. 그러나 요구 사항에 따라 분 단위로 설정해야 할 수도 있습니다. 따라서 Crontab Guru 또는 기타 크론 도구를 사용하여 일정에 대한 크론 패턴을 생성할 수 있습니다.
그게 다야. 사이트가 다운되면 알림을 받도록 설정을 완료했습니다.
결론
cron을 사용하여 스크립트가 연중무휴로 실행되는 클라우드 서버에서 주기적으로 실행되도록 예약하여 사이트가 다운될 때 이메일을 통해 알림을 받습니다. 자동화는 많은 시간을 절약하고 우리에게 효과적입니다. 따라서 이 기사에서 사용한 것처럼 사용하십시오.
행복한 모니터링