zoukankan      html  css  js  c++  java
  • 运维笔记--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

    如果公司有自己的内部日志分析系统,这里可以每天定时采集错误日志,并将错误日志文件,导入日志系统,分析。

  • 相关阅读:
    yum安装出现Error: Package: glibc-headers-2.17-157.el7.x86_64 (centos7.3)类似报错解决方案
    构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境
    安卓扫描条码二维码功能
    安卓格式化日期
    生成k8s join代码
    Delphi ado连接DBF数据
    README-gitlab
    sqlserver查看哪段时间不存在数据
    delphi强制终止进程
    sqlserver启用通过sql语句远程访问权限
  • 原文地址:https://www.cnblogs.com/hellojesson/p/10756858.html
Copyright © 2011-2022 走看看