2013-10-22 9 views
0

AWS/EC2 인스턴스의 네트워크 in/out 메트릭을 살펴보면 높은 네트워크 트래픽 발생 원인을 찾고 싶습니다.높은 네트워크 트래픽의 출처를 검색하기 위해 실행하는 LogParser 쿼리는 무엇입니까?

내가 몇 가지 질의를 Log Parser Studio을 설치하고 실행 한 - 주로 잠시했다 응답을 찾고 : 나는 또한 시간을 목표로하고

SELECT TOP 10000 * FROM '[LOGFILEPATH]' WHERE time-taken > 1000 

을 인/아웃 스파이크의 네트워크가 발생했을 때 커버 있음에 걸쳐 :

SELECT TOP 20000 * FROM '[LOGFILEPATH]' 
WHERE [date] BETWEEN TIMESTAMP('2013-10-20 02:44:00', 'yyyy-MM-dd hh:mm:ss') 
AND TIMESTAMP('2013-10-20 02:46:00', 'yyyy-MM-dd hh:mm:ss') 

하나의 문제는 로그 파일이 2-7 기가 (쿼리 당 단일 파일을 대상으로 함)라는 점입니다. Log Parser Lizard을 시도 할 때 큰 파일 (boo)에 대한 메모리 부족 예외로 인해 충돌이 발생했습니다.

어떤 다른 쿼리가 있으며, 방법은 내가 잘하면 내가 구멍을 연결하는 방법을 알아낼 도움이 될 네트워크 트래픽의 소스를 식별하기 위해 수행해야합니까?

감사합니다. 당신에게 특히 유용 할 수 있습니다

+0

"높은 네트워크 트래픽"의 의미를 명확히 할 수 있습니까? 대역폭, 연결 또는 대기 시간에 대해 이야기하고 있습니까? 당신은 당신의 질문에서 세 가지 모두를 언급합니다. – beavel

+0

@beavel - 주로 연결 - 몇 가지 WordPress 플러그인 등을 통해 노출 된 사람들과 같이 몇 가지 약점을 극복하려는 사람들과 같은 가능한 DoS 또는 기타 문제를 탐지하려고 시도합니다. 따라서 드라이브를 다운로드하려고하는 사람들 등 – ElHaix

답변

0

한 기능은 QUANTIZE() function입니다. 이렇게하면 일정 기간 동안 통계를 집계하여 주어진 기간 동안 스파이크를 볼 수 있습니다. 일정 기간이 정상 범위를 벗어난 경우 시각적으로 볼 수

SELECT QUANTIZE(TO_LOCALTIME(TO_TIMESTAMP(date, time)), 900) AS LocalTime, 
    COUNT(*) AS Hits, 
    SUM(sc-bytes) AS TotalBytesSent, 
    DIV(MUL(1.0, SUM(time-taken)), Hits) AS LoadTime, 
    SQRROOT(SUB(DIV(MUL(1.0, SUM(SQR(time-taken))), Hits), SQR(LoadTime))) AS StandardDeviation 
INTO '[OUTFILEPATH]' 
FROM '[LOGFILEPATH]' 
WHERE '[WHERECLAUSE]' 
GROUP BY LocalTime 
ORDER BY LocalTime 

내가 .csv 파일로 일반적으로 출력이 및 Excel에서 다음 차트 : 여기에 하나 개의 쿼리 나는 그것이 우리가 검사받을 때 볼 날 수 있습니다 사용하는 것입니다 . 이 특정 쿼리는 QUANTIZE에 전달 된 900을 기반으로 15 분 세그먼트로 나누어집니다. TotalBytesSent, LoadTime 및 StandardDeviation을 사용하면 다운로드 한 콘텐츠 또는 응답 시간에 다른 수차를 볼 수 있습니다.

보는 또 다른 한가지는 특정 클라이언트가 귀하의 사이트에 만든 요청의 수입니다. 의 IP가이 나타나하기 전에 확인해야합니다 요청의 최소 수를 설정합니다 HAVING 절을 조정

SELECT 
    DISTINCT c-ip as ClientIP, 
    COUNT(*) as Hits, 
    PROPCOUNT(*) as Percentage 
INTO '[OUTFILEPATH]' 
FROM '[LOGFILEPATH]' 
WHERE '[WHERECLAUSE]' 
GROUP BY ClientIP 
HAVING (Hits > 50) 
ORDER BY Percentage DESC 

: 다음 쿼리는 검사 또는 서비스 거부 활동이오고 식별 할 수 있습니다. 활동 W WHERE 절에 따라 50이 너 + 낮을 수 있습니다. PROPCOUNT() 함수는 특정 필드의 전체 값에 대한 백분율을 제공합니다. 이 경우 사이트에 대한 모든 요청 중 특정 IP를 몇 퍼센트 씩 제공합니다. 일반적으로 이것은 검색 엔진의 IP 주소를 나타낼 것입니다. 그러나 그것들은 제거하기가 꽤 쉽습니다.

는 나는 당신에게 당신이 뭘 할 수 있는지에 대한 몇 가지 아이디어를 제공 바랍니다.