ISP가 광고한 속도와 실제 체감 속도가 다르다고 느껴본 적이 있다면, 그 느낌을 데이터로 바꿔주는 도구가 필요합니다. Speedtest Tracker는 정해진 주기마다 Ookla 스피드테스트를 자동으로 실행해 다운로드·업로드 속도와 핑을 그래프로 쌓아주는 셀프호스팅 도구입니다. 그렇다면 Speedtest Tracker로 인터넷 속도 이력을 어떻게 모니터링할 수 있을까요?
Speedtest Tracker는 무엇인가
Speedtest Tracker는 Ookla의 공식 speedtest CLI를 백엔드로 사용해 일정 주기마다 자동으로 속도 테스트를 실행하고, 그 결과를 시계열 데이터베이스에 쌓아 대시보드로 보여주는 오픈소스 웹 애플리케이션이에요. 브라우저에서 수동으로 speedtest.net에 접속해 버튼을 누르는 방식과 달리, 백그라운드에서 24시간 자동으로 돌아가면서 다운로드 속도, 업로드 속도, 핑, 지터 같은 지표를 시간대별로 기록해요. 결과는 일별, 주별, 월별 그래프로 볼 수 있어서 “매일 저녁 8시부터 속도가 떨어진다” 같은 패턴을 눈으로 바로 확인할 수 있어요.
ISP와의 속도 분쟁에 증거로 쓰기
전화로 ISP 고객센터에 “요즘 인터넷이 느려요”라고 항의해본 사람이라면, 상담원이 “지금 테스트해보니 정상으로 나옵니다”라는 답변만 반복하는 경험을 해봤을 거예요. 문제는 상담원이 테스트하는 그 순간과 실제로 느려지는 시간대가 다르다는 데 있어요. Speedtest Tracker로 몇 주간 데이터를 쌓아두면 “평일 저녁 7시부터 10시 사이에만 다운로드 속도가 계약 속도의 절반 이하로 떨어진다”처럼 구체적인 시간대와 수치를 근거로 제시할 수 있어요. 체감이 아니라 그래프로 된 이력을 내밀면, 상담이 훨씬 빠르게 다음 단계로 넘어가는 경우가 많아요.
설치하기
Speedtest Tracker는 Docker 이미지 하나로 배포되고, 내부에 데이터베이스까지 포함된 올인원 이미지도 제공돼서 Docker Compose 설정이 간단해요.
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
ports:
- "8765:80"
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Seoul
- APP_KEY=base64:여기에_생성한_키_입력
- DB_CONNECTION=sqlite
- SPEEDTEST_SCHEDULE=*/30 * * * *
volumes:
- speedtest_data:/config
restart: unless-stopped
volumes:
speedtest_data:
SPEEDTEST_SCHEDULE 값은 cron 표현식으로 테스트 주기를 정하는데, 위 예시처럼 30분 간격이면 하루 48번 테스트가 실행돼요. 너무 짧은 간격으로 설정하면 회선 트래픽에도 영향을 줄 수 있으니 1시간 정도로 늘려 잡는 것도 무난한 선택이에요.
임계값 알림 설정하기
Speedtest Tracker는 다운로드·업로드 속도나 핑에 임계값을 설정해두고, 결과가 그 기준을 벗어나면 알림을 보내는 기능을 제공해요. 이메일, Slack, Discord 웹훅 외에도 ntfy 같은 셀프호스팅 푸시 알림 서비스와 연동해두면, 회선 속도가 뚝 떨어지는 순간 스마트폰으로 바로 알림을 받을 수 있어요. 굳이 대시보드를 계속 켜놓고 지켜볼 필요 없이, 문제가 생겼을 때만 알림으로 확인하는 구조를 만들 수 있는 셈이에요.
데이터를 해석할 때 주의할 점
스피드테스트 결과 하나하나는 테스트 서버와의 거리, 그 서버의 혼잡도, 호스트 머신의 네트워크 카드 성능 등 여러 변수에 영향을 받아요. 그래서 단일 결과 하나만 보고 “지금 회선이 느리다”고 단정하기보다는, 며칠에서 몇 주에 걸쳐 쌓인 추세를 함께 보는 게 훨씬 신뢰할 수 있는 판단 기준이 돼요. Speedtest Tracker의 그래프는 이런 장기 추세를 한눈에 보여주도록 설계돼 있어서, 순간적인 오차보다는 반복되는 패턴에 집중해서 해석하는 게 좋아요.
결론
체감만으로 항의하다 흐지부지되던 ISP 상담을, 이제는 몇 주치 그래프 한 장으로 끝낼 수 있다는 게 Speedtest Tracker가 주는 가장 실질적인 가치예요. 속도 이력을 자동으로 쌓아두는 것만으로도 계약 속도 미달을 입증하는 근거가 되고, 임계값 알림까지 설정해두면 문제가 생기는 순간을 놓치지 않을 수 있어요. 알림 채널을 ntfy로 통일해두면 홈서버에서 발생하는 다른 이벤트들과 함께 한곳에서 관리할 수 있어서 더 효율적이에요.
자주 묻는 질문
Q1. ISP 상담원에게 '가끔 느려요'라고 말하는 것보다 효과가 있나요?
네, 체감만으로 항의하면 상담원이 재현하기 어려워 흐지부지되기 쉬운데, 시간·요일별로 정리된 속도 그래프를 제시하면 구체적인 패턴을 근거로 제시할 수 있어서 훨씬 설득력이 높아져요.
Q2. 테스트를 얼마나 자주 돌려야 하나요?
정해진 정답은 없지만 30분~1시간 간격이 일반적이에요. 너무 자주 돌리면 ISP 서버에 부담을 주거나 자체 트래픽에도 영향을 줄 수 있어서 적당한 간격을 두는 게 좋아요.
Q3. 속도가 떨어지면 바로 알림을 받을 수 있나요?
네, Speedtest Tracker는 임계값을 설정해두면 속도가 기준 이하로 떨어졌을 때 알림을 보낼 수 있고, ntfy 같은 셀프호스팅 푸시 서비스와 연동하면 스마트폰으로 바로 알림을 받을 수 있어요.
Q4. 결과가 실제 회선 속도와 다르게 나올 수도 있나요?
네, 테스트 서버와의 거리나 혼잡도, 호스트 머신의 네트워크 카드 성능에 따라 오차가 발생할 수 있어요. 그래서 단일 결과보다는 장기간 누적된 추세를 보는 게 더 신뢰할 수 있어요.
Q5. 무료로 계속 쓸 수 있나요?
네, Speedtest Tracker는 오픈소스로 공개돼 있어서 셀프호스팅 환경이라면 별도 비용 없이 계속 사용할 수 있어요.
Q6. 여러 대의 회선이나 여러 지점을 동시에 관리할 수 있나요?
각 지점마다 인스턴스를 하나씩 띄우는 방식으로 관리할 수 있어요. 단일 인스턴스가 여러 물리 회선을 동시에 관리하는 기능은 기본 제공되지 않아요.


