這篇文章將為大家詳細講解有關如何理解docker日志引擎,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
成都創(chuàng)新互聯專注于石鼓網站建設服務及定制,我們擁有豐富的企業(yè)做網站經驗。 熱誠為您提供石鼓營銷型網站建設,石鼓網站制作、石鼓網頁設計、石鼓網站官網定制、小程序制作服務,打造石鼓網絡公司原創(chuàng)品牌,更為您提供石鼓網站排名全網營銷落地服務。
docker原生支持眾多的日志引擎,適用于各種不同的應用場景,小編對其作一個簡單的說明。 |
Docker日志引擎說明
docker支持的日志引擎如下:
none:關閉docker的回顯日志, docker logs 看不到任何輸出。使用這種方式也就意味著無法查看任何容器輸出的日志。
json-file:把每個容器的回顯日志打到每個容器的內部, 形式為json 文件。在實際使用中, 有些容器在啟動后有大量的回顯日志, 尤其在程序內部報錯時打出的日志信息尤其巨大, 很可能會因為某幾個容器的json 日志過大而撐爆整個宿主機的磁盤。
syslog:把所有容器的回顯日志打到系統的syslog中。
目前harbor私有鏡像倉庫使用docker-compose方式啟動的話,就默認使用的這種方式。將所有容器的日志都集中收集到一個harbor-log的容器中,在執(zhí)行docker logs的時候會提示"logs" command is supported only for "json-file" and "journald" loggin drivers (got: syslog)。
journald:把所有容器的回顯日志打到系統的journald服務中,這是推薦的方式。
fluentd:把所有容器的回顯日志打到fluentd服務中。
gelf 把所有容器的回顯日志打到支持 GELF(Graylog Extended Log Format) 格式的服務中, 比如Graylog或Logstash。
修改docker日志引擎
修改docker配置文件/etc/docker/daemon.json如下:
{ "log-driver": "journald" }
在容器運行時指定其日志引擎:
docker run --log-driver=journald alpint /bin/sh
journald配置文件說明
# /etc/systemd/jornald.conf示例:
[Journal] #Storage=auto 存儲為自動模式, 其他模式有無日志模式, 純內存模式和純磁盤模式 #Compress=yes 默認啟動壓縮功能 #Seal=yes 默認加密, 日志文件為二進制文件, 無法 vim或tail 查看 #SplitMode=uid #SyncIntervalSec=5m #RateLimitIntervalSec=30s #RateLimitBurst=1000 #SystemMaxUse= 精確設置日志可以占用的最大磁盤空間 #SystemKeepFree= 保證系統剩余的空間大小 #SystemMaxFileSize= #SystemMaxFiles=100 #RuntimeMaxUse= #RuntimeKeepFree= #RuntimeMaxFileSize= #RuntimeMaxFiles=100 #MaxRetentionSec= #MaxFileSec=1month #ForwardToSyslog=no #ForwardToKMsg=no #ForwardToConsole=no #ForwardToWall=yes #TTYPath=/dev/console #MaxLevelStore=debug #MaxLevelSyslog=debug #MaxLevelKMsg=notice #MaxLevelConsole=info #MaxLevelWall=emerg
journald 默認配置下, 默認日志最大限制為所在文件系統容量的 10%
默認配置下, journald 的日志存放在 /var/log/journal 下, 如果該目錄在根分區(qū)下, 且根分區(qū)空間大小為10G, 那么 journald 存放日志最大的大小為1G, 超出1G 后將刪除最早的日志
也可以精確指定占用的空間大小:
SystemMaxUse=50M
journalctl基本用法
journalctl 從頭查看所有日志 journalctl -b 查看本次開機后的所有系統引導日志 journalctl -b -1 顯示上次開機后的系統引導日志, 以此類推 journalctl -f 類似于 tail -f或tailf journalctl /usr/bin/dockerd 后加程序的絕對路徑,可以顯示該程序的所有日志信息 journalctl -xe systemd 啟動程序失敗時會提示你使用這個命令查看錯誤信息, 其中x 表示在日志輸出中增加一些解釋性的短文本, e表示立即跳轉至日志的尾部
journald注意事項
journald配置中,有兩個非常重要的優(yōu)化項目:
ForwardToSyslog=yes ForwardToWall=yes
以上兩個參數默認都是 yes 意味著 journald 收集日志后還會轉發(fā)到 syslog 中
由此造成的影響是: journald 雖然可以乖乖的按照上面的配置進行日志的清理, 但是 syslog 卻不在 journald 的控制范圍之內
在日志量很大的情況下,syslog中的日志量也變得巨大,所以我們需要把上面兩個參數的值改為no
重啟journald服務
systemctl restart systemd-journald.service
關于如何理解docker日志引擎就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
文章標題:如何理解docker日志引擎
文章出自:http://jinyejixie.com/article14/pggcge.html
成都網站建設公司_創(chuàng)新互聯,為您提供品牌網站建設、App設計、移動網站建設、微信小程序、網站建設、建站公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