[elk] dockerhubイメージのpull数をELKでトラッキングする
背景
dockerhubへイメージをリリースする場合、dockerhubサイトからのようにpullの数が確認できる
ラボの環境でプロジェクトの色々メトリックを管理するの中、このpull数も可視化したい。この数はdockerhubのAPIで取れる。また、すでにプロジェクトのメトリックはELKのダッシュボードで管理されるため、この数もそこにいれたい。ここで、その方法をまとめる。
環境
- ホスト CentOS 7 (jq packageをインストール済み)
- ELKスタック 7.0 (サーバ 10.128.64.200)
index作成
以下のスクリプトで、ELKにおいてdockerhub-track
というindexを作成する
$ 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にて、新しいパターンを作成し、created
を time filter field
にする。
データ更新
ELKのindexへデータを更新するスクリプトを作成する。例えば、/home/user/script/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_URL
をusername
とproject
に合わせ、変更する。dockerhubのprojectに関した情報は以下のapiで取れる。
https://hub.docker.com/v2/repositories/username/project/
また、ラボの環境にproxyが必要ならば、PROXY
をそのurlを置き換える必要ある。例えば、
PROXY="http://10.128.3.103:8080"
このスクリプトをcronに1時間ごと実行するように仕掛ける。例えば、このように
0 * * * * /home/user/script/update.sh > /dev/null 2>&1
これで、準備が完了である。残りは、kibanaで従来通り、dockerhub-track
のmetric visualをついかすれば、dockerhubのpullの数をトラッキングできる。
まとめ
dockerhubのAPIを用い、pull数をELKでカウンター表示する方法を説明した。このようにプロジェクトの色々情報をELKで可視化できる。
Author And Source
この問題について([elk] dockerhubイメージのpull数をELKでトラッキングする), 我々は、より多くの情報をここで見つけました https://qiita.com/bachng/items/b5cc0894439f9237ea81著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .