인프라 모니터링, 도커(Docker)

2020. 1. 8. 01:46참고

그라파나(Grafana)

 

AWS에 게임 서버 설치를 준비하고 있습니다.

작년(2019) 여름쯤 AWS 사용을 익혀두었는데 게임이 완성되지 않아서 바로 파뭍고 ㅋ

이제야 다시 시작하네요. 다시 학습. -_ -;

 

그런데 요즘 대세는 컨테이너 기반 인프라 관리라는데

평소 들어보았던 도커(Docker)를 좀 자세히 살펴보았습니다.

 

... 그렇게 일주일이 지났습니다. ...

 

게임 서버 설치하고 프로토콜 테스트해야 할 시간을 인프라 관리 시스템에 다 썼네요. ㅋ

끝없는 설치와 설정이 무한 반복되는 인프라 세상에서 설치가 사라졌습니다. 0_ 0...

매력적이네요. 웹 서버 뿐만아니라 게임 서버에도 충분히 긍정적인 영향을 미칠거라 생각합니다.

 

도커 컨테이너에 익숙하지 않은 분이라면 제가 거쳐갔던 시간을 참고해서 컨테이너에 익숙해지세요.

웹에만 머물지 않을 멋진 기술입니다.

 

도커 모름. - 시작!

 

도커 감잡기.

https://www.youtube.com/watch?v=chnCcGCTyBg

 

우분투 18.04 LTS + docker-ce 설치후.

 

도커 1,2,3

https://www.youtube.com/watch?v=9tW0QSsrhwc

https://www.youtube.com/watch?v=p58k2_HMWRM

https://www.youtube.com/watch?v=X--WPFfSbFc

 

도커 네트웍 구조 1~4

https://bluese05.tistory.com/15

 

[참고]

쿠버네티스 1,2,3

https://www.youtube.com/watch?v=IFc1mG48j0s 

https://www.youtube.com/watch?v=lVG9LU90ZQw 

https://www.youtube.com/watch?v=6q1MRXNUzPU 

 

드디어 모니터링! (cAdvisor - Prometheus - Grafana)

(여기서는 도커 스웜 중심입니다. 쿠버네티스는 마지막 링크를 참조하세요.)

https://www.opvizor.com/docker-swarm-monitoring

 

그라파나 최신 도커는 직접 받으세요.

docker pull grafana/grafana

docker run -d --name=grafana -p 3000:3000 grafana/grafana

 

그라파나 샘플 사이트

https://play.grafana.org/d/77d47mNik/prometheus-singlestat-label-value

 

그라파나 대시보드 사이트

https://grafana.com/grafana/dashboards?dataSource=prometheus

 

그리고 Prometheus QL

https://devthomas.tistory.com/15

https://prometheus.io/docs/prometheus/latest/querying/basics/

 

휴...

 

책이 나왔네요.

http://www.yes24.com/Product/Goods/84927385?scode=032&OzSrank=1

 

이제 게임 서버 설치 들어갑니다. 쿨럭. -_ -...

 

 

 

ps.

그라파나 혹은 프로메테우스 컨테이너가 실행되지 않는 문제.

로그 확인하면, 권한 문제로 인한 쓰기 실패로 종료가 나옵니다.

docker logs <container id>

 

cannot create directory '/var/lib/grafana/plugins': Permission denied
grafana_grafana_1 exited with code 1

 

그라파나(Grafana) 5.1 이후 버전은 설정 방법에 큰 변화가 있습니다.

볼륨 위치 변경 및 기본 루트 로그인에서 유저 로그인으로 변경 등.

https://grafana.com/docs/grafana/latest/installation/docker/#migration-from-a-previous-version-of-the-docker-container-to-5-1-or-later

 

참고 (docker-compose.yml)

  grafana:
    image: grafana/grafana:latest-ubuntu
    user: "104"
    networks:
      - net
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_USER=${ADMIN_USER:-admin}
      - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin}
      - GF_USERS_ALLOW_SIGN_UP=false
    #volumes:
      #- ./grafana:/var/lib/grafana
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          memory: 128M
        reservations:
          memory: 64M

 

 

 

err="open /prometheus/queries.active: permission denied"

 

프로메테우스(Prometheus) 역시 로그인 권한이 root에서 UID로 바뀌었네요.

자신의 UID 확인. (echo $UID)

https://github.com/prometheus/prometheus/issues/5976

 

참고 (docker-compose.yml)

  prometheus:
    image: prom/prometheus
    networks:
      - net
    user: "1000:1000"
    ports:
      - "9090:9090"
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--storage.tsdb.retention=${PROMETHEUS_RETENTION:-24h}'
    volumes:
      - ./prometheus:/prometheus
    configs:
      - source: prom_conf
        target: /etc/prometheus/prometheus.yml
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          memory: 2048M
        reservations:
          memory: 128M

 

휴.. 이제 잘 동작합니다.

무료로 AWS 서버 모니터링 하려다가 컨테이너 기반 생태계에 입문했네요. ㅋ