SaaSMaestro는 Google 데이터를 읽는 것 외에도 웹사이트를 직접 방문하여 Google이 알려 주지 않는 문제를 찾아냅니다. 점검 항목은 설정 → 내 워크스페이스 → 데이터 연결의 웹사이트 상태에 있습니다. 각 항목은 독립된 서비스이며, 소유자나 관리자가 해당 대화상자에서 켜기 전까지는 꺼져 있고 적용할 웹사이트도 그곳에서 선택합니다. 설치할 것은 없습니다.
확인 요청은 당사 서버(35.214.110.192)에서 전송됩니다. 웹사이트가 방화벽, Cloudflare 또는 보안 플러그인 뒤에 있다면 먼저 이 주소를 허용 목록에 추가하세요. 자세한 내용은 당사 IP 주소를 허용 목록에 추가하기에서 확인하세요.
서비스
| 서비스 | 주기 | 확인 항목 |
|---|---|---|
| 가동 시간 모니터링 | 15분마다 | 홈페이지가 응답하는지 여부로, 장애를 선언하기 전에 다른 리전에서 확인하며 Google 태그, robots.txt, 사이트맵, 페이지 점검을 매일 수행하고 월간 보고서도 제공합니다. |
| SSL 인증서 모니터링 | 매주 | 인증서의 만료 시점과 발급자, 그리고 방문자가 실제로 HTTPS를 사용하는지 여부입니다. |
| 도메인 모니터링 | 매주 | 도메인 등록 만료 시점, 등록 대행사, 레지스트리 보류 상태입니다. |
| DNS 및 이메일 보안 | 매일 | 네임서버 및 메일 서버 변경 사항과 SPF, DMARC, DKIM 레코드입니다. |
| 블랙리스트 및 악성코드 | 매일 | Google의 Web Risk 위험 사이트 목록과 abuse.ch의 URLhaus 악성코드 목록입니다. |
| 보안 헤더 | 매주 | 일반적인 보안 헤더 여섯 가지의 A~F 등급과 일반 HTTP로 불러오는 파일입니다. |
| 랩 성능 | 매주 | 모바일 홈페이지의 PageSpeed Insights 테스트와 시간에 따른 점수 추이입니다. |
| Core Web Vitals | 매일 | Chrome UX Report 기반 실제 방문자 속도로, API 키가 설정되면 가동 시간 모니터링의 일일 점검 중에 읽어 옵니다. |
| 핵심 페이지 점검 | 5분, 15분 또는 60분마다 | 요금제나 가입 페이지처럼 직접 고른 페이지는 불러와져야 하며 지정한 텍스트를 포함해야 합니다. |
| 하트비트 모니터링 | 설정한 주기대로 | 사용자의 cron 작업, 백업, 워커가 비공개 주소를 요청하며, 응답이 끊기면 알려 드립니다. |
새 웹사이트를 추가하면 워크스페이스에 이미 켜져 있는 서비스를 적용할지 물어봅니다. SSL, 도메인, DNS, 블랙리스트, 보안 헤더, 성능 점검의 경고는 점검에서 발견되는 즉시 “심각한 이슈 알림”으로 소유자 및 관리자에게 이메일로 발송되며, 각각 한 번만 보내고 이를 받는 모든 채팅 채널에도 전송됩니다.
가동 시간
각 웹사이트의 홈페이지를 15분마다 확인합니다. 한 번의 느린 응답으로 인한 잘못된 알림을 피하기 위해 두 번 연속 확인에 실패해야 중단으로 간주합니다. “unauthorised”나 “too many requests” 같은 응답은 서버가 응답하고 있으므로 정상으로 간주합니다.
두 번째 실패를 장애로 선언하기 전에 다른 리전의 서버도 웹사이트를 불러옵니다. 대부분 불러올 수 있다면 네트워크 결함이나 방화벽 규칙처럼 주 서버와 웹사이트 사이에 문제가 있는 것이므로 장애로 선언하지 않습니다. 사용 중인 리전은 가동 시간 모니터링 대화상자에 표시됩니다.
웹사이트가 중단되면 소유자 및 관리자에게 즉시 다운타임 이메일이 발송되고(장애당 주 1회까지), 복구될 때까지 심각한 이슈가 유지됩니다. 매월 1일에는 지난달 각 웹사이트의 가동률과 장애 내역이 담긴 월간 가동률 보고서도 받습니다. 누구든 알림에서 본인에 대해 이를 끌 수 있습니다.
매일 점검
이 점검은 가동 시간 모니터링과 함께 실행되며, 적용 대상인 각 웹사이트에 대해 하루에 한 번 수행됩니다.
| 점검 항목 | 확인 항목 |
|---|---|
| Google 태그 | 홈페이지에 이 웹사이트의 GA4 태그, 다른 GA4 ID, Google Tag Manager가 있는지, 아니면 아무것도 없는지. |
| robots.txt | 존재 여부, 변경 여부, 모든 검색엔진을 차단하는지 여부. |
| 사이트맵 | 하위 사이트맵을 최대 10개까지 읽어 포함된 URL 수. |
| Core Web Vitals | Chrome UX Report의 실제 방문자 속도: 최대 콘텐츠 페인트(LCP), 다음 페인트까지의 상호작용(INP), 누적 레이아웃 이동(CLS). 워크스페이스의 데이터 연결 탭에 있는 Core Web Vitals 상자에서 설정하는 Chrome UX Report API 키가 필요합니다. |
| Google 색인 상태 | Search Console에 연결된 웹사이트의 경우, URL Inspection API로 모니터링 중인 각 페이지가 Google 색인에 있는지 확인합니다. |
| 내부 링크(매주) | 모니터링 중인 페이지에서 자체 웹사이트로 가는 링크를 최대 40개까지 따라가 확인하고, 404, 410 또는 서버 오류로 응답하는 링크를 나열합니다. |
동의 도구나 Tag Manager를 통해 Google 태그를 로드하는 웹사이트는 추적이 정상이어도 “Google Tag Manager 발견” 또는 “찾을 수 없음”으로 표시될 수 있습니다. 확실히 하려면 GA4의 실시간 보고서를 확인하세요.
SSL 인증서
일주일에 한 번 우리 서버가 각 웹사이트가 제공하는 인증서의 만료 시점과 발급자를 읽습니다. 만료 8일 이내이거나 HTTPS가 없는 동안에는 매일 확인하므로, 갱신이 이루어졌다면 경고가 나가기 전에 감지됩니다. 인증서 만료 일주일 전, 하루 전, 그리고 만료된 시점에 알려 드립니다. 만료 14일 전부터는 웹사이트 페이지에 이슈로 표시됩니다.
방문자가 HTTPS를 사용하는지도 확인합니다. 웹사이트가 일반 HTTP로만 응답하거나, 일반 HTTP가 HTTPS로 리디렉션하지 않고 웹사이트를 제공하면 경고합니다. 이러한 경고는 해결될 때까지 매주 반복됩니다.
도메인 등록
일주일에 한 번 등록된 도메인(shop.example.com이면 example.com)을 RDAP로, 레지스트리가 RDAP를 지원하지 않으면 WHOIS로 레지스트리에서 조회합니다. 만료 한 달 이내에는 매일 조회합니다. 등록 만료 한 달 전, 일주일 전, 하루 전, 그리고 만료된 시점에 알려 드립니다. 또한 레지스트리가 도메인을 보류 상태로 두어 웹사이트와 이메일이 작동하지 않게 되거나, 만료되어 곧 삭제될 예정이면 즉시 알려 드립니다.
DNS 및 이메일 보안
하루에 한 번 DNS-over-HTTPS로 도메인의 DNS 레코드를 조회하므로 결과가 나머지 인터넷에서 보이는 내용과 일치합니다. 네임서버나 메일 서버가 변경되면 즉시 알림이 발생하고 일주일 동안 웹사이트 페이지에 표시됩니다. 도메인 탈취나 잘못된 이전이 바로 이런 모습이기 때문입니다.
이메일을 수신하는 도메인의 경우 SPF 레코드 누락, SPF 레코드 중복, 누구나 발송할 수 있도록 허용하는 SPF 레코드(+all), DMARC 레코드 누락도 점검에서 표시합니다. DKIM은 목록을 조회할 수 없으므로 일반적인 메일 서비스가 사용하는 셀렉터로 매주 찾아보며, 발견된 경우에만 표시합니다.
블랙리스트 및 악성코드
하루에 한 번 각 웹사이트를 Google의 Web Risk 목록(Chrome 등 브라우저가 웹사이트 대신 빨간 경고 페이지를 방문자에게 표시하게 하는 목록)과 abuse.ch의 URLhaus 악성코드 다운로드 목록에서 조회합니다. 둘 중 하나에 해당하면 대개 웹사이트가 해킹당했다는 뜻이며, 즉시 알려 드립니다.
이 점검에는 해당 대화상자에 저장된 Google Web Risk API 키, URLhaus 인증 키 또는 둘 다 필요합니다. 둘 중 어느 것도 없으면 실행되지 않습니다. Google의 무료 Safe Browsing API는 상업적 사용이 허용되지 않기 때문에 유료 Web Risk API를 사용합니다.
보안 헤더 및 혼합 콘텐츠
일주일에 한 번 홈페이지를 HTTPS로 불러와 여섯 가지 헤더, 즉 Strict-Transport-Security(HSTS), Content-Security-Policy, X-Content-Type-Options, X-Frame-Options(또는 CSP frame-ancestors), Referrer-Policy, Permissions-Policy의 등급을 매깁니다. 여섯 개 모두 있으면 A, 다섯 개면 B이며 이런 식으로 내려갑니다. HSTS가 없거나 네 개 미만이 전송되면 알려 드립니다.
페이지에서 일반 HTTP로 불러오는 파일도 함께 찾습니다. 이렇게 불러온 스크립트, 스타일, 프레임은 브라우저가 차단하여 페이지가 깨질 수 있고, 이미지와 미디어는 자물쇠 표시를 잃게 됩니다. 제공된 HTML만 검사하므로 스크립트가 나중에 추가하는 파일은 확인되지 않습니다.
랩 성능
일주일에 한 번 Google의 PageSpeed Insights가 시뮬레이션된 휴대폰에서 각 모바일 홈페이지를 테스트하여 로딩, 차단, 레이아웃 이동 시간과 함께 100점 만점으로 점수를 매깁니다. 최근 12주간의 점수가 보관됩니다. 점수가 50점 미만이거나 이전 테스트보다 15점 이상 떨어지면 알려 드리며, 이는 실제 방문자의 Core Web Vitals에 반영되기 전인 경우가 많습니다. Core Web Vitals와 동일한 Google API 키를 사용하며, 해당 프로젝트에서 PageSpeed Insights API를 켜야 합니다. 테스트는 우리 서버가 아니라 Google 서버에서 실행됩니다.
핵심 페이지 점검
요금제, 가입, 결제처럼 가장 중요한 페이지를 각 페이지에 반드시 있어야 하는 텍스트와 함께 추가하고, 5분, 15분 또는 60분마다 점검하도록 선택하세요. 페이지를 불러오지 못하거나, 오류로 응답하거나, 해당 텍스트가 더 이상 없으면 실패로 처리되므로 “200 OK”로 응답하면서도 깨진 페이지를 잡아낼 수 있습니다. 텍스트는 스크립트가 실행되기 전, 우리 서버가 받은 그대로의 페이지에서 찾습니다.
연속 두 번 실패하면 소유자 및 관리자에게 다운타임 이메일이 발송되고, 채팅 채널에 알림이 가며, 심각한 이슈가 생성됩니다. 페이지가 다시 정상 작동하면 다시 알려 드립니다.
하트비트
각 하트비트에는 https://saasmaestro.com/hooks/heartbeat/…과 같은 비공개 주소가 부여됩니다. 작업이 실행될 때마다 이 주소를 요청하도록 하세요. 예를 들어 cron 줄 끝에 curl -fsS와 해당 주소를 추가하면 됩니다. GET, POST, HEAD 요청 모두 인정됩니다.
5분마다부터 주 1회까지 핑이 도착할 주기와, 오래 걸리는 작업을 위한 유예 시간을 선택하세요. 주기에 유예 시간을 더한 시간 안에 핑이 도착하지 않으면 소유자 및 관리자에게 다운타임 이메일이 발송되고, 채팅 채널에 알림이 가며, 심각한 이슈가 생성됩니다. 핑이 다시 도착하면 그때도 알려 드립니다. 하트비트는 첫 번째 핑이 도착하기 전까지는 감시하지 않습니다.
모니터링 페이지와 자동 메모
SaaSMaestro는 홈페이지와 방문이 가장 많은 랜딩 페이지 5개를 모니터링합니다. 페이지의 상태, 제목, 메타 설명, robots 지시어, canonical 주소가 바뀌거나 robots.txt가 바뀌면 타임라인 메모가 자동으로 추가되고 “자동 감지됨”으로 표시됩니다. 페이지가 Google 색인에서 빠진 경우도 마찬가지입니다. 덕분에 예상치 못한 트래픽 변화가 생겨도 차트에 이미 그 이유가 표시되어 있는 경우가 많습니다.
확인 위치
데이터 연결의 각 서비스 상자에는 마지막 실행 시간과 확인이 필요한 웹사이트 수가 표시되며, 시계 아이콘을 누르면 최근 결과가 열립니다. 각 웹사이트 페이지에는 최신 결과가 담긴 웹사이트 상태 섹션이 있습니다. 문제는 이슈로도 표시됩니다. 이슈 점검 및 심각도을(를) 참조하세요.