| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 기가라이트
- LG
- 시놀로지
- 통신3사
- AudioStation
- 공공분양
- 가치투자
- 장전
- 공공임대
- npm 캐시
- 국민임대
- KT
- 행복주택
- 분양
- #시놀로지 #nas #dupeguru #중복파일정리 #사진정리 #무료도구 #파일관리 #윈도우팁 #it꿀팁
- 장기전세
- 알뜰폰
- synology
- 워렌버핏
- sh공사
- 강환국
- 1기가인터넷
- 국임
- 2017년 분양계획
- DS216+II
- 개발환경 오류 해결
- nas
- 도커
- SH
- 3자녀우선
- Today
- Total
초코비니
시놀로지 NAS로 24시간 인터넷 속도 감시하기 (Speedtest Tracker) 본문
인터넷 속도가 가입 상품(1Gbps/500Mbps)만큼 나오는지 궁금할 때, 일회성 측정이 아니라 24시간 자동 측정 및 DB 저장이 가능한 Speedtest Tracker를 시놀로지 도커로 구축하는 방법입니다.
1. 주요 특징
- 공신력 있는 엔진: Ookla(Speedtest.net) 공식 바이너리 사용.
- 자동 스케줄링: 설정한 주기(예: 매일 자정)마다 자동 측정.
- 데이터 영구 보존: 시놀로지 하드디스크에 SQLite DB로 기록 저장.
- 시각화: 대시보드를 통해 속도 변화 추이를 그래프로 확인.
2. 준비 사항
- 장비: 시놀로지 NAS (DS216+II 등 x86 모델 권장)
- 환경: Docker(Container Manager) 패키지 설치 완료
- 폴더 생성: File Station에서 /docker/speedtest/config 경로의 폴더를 미리 생성합니다.
3. Docker Compose 설정 (최종 버전)
SSH(PuTTY) 접속 후 docker-compose.yaml 파일을 생성하여 아래 내용을 붙여넣습니다. 한국 시간대와 스케줄, 데이터 보존 설정이 모두 포함된 완성본입니다.
services:
speedtest-tracker:
container_name: speedtest-tracker
image: lscr.io/linuxserver/speedtest-tracker:latest
ports:
- 18998:80 # 접속 포트 (http://나스IP:18998)
- 18443:443
environment:
- PUID=1026 # 시놀로지 사용자 ID
- PGID=100 # 시놀로지 그룹 ID
- TZ=Asia/Seoul # 시스템 시간대
- APP_TIMEZONE=Asia/Seoul # 앱 스케줄러 시간대
- SPEEDTEST_SCHEDULE=0 0 * * * # 매일 자정(00:00) 자동 실행
- APP_KEY=base64: #키생성 필요
volumes:
- /volume1/docker/speedtest/config:/config # 데이터 영구 저장 설정
restart: unless-stopped
[설치 명령어]
sudo docker-compose up -d
4. 초기 로그인 및 사용법
- 접속: 브라우저에서 http://나스IP:18998로 접속합니다.
- 기본 계정:
- ID: admin@example.com
- PW: password (로그인 후 Settings에서 반드시 비밀번호를 변경하세요!)
- 수동 측정: 우측 상단의 Speedtest 버튼을 눌러 즉시 측정이 가능합니다.
5. 실제 측정 결과 (1Gbps 상품 기준)

