트래픽 로그(실시간?) 그래프로 보기?
*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]
게시판 목록
개발자팁
질문은 QA에서 해주시기 바랍니다.
| 번호 | 분류 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|---|
| 5096 | PHP | 3년 전 | 1499 | ||
| 5095 | JavaScript | 3년 전 | 2127 | ||
| 5094 | JavaScript | 3년 전 | 2046 | ||
| 5093 | 기타 | 3년 전 | 1415 | ||
| 5092 | JavaScript | 3년 전 | 1962 | ||
| 5091 | 기타 |
|
3년 전 | 1321 | |
| 5090 | 기타 |
|
3년 전 | 2257 | |
| 5089 | 웹서버 |
|
3년 전 | 3330 | |
| 5088 | JavaScript | 3년 전 | 2060 | ||
| 5087 | 기타 | 3년 전 | 1661 | ||
| 5086 | 웹서버 |
|
3년 전 | 1703 | |
| 5085 | node.js | 3년 전 | 1646 | ||
| 5084 | JavaScript |
DogFoot개발
|
3년 전 | 1454 | |
| 5083 | 웹서버 |
DogFoot개발
|
3년 전 | 2989 | |
| 5082 | JavaScript |
DogFoot개발
|
3년 전 | 4027 | |
| 5081 | JavaScript |
DogFoot개발
|
3년 전 | 2100 | |
| 5080 | JavaScript |
DogFoot개발
|
3년 전 | 2439 | |
| 5079 | 기타 |
DogFoot개발
|
3년 전 | 2493 | |
| 5078 | OS | 3년 전 | 1650 | ||
| 5077 | 웹서버 |
DogFoot개발
|
3년 전 | 1724 | |
| 5076 | 기타 |
DogFoot개발
|
3년 전 | 1536 | |
| 5075 | 기타 |
DogFoot개발
|
3년 전 | 1677 | |
| 5074 | 기타 | 3년 전 | 2284 | ||
| 5073 | 기타 | 3년 전 | 2554 | ||
| 5072 | 웹서버 |
|
4년 전 | 2234 | |
| 5071 | 웹서버 | 4년 전 | 3236 | ||
| 5070 | PHP | 4년 전 | 3198 | ||
| 5069 | 웹서버 | 4년 전 | 2433 | ||
| 5068 | 기타 |
|
4년 전 | 3014 | |
| 5067 | 기타 |
DogFoot개발
|
4년 전 | 2684 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기