[elk] dockerhub 이미지의 pull 수를 ELK로 추적

배경



dockerhub에 이미지를 출시하면 dockerhub 사이트에서와 같이 풀 수를 볼 수 있습니다.






랩 환경에서 프로젝트의 다양한 메트릭을 관리하는 가운데, 이 pull수도 가시화하고 싶다. 이 수는 dockerhub API에서 가지고 간다. 또, 이미 프로젝트의 메트릭은 ELK의 대시보드로 관리되기 때문에, 이 수도 거기에 가고 싶다. 여기서, 그 방법을 정리한다.

환경


  • 호스트 CentOS 7 (jq package 설치됨)
  • ELK 스택 7.0 (서버 10.128.64.200)

  • 색인 생성



    다음 스크립트에서 ELK에서 dockerhub-track라는 색인 생성
    $ curl -XPUT "http://10.128.64.200:9200/dockerhub-track" -H 'Content-Type: application/json' -d'
    {
        "settings": {
            "number_of_shards": 3,
            "number_of_replicas" : 2
        },
        "mappings": {
          "dockerhub": {
            "properties": {
               "download": { "type" : "integer" },
               "created": { "type": "date"}
            }
          }
        }
    }'
    

    UPDATE : ELS 7.x부터 위의 스키마는 더 이상 사용할 수 없습니다.

    다음으로, kibana의 index mamangement에서, 새로운 패턴을 작성해, createdtime filter field로 한다.






    데이터 업데이트



    ELK의 index로 데이터를 업데이트하는 스크립트를 작성한다. 예를 들어, /home/user/script/update.sh
    update.sh
    #!/bin/sh
    
    # 
    PROXY=""
    DOCKER_URL="https://hub.docker.com/v2/repositories/username/project/"
    PULL=$(curl -s -x $PROXY $DOCKER_URL | jq .pull_count)
    DATE=$(date -u +"%Y-%m-%dT%H:%M:%S")
    echo $PULL
    echo $DATE
    
    # DATE is in UTC
    curl -s -XPOST $DOCKER_URL -H 'Content-Type: application/json' -d "{\"download\": $PULL,\"created\":\"$DATE\"}"
    
    DOCKER_URLusernameproject에 맞추고 변경합니다. dockerhub의 project에 관한 정보는 이하의 api로 취할 수 있다.
    https://hub.docker.com/v2/repositories/username/project/
    

    또한 실험실 환경에 프록시가 필요한 경우 PROXY를 URL을 대체해야합니다. 예를 들어,
    PROXY="http://10.128.3.103:8080"
    

    이 스크립트를 cron에 매시간 실행하도록 한다. 예를 들어,
    0 * * * *         /home/user/script/update.sh > /dev/null 2>&1
    

    이것으로 준비가 완료되었습니다. 나머지는, kibana에 전통적으로, dockerhub-track의 metric visual를 사로잡는 경우에, dockerhub의 pull의 수를 추적할 수 있다.






    요약



    dockerhub의 API를 사용하여 풀 수를 ELK로 카운터 표시하는 방법을 설명했다. 이와 같이 프로젝트의 다양한 정보를 ELK로 가시화할 수 있다.

    좋은 웹페이지 즐겨찾기