临渊羡鱼,不如回家睡觉。


    不同的话,有不同的解析方式,积极的人用正向去解析,悲观的人用消极去解读,人与人不同,花有几样红。

容器时间

在容器里面进行监控的时候,大量的依赖于时间,如果容器运行在物理机上,那么肯定有ntp同步,如果容器运行在虚拟机上,也是需要时间同步的。


    在容器里面,一般获取性能数据的时候,都是需要根据时间来获取,然而当使用不同用户的时候,显示是不一致的。

容器内日志时间不对怎么办 容器时间不一致_开机启动

如上图,当时间相差8个小时的时候,一般就是因为时区的问题,从而只要设置环境变量TZ即可,但是当监控使用不同用户的时候,如果忘记设置环境变量,那么就会导致显示的时间不一致,从而无法获取性能数据。


    设置环境变量是一种方式,有的时候,你会发现没有设置环境变量,也是ok的,主要原因是设置了一个配置文件,也就是软连接,如下:   

容器内日志时间不对怎么办 容器时间不一致_容器内日志时间不对怎么办_02

    设置一个软连接文件也是将时区进行修改的,从而就无需进行设置环境变量。


    偶尔你会发现java程序的时间不对,发现没有设置时区的时候,主要是因为java程序的查找路径为a:变量TZ b:/etc/sysconfig/clock c:/etc/localtime,所以需要仔细检查一下相关的配置,从而再查看相关的日志时间是否正确。


    容器一般会存在这种问题,而在物理机或者虚拟机一般不存在这种问题,是因为在安装操作系统的时候,已经设定好了,如下:

容器内日志时间不对怎么办 容器时间不一致_环境变量_03

在上个文章中,说到一个问题,就是在chkconfig中添加了开机启动之后,是否会有相关的程序自动启动:

容器内日志时间不对怎么办 容器时间不一致_开机启动_04

从上图可以看到,开机启动中设置了crond为开机启动,但是重启容器之后,并没有启动对应的服务,所以chkconfig明显没啥用,当在容器里面需要启动相关的服务的时候,必须在entrypoint里面启动你想要的服务。


    在容器里面有很多环境变量,会设置很多很多,很长,看见很烦,所以呢,如果设置TERM这个环境变量,一定要设置为xterm,不要设置为screen,因为一个能清屏,一个不可以,看起来好心烦。