loki-docker-driver を試す
loki-docker-driver を手軽に試せる良いエントリがあったのでやってみた。
loki-docker-driver インストール
インストール
$ docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions latest: Pulling from grafana/loki-docker-driver 7ff4041d336b: Download complete Digest: sha256:6b5a85811b87539bf8541cae1235029dd3e9436917690fbde44f4e1c4ef8fe25 Status: Downloaded newer image for grafana/loki-docker-driver:latest Installed plugin grafana/loki-docker-driver:latest
確認
$ docker plugin ls ID NAME DESCRIPTION ENABLED e11d47dcd939 loki:latest Loki Logging Driver true $ docker inspect e1 [ { "Config": { "Args": { "Description": "", "Name": "", "Settable": null, "Value": null }, "Description": "Loki Logging Driver", "DockerVersion": "17.09.0-ce", "Documentation": "https://github.com/grafana/loki", "Entrypoint": [ "/bin/docker-driver" ], : } } ]
loki+grafana+promtail インストール
$ git clone https://github.com/grafana/loki.git $ cd loki/production/ $ docker-compose up -d
docker-compose 確認。localhost:3000 が grafana、localhost:3100 が loki に向いている。
$ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------------------------ production_grafana_1_74ab379aaf97 /run.sh Up 0.0.0.0:3000->3000/tcp production_loki_1_87e5d054fa8d /usr/bin/loki -config.file ... Up 0.0.0.0:3100->3100/tcp, 80/tcp production_promtail_1_5e7f3e404eca /usr/bin/promtail -config. ... Up
grafana 確認
- ブラウザで
http://<ipaddress>:3000
を開く admin/admin
でログイン- パスワード変更を求められるがskip
Add data source
をクリックし、loki を選択- URLに
http://loki:3100
を入力Save & Test
をクリック - explore -> loki -> labels -> テキトーなの選択
- localhost の /var/log が promtail で loki に送信されているのがわかる
コンテナからログ送信
やりたいのはpromtailでなく dockerコンテナのログ送信。続けてコンテナからログ送信してみる。logdriver に loki を指定し docker run。
$ docker run --log-driver=loki \ --log-opt loki-url="http://localhost:3100/api/prom/push" \ --log-opt loki-retries=5 \ --log-opt loki-batch-size=400 \ alpine:3.9 ping localhost PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.730 ms 64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.367 ms 64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.123 ms 64 bytes from 127.0.0.1: seq=3 ttl=64 time=0.089 ms 64 bytes from 127.0.0.1: seq=4 ttl=64 time=0.086 ms 64 bytes from 127.0.0.1: seq=5 ttl=64 time=0.078 ms ^C --- localhost ping statistics --- 6 packets transmitted, 6 packets received, 0% packet loss round-trip min/avg/max = 0.078/0.245/0.730 ms
docker logs を確認。動揺したファインマンw
$ docker ps -al CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d81ddbfa74c7 alpine:3.9 "ping localhost" About a minute ago Exited (0) 57 seconds ago agitated_feynman [j-takeuchi@localhost ~]$ docker logs d8 PING localhost (127.0.0.1): 56 data bytes 64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.730 ms 64 bytes from 127.0.0.1: seq=1 ttl=64 time=0.367 ms 64 bytes from 127.0.0.1: seq=2 ttl=64 time=0.123 ms 64 bytes from 127.0.0.1: seq=3 ttl=64 time=0.089 ms 64 bytes from 127.0.0.1: seq=4 ttl=64 time=0.086 ms 64 bytes from 127.0.0.1: seq=5 ttl=64 time=0.078 ms --- localhost ping statistics --- 6 packets transmitted, 6 packets received, 0% packet loss round-trip min/avg/max = 0.078/0.245/0.730 ms [
grafana を確認。
おそうじ
さようならファインマンさん
$ docker rm agitated_feynman $ docker-compose down $ docker plugin disable loki $ docker plugin rm loki