테스트 사이트 - 개발 중인 베타 버전입니다

트래픽 로그(실시간?) 그래프로 보기?

*nginx서버일 경우입니다

[code]

<?php
$logFilePath = '/var/log/nginx/access.log';

$logFile = fopen($logFilePath, 'r');

$trafficData = array();
while (!feof($logFile)) {
    $line = fgets($logFile);
    // 빈 줄은 건너뜁니다.
    if (trim($line) == '') {
        continue;
    }
    
    // 로그 라인 파싱 로직은 이전 예제와 동일하게 적용

    // 추출한 데이터를 연관 배열로 저장
    $logData = array(
        "ip" => $ipAddress,
        "time" => $accessTime,
        "method" => $requestMethod,
        "url" => $requestUrl,
        "status" => $statusCode,
        "bytes_sent" => $bytesSent,
        "referer" => $referer,
        "user_agent" => $userAgent
    );

    // 모든 라인의 데이터를 저장하는 배열에 추가
    $trafficData[] = $logData;
}

fclose($logFile);

// PHP에서 데이터를 JSON 형식으로 변환하여 JavaScript로 전달
$dataAsJson = json_encode($trafficData);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Traffic Log Visualization</title>
    <!-- Chart.js 라이브러리 링크 -->
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
    <!-- 그래프를 그릴 캔버스 요소 -->
    <canvas id="trafficChart" width="800" height="400"></canvas>

    <script>
        // PHP에서 전달한 JSON 데이터를 JavaScript 객체로 변환
        var data = <?php echo $dataAsJson; ?>;

        // 그래프를 그리기 위한 데이터 준비
        var labels = data.map(item => item.time);
        var bytesSent = data.map(item => parseInt(item.bytes_sent));

        // 그래프 생성
        var ctx = document.getElementById('trafficChart').getContext('2d');
        var myChart = new Chart(ctx, {
            type: 'line',
            data: {
                labels: labels,
                datasets: [{
                    label: 'Bytes Sent',
                    data: bytesSent,
                    borderColor: 'rgba(75, 192, 192, 1)',
                    backgroundColor: 'rgba(75, 192, 192, 0.2)',
                    borderWidth: 1
                }]
            },
            options: {
                responsive: false,
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });
    </script>
</body>
</html

[/code]

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
17316
17315
17313
17312
17305
17304
17298
17294
17291
17285
17284
17279
17272
17271
17270
17262
17255
17248
17241
17238
17236
17220
17217
JavaScript 회원가입 2
17216
17214
17207
17205
17203
17201
17198