運維筆記--docker高效查看后台日志


場景描述:

應用程序運行在 Docker環境中,
經常使用的查看后台日志的命令是:docker attach 容器名
該命令優點:實時輸出;
不足之處:日志大量輸出的時候,屏幕一閃而過,不便於調試,
並且有一個比較嚴重的問題,就是該命令在某些容器環境下,由於配置不同,ctrl+c命令退出的時候,會直接導致該容器停止。

其實,docker自身是集成封裝了一些關於查看日志的命令的,組合使用,可幫助日常快速定位問題:

* 顯示所有 log
* 顯示實時 log
* 使用 tail 查看 log 尾部
* 使用 grep 過濾 log
* 根據時間查看 log
* 組合使用
* 把錯誤日志追加寫入文件

1. 顯示所有 log

# 顯示某個容器的所有log
$ docker logs [OPTIONS] <CONTAINER>

# 顯示 docker-compose 啟動的所有容器的log
$ docker-compose logs

2. 顯示實時 log

類比linux下的命令tail -f ****.log

$ docker logs -f <CONTAINER>

3. 查看倒數最近的多少條日志記錄

$ docker logs --tail 20 <CONTAINER>

4. grep 過濾 log

$ docker logs | grep error

5. 根據時間查看 log

如只想查看某個時間點之后的日志,使用 --since 選項,顯示從指定時間點到最新的日志:

$ docker logs --since 2019-04-20T15:05:34.483942Z <CONTAINER>

--since指定了開始時間點,還可以指定結束時間點,使用選項 --until,顯示二者之間的日志:

$ docker logs --since 2019-04-20T15:05:34.483942Z --until 2019-04-23T15:05:34.483942Z <CONTAINER>

6. 組合使用

$ docker logs --tail 10 <CONTAINER> | grep info
$ docker logs -f --since xxx --tail=10 <CONTAINER>

7. 把錯誤日志追加寫入某個文件

$ docker logs -t <CONTAINER> | grep error >> logs_error.txt

如果公司有自己的內部日志分析系統,這里可以每天定時采集錯誤日志,並將錯誤日志文件,導入日志系統,分析。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM