Docker-(3):ドッキングログ


Overview
コンテナの内部を管理することは、デバッグだけでなく、運営においても非常に重要な仕事です.アプリケーション・レベルでログを記録するためにログを開発し、個別のレコード・サービスを記述できますが、ドッキング・ステーションはコンテナの標準出力とエラー・ログを個別のメタデータ・ファイルとして保存して検証する機能を提供します.
json-fileログの使用
コンテナの作成(例)
# docker run -d --name mysql \
-e MYSQL_ROOT_PASSWORD=1234 \
mysql:5.7
保護プロセスで実行し、端末に接続しません.
コンテナログの確認
# docker logs mysql
# docker logs --since 14747765123 mysql // 특정 시간 이후의 로그를 확인한다
きおくいち
デフォルトでは、ログはjson形式で手帳に格納されます.位置は以下の通り
# cat /var/lib/docker/containers/${CONTAINER_ID}/${CONTAINER_ID}-json.log
サイズが大きくなると、ホストのストレージ容量に問題が発生する可能性があるため、調整が必要です.
# docker run -it \
--logopt max-size=10k --log-opt max-file=3 \
--name log-test ubuntu:14.04
使用可能なログドライバの例には、syslog、journald、fuentdがあります.awslogs ... 多種多様
syslogの使用
コンテナの作成とログオプションの追加
# docker run -d --name syslog-container \
--logdriver=syslog \
ubuntu:14.04 \
echo syslogtest!!!
ログ格納場所
# tail /var/log/syslog
ログ専用コンテナの使用
サーバ:192.168.0.100
クライアント:192.168.0.101
[email protected]# docker run -it \
-h rsyslog \
--name rsyslog-server \
-p 514:514 -p 514:514/udp \
ubuntu:14.04
後でrsyslog.confはUDPログ設定を注釈し、rsyslogデーモンを再起動します.
[email protected]# docker run -it \
--log-driver=syslog \
--log-opt syslog-address=tcp://192.168.0.100:514 \
--log-opt tag="mylog" \
ubuntu:14.04
その後,クライアントでechoでテストを行い,tcp,udpなどの通信を用いてログ専用コンテナにタグを付け,ログが記録されていることを確認することができる.
syslog-facilityオプションを使用すると、特定の状況のログのみが渡される場合があります.
fluentdの使用
fluentdはオープンソースツールで、さまざまなログを収集および格納する機能を提供し、fluentdを介してdockerエンジンコンテナ内のログを格納するプラグインを正式に提供します.JSONとして保存できるとともに、AWS、HDF、Mongoなど複数のリポジトリに保存できるというメリットがあります.
いくつですかFluentd->MongoDBと同様に構成できます.
詳しい例は省略した.(同様に、fluntdコンテナでfluent.confファイルを変更するだけです)
Linux Masterの資格を取得する過程で設定ファイルを暗記するのに飽きたので、毎回よく確認して自分で記入します.
Amazonクラウド時計ログを使用
AWSは、ログやイベントなどを収集して保存し、可視化して表示するクラウド時計を提供しています.ドッキングステーションがAWS EC 2にある場合は、コンテナにドライバオプションを設定するだけで、他のツールをインストールすることなくクラウドデータテーブルを使用してドライバを記録できます.順番は以下の通りです.
(1)クラウドテーブル用IAMの作成
(2)ロググループの作成
(3)ログ・グループにログ・フローを作成する
(4)EC 2インスタンスの作成とログ記録を開始し、クラウドでIAM権限を使用する