설치 후 측정한 결과, 다운로드 약 788Mbps / 업로드 약 630Mbps의 우수한 속도를 보여주었습니다.
- DS216+II 모델의 하드웨어 성능과 도커 오버헤드를 고려할 때, 700~800Mbps 대역은 인터넷 회선이 기가비트급으로 아주 건강하게 작동하고 있음을 의미합니다.
- 만약 이 수치가 100Mbps 근처에서 멈춘다면, 나스 설정 문제가 아닌 통신사 모뎀 리셋이나 랜선(CAT.5e 이상 필수) 점검이 필요합니다.
6. 마무리하며
이제 나스가 매일 자정마다 인터넷 속도를 기록합니다. Results 탭을 통해 기록을 관리하고, 속도가 급격히 떨어지는 구간이 발생하면 통신사 점검의 확실한 근거 자료로 활용해 보시기 바랍니다!
추가 팁: * 메모리 업그레이드: DS216+II의 기본 1GB 메모리를 8GB로 업그레이드하면 더 많은 도커 컨테이너를 쾌적하게 돌릴 수 있습니다.
- 스케줄 변경: 하루에 더 자주 측정하고 싶다면 SPEEDTEST_SCHEDULE 값을 0 */6 * * * (6시간마다) 등으로 변경하여 적용하세요.
============================================================================================
어제 Docker로 인터넷 속도 측정 서버(Speedtest Tracker)를 구축하는 글을 올렸는데요. 설치는 잘 되었는데 사용하다 보니 한 가지 거슬리는 문제가 있었습니다.
바로 그래프와 로그의 시간이 한국 시간(KST)이 아닌 영국 표준시(UTC)로 나오는 문제였습니다.
분명 컨테이너 환경변수(ENV)에 TZ=Asia/Seoul도 넣었고, 리눅스 시스템 시간(date)도 한국으로 잘 나오는데, 유독 웹 대시보드 상의 시간만 9시간 전을 가리키고 있더군요.
이것저것 삽질 끝에 PHP Laravel 설정 파일을 직접 수정하여 완벽하게 해결했습니다. 저처럼 구버전 이미지(henrywhitaker3/speedtest-tracker)를 쓰시는 분들은 이 방법으로 해결하세요.
1. 문제 상황
- Docker 컨테이너 OS 시간은 한국 시간으로 정상.
- .env 파일에 APP_TIMEZONE=Asia/Seoul 설정함.
- 하지만 웹 UI 그래프와 측정 기록은 여전히 UTC로 표시됨.
- 원인: 이 프로그램(Laravel 프레임워크)이 환경변수를 제대로 못 불러오거나, 기본 설정(UTC)을 우선하는 버그가 있음.
2. 해결 방법: 설정 파일 직접 수정 (Hard Coding)
컨테이너 내부로 접속해서 어플리케이션 설정 파일(config/app.php)의 타임존을 강제로 한국으로 바꿔줘야 합니다.
1) 컨테이너 접속
먼저 터미널에서 스피드테스트 컨테이너 내부로 들어갑니다.
docker exec -it <컨테이너이름> /bin/bash
# 예: docker exec -it speedtest /bin/bash
2) 설정 파일 수정 (app.php)
설정 파일의 위치는 /app/www/config/app.php입니다. vi 에디터가 있다면 열어서 수정하시고, 없다면 아래 sed 명령어를 복사해서 한 방에 수정하세요.
[vi 에디터 사용 시]
vi /app/www/config/app.php
파일을 열어 'timezone' 부분을 찾아 UTC를 Asia/Seoul로 변경합니다.
// 변경 전
'timezone' => env('APP_TIMEZONE', 'UTC'),
// 변경 후 (강제 지정)
'timezone' => 'Asia/Seoul',
[명령어로 한 방에 수정하기 (추천)] 에디터 열기 귀찮으신 분들은 터미널에 아래 명령어를 그대로 붙여넣으세요.
sed -i "s/'timezone' => env('APP_TIMEZONE', 'UTC')/'timezone' => 'Asia\/Seoul'/g" /app/www/config/app.php
(혹시 이미 UTC로만 되어있다면 아래 명령어도 실행)
sed -i "s/'timezone' => 'UTC'/'timezone' => 'Asia\/Seoul'/g" /app/www/config/app.php
3) 캐시 삭제 (가장 중요!) ★
설정 파일을 바꿨더라도, 라라벨(Laravel)이 기존 설정을 기억(Cache)하고 있으면 적용되지 않습니다. 반드시 캐시를 지워줘야 합니다.
# 1. 앱 경로로 이동
cd /app/www
# 2. 설정 캐시 초기화
php artisan config:clear
Configuration cache cleared! 라는 메시지가 뜨면 성공입니다.
4) 프로세스 재시작
마지막으로 스케줄러가 바뀐 시간을 인지하도록 큐 워커를 재시작하거나, 컨테이너를 재시작합니다.
# 큐 워커 재시작
php artisan queue:restart
# 또는 컨테이너 밖으로 나와서 재시작
exit
docker restart <컨테이너이름>
3. 결과 확인
이제 웹페이지를 새로고침하고 **새로운 속도 측정(Queue Speedtest)**을 돌려보세요.
<img src="적용된_사진_예시.jpg" alt="한국 시간으로 나오는 그래프">
이제 그래프와 측정 기록 시간(Measured at)이 **한국 시간(KST)**으로 정확하게 찍히는 것을 확인할 수 있습니다!
시스템 시간은 맞는데 웹 페이지만 시간이 틀어져서 답답하셨던 분들께 도움이 되길 바랍니다.
'IT 기타' 카테고리의 다른 글
| Synology DS audio 평점 공유: 계정 하나에 평균 평점 자동 반영하기 (1) | 2025.08.19 |
|---|---|
| [npm install 오류 해결] 이전 넥서스 서버 주소로 요청되는 문제 해결기 (0) | 2025.07.13 |
| 📸 시놀로지 NAS 중복 사진 정리기 – dupeGuru로 간단하게 해결! (4) | 2025.07.13 |
| Docker Compose로 PostgreSQL + Prometheus + Grafana 설정하기 (0) | 2025.01.01 |
| bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least (0) | 2022.06.30 |