- 작성시간 : 2022/04/07 18:15
- 퍼머링크 : mcchae.egloos.com/11407222
- 덧글수 : 0
전 세계적으로 펜데믹에 이어 CPU 등이 품귀인가 봅니다.
시간이 지나면서 풀리기 바랍니다.
이번에는 그동안 라즈베리파이는 무시하고 돌리지 않았던
docker 와 docker-compose를 설치하고 서비스를 돌려보는 것을 해 봅니다.
우선 docker 설치 방법입니다.
sudo apt-get update && sudo apt-get upgrade
curl -sSL https://get.docker.com | sh
위의 두 줄로 간단히 설치 가능합니다.
이제는 기본 pi 계정으로 docker 명령이 잘 돌도록 다음 명령이 필요합니다.
sudo usermod -aG docker ${USER}
다음은 docker-compose 설치 방법입니다.
기존에 다른 것과 달리 pip로 설치하는 것이 차이네요.
우선, 아래와 같이 pip3 를 준비하고,
sudo apt-get install -y libffi-dev libssl-dev
sudo apt install -y python3-dev
sudo apt-get install -y python3 python3-pip
다음 명령으로 설치하면 됩니다.
sudo pip3 install docker-compose
이제는 서비스를 활성화하고 재기동하면 됩니다.
sudo systemctl enable docker
다음 명령으로 간단히 돌려봐서 잘 나오면 docker는 충분히 잘 기동하고 있는 것입니다.
docker run hello-world
이제는 다음 링크에 있는 speedtest 서비스를 돌려보았습니다.
demo에 있는 docker-compose.yaml 을 돌리면 linux/arm/v7 용으로 influxdb 가 없다고 오류 나옵니다.
조금 찾아보니 influxdb 인 경우 1.8 버전을 돌리면 해당 CPU 아키텍쳐도 지원 하더군요.
speedtest 컨테이너가 되었다 안되었다 문제가 많아
하나 만들었습니다.
위에 링크에서 linux/arm/v7 용을 받아 돌리면 됩니다.
version: '3'
services:
# Tests the current internet connection speed
# once per hour and writes the results into an
# InfluxDB instance
speedtest:
image: mcchae/speedtest:1.0-arm
restart: always
privileged: true # Needed for 'sleep' in the loop
depends_on:
- influxdb
environment:
- LOOP_DELAY=60
- DB_HOST=http://influxdb:8086
- DB_NAME=speedtest
- DB_USERNAME=admin
- DB_PASSWORD=admin_passW0rd
# Creates an InfluxDB instance to store the
# speed test results
influxdb:
image: influxdb:1.8
restart: always
volumes:
- influxdb:/var/lib/influxdb
ports:
- "8083:8083"
- "8086:8086"
environment:
- INFLUXDB_ADMIN_USER=admin
- INFLUXDB_ADMIN_PASSWORD=admin_passW0rd
- INFLUXDB_DB=speedtest
# Displays the results in a Grafana dashborad
grafana:
image: grafana/grafana:latest
restart: always
depends_on:
- influxdb
ports:
- 3000:3000
volumes:
- grafana:/var/lib/grafana
volumes:
grafana:
influxdb:
해당 라즈베리파이 IP를 바라보고,
3000번 포트로 해서 웹브라우저를 열면,
Grafana 대시보드가 뜹니다.
admin / admin 으로 로그인하고 암호를 넣어준 다음,
influxdb 를 바라보고 기본 데이터 소스를 추가했습니다.
그 다음 dashboard.json 을 다운받아 import 시키면
아래와 같은 해 분마다 (위에 LOOP_DELAY 에서 조종가능)
스피드 테스트를 진행하여 그것을 InfluxDB 시계열 DB 에 넣고
그것이 자동으로 Grafana 대시보드에 확인 가능합니다.
하나 하나 설정을 쉽게 풀어봅니다.
로그인 화면에서는 admin / admin 을 넣고
새로운 암호를 다시 넣어줍니다.
데이터 소스를 새로 만들기 위해서 왼쪽 설정에서 데이터 소스를 설정하고,
새로운 데이터 소스를 생성합니다
여러 데이터 소스 중에서 "InfluxDB"를 선택합니다
URL에 http://influxdb:8086 을 넣어주었습니다.
Database에 speedtest 를, User와 Password에 docker-compose.yaml 에서 주어진 DB user와 암호를 넣습니다. 여기의 정보는 실제 docker-compose 에서의 influxdb 컨테이너를 가리키게 됩니다.
하단의 "Save and Test"를 눌러 데이터소스가 동작하고 있다고 나오면 추가 된 것입니다.
설정에 데이터소스를 보면 추가된 것을 확인할 수 있습니다.
이제 대시보드를 추가하기 위해서 "+" 메뉴에서 "Import"를 선택하고,
speedtest-dashboard.json 을 다운받아 위와 같이 파일로 올려주면,
Import 를 해 줍니다.
그러면 시간이 흘러 위와 같이 스피드 테스트를 잘 하는 결과가 나옵니다. 재미난 사실은 항상 유사한 다운로드 업로드 속도가 나오는 것이 아니라는 사실입니다.
어느 분께는 도움이 되셨기를 ..



덧글