今さらながらDockerと戯れています。
といっても情報が溢れているx86_64環境ではなく、AArch64(Arm64)環境に対してですが・・・
Dockerのlog周りを調べていると、色々な出力に対応しているのを知りました。
まぁとはいえ基本的に使用されているのは、「json-file」「fluentd」「awslogs」「splunk」「gcplogs」などだと思います
うちはベアメタル環境のため、デフォルトのjson-fileでも良いんですが、「journald」「syslog」あたりも選択肢になるのですが、今回は以前にちょこっと触ったことのあるLogentriesに投げるようにしてみました。
確認環境:
$ docker info
Containers: 3
Running: 3
Paused: 0
Stopped: 0
Images: 16
Server Version: 18.02.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: logentries
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 9b55aab90508bd389d7654c4baf173a981477d55
runc version: 9f9c96235cc97674e935002fc3d78361b696a69e
init version: 949e6fa
Security Options:
seccomp
Profile: default
Kernel Version: 4.4.77-rk3328
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: aarch64
CPUs: 4
Total Memory: 3.834GiB
Name: dns02
ID:
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Username: kometchtech
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
設定手順
Log Management & Analysis Software Made Easy | Logentries
Configure logging drivers | Docker Documentation
基本的にはDockerとLogentriesのドキュメントを読めば終わりなのですが、とりあえずサラッと。
POINT
- Logentriesにログインする。
- Add logからManualを選択する。
- 「How are the logs sent?」から「Token TCP – logs are identified by a token. 」を選択し、createをクリックすると、API Tokenが発行されるので、それをメモしておく。
- Docker Host全体に適用するには、以下のようにする。
{
"log-driver": "logentries",
"log-opts": {
"logentries-token": API_TOKEN_KEY
}
}
と設定したら、Dockerサービスを再起動します。すでにDockerコンテナが起動している状態でしたら、コンテナ自体も再起動する必要があると思います。
これだけ設定することができれば、たぶんlogがLogentriesに流れてくることを確認できると思います。
ただ、いくつかのダッシュボードの設定がLogentriesでも用意されているので、こちらを利用するともう少し利用しやすくなると思います。