웹 사이트 비정상 상황 감지 및 처리

SEO를 수행할 때는 웹 사이트 로그 파일을 자주 확인하여 분석하고 판단합니다. 그러나 수백 개 이상의 사이트 그룹을 제어하는 경우에도 각각의 로그를 볼 것인가요?

대규모 사이트 그룹을 다룰 때, 일반적으로 웹 사이트의 중요도에 따라 단계별 모니터링을 진행합니다. 예를 들어 중요한 리소스 사이트는 주요 사이트로 분석 및 유지보수할 수 있지만, 문제가 발생했을 때만 분석 및 유지보수할 수도 있습니다. 또한 어떤 사이트는 그대로 둬서 스스로 문제를 해결하도록 할 수도 있습니다. 이것은 사이트 그룹을 만들 때의 전략에 따라 정의되며 보편적인 규칙은 없습니다.

일반적으로 나는 사이트 그룹에 대해 예외 모니터링을 수행하여, 예외를 발견하면 수동으로 분석 및 처리하고, 보통은 거의 확인하지 않습니다.

예외 상황 정의

웹 사이트 운영 상황을 모니터링할 때 어떤 상황이 예외로 간주되는지를 정의해야 합니다. 일반적으로 저는 개인적으로 다음 5가지를 주요 예외 사항으로 정의합니다:

  1. 크롤러 방문 횟수 이상: 갑자기 순위가 하락하여 크롤러가 더 이상 방문하지 않거나, 순위 하락으로 크롤러가 자주 방문하는 경우와 같이 상황이 발생하는 경우.
  2. 웹 사이트 트래픽 비정상: 사이트 그룹의 트래픽은 일반적으로 크게 변동하지 않으며, 변동이 발생하면 누군가가 사이트를 수집하거나 공격한 것일 수 있습니다.
  3. 404 오류: 즉, 페이지가 없는 오류로 즉시 처리해야 합니다.
  4. 특수 페이지 트래픽 비정상: 중요한 페이지의 트래픽이 이상하게 흐르는 경우, 예를 들어 타오바오로 연결되는 페이지는 트래픽 및 거래율을 비교하여 트래픽 출처를 살펴볼 수 있습니다.
  5. 특정 단어 트래픽 비정상: 시장 검색량과 설명 클릭률이 일정하게 유지되는 경우, 특정 단어 트래픽은 단어 순위 상태를 반영합니다.

모니터링 방법

상기 비정상 상황을 모니터링하기 위해 각 지표마다 데이터 테이블을 만들고, ABCDE로 표시합니다. 그런 다음 자동 실행되는 작업을 설정하여 매일 모든 사이트의 데이터를 데이터베이스에 저장할 수 있습니다.

IIS에서는 Microsoft가 제공하는 Logparser 도구를 사용하는 것이 좋습니다. 이 도구는 SQL 쿼리를 사용하여 로그를 처리할 수 있습니다. 구체적인 매개변수 의미는 검색 엔진을 통해 찾아볼 수 있습니다.

구체적인 사용 방법

첫 번째 비정상 상황을 예로 들면, 다음 명령을 사용하여 스파이더 방문 횟수를 모니터링할 수 있습니다:

Logparser -i:iisw3c "Select count(0) as hits Into A from xxx.log where cs(User-Agent) like '%spider%'" -o:SQL -server: 服务器IP -driver:"SQL Server" -database:数据库名 -username:sa -password:***

异常处理

进行预处理时,对当天数据和昨天数据进行对比,获取差值。设定阈值,超出阈值即视为异常。比如流量异常可用百分比判断,超过30%为异常;404异常可直接使用减法判断。

我使用一个C#程序来处理异常,比如通过对比最新的404数据来发现异常。当异常发生时,程序会通过邮件通知,方便及时处理。

其他建议

除了以上方法,还可以利用Logparser拆分日志,然后通过FTP命令发送到指定FTP地址,这样就能直接利用数据而不必每次手动处理。

总的来说,监控网站异常情况是维护网站安全和稳定运行的重要手段,及时发现和处理异常情况能够保障网站的正常运行和用户体验。