k8s容器环境收集应用日志到已有的ELK日志平台
admin
2023-02-26 16:01:41
0次

Tags: k8s环境下的容器日志收集
K8S环境下面如何收集应用日志
===
在本文中重点讲一下K8S容器环境中如何收集容器的日志;

1. 容器日志收集方案的选择:

  在K8S集群中,容器的日志收集方案一般有三种;第一种方案是通过在每一个k8s节点安装日志收集客户端软件,比如fluentd。这种方案不好的一点是应用的日志必须输出到标准输出,并且是通过在每一台计算节点的/var/log/containers目录下面的日志文件,这个日志文件的名称是这种格式user-center-765885677f-j68zt_default_user-center-0867b9c2f8ede64cebeb359dd08a6b05f690d50427aa89f7498597db8944cccc.log,文件名称有很多随机字符串,很难和容器里面的应用对应起来。并且在网上看到别人说这个里面的日志,对于JAVA的报错内容没有多行合并,不过我还没有测试过此方案。

  第二种方案就是在应用的pods里面在运行一个sidecar container(边角容器),这个容器会和应用的容器挂载同一个volume日志卷。比如这个sidecar容器可以是filebeat或者flunetd等;这种方案不足之处是部署了sidecar , 所以会消耗资源 , 每个pod都要起一个日志收集容器。
  第三种方案就是直接将应用的日志收集到kafka,然后通过kafka再发送到logstash,再处理成json格式的日志发送到es集群,最后在kibana展示。我实验的就是这种方案。通过修改logsbak配置文件实现了日志直接发送到kafka缓存的功能;下面直接看配置了

1. logsbak配置:



      

      
      
      
     

    

    
    -
    
        
          
        
    -
    
        [%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
    
    
    

    -
    ${log-path}/${app-name}/${filename}.log
    -
    /${log-path}/${app-name}/${filename}.%d{yyyy-MM-dd}.%i.log
    15
    
    
        300MB
    

    
    

    -
    
        [%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
    


    
        ${log-path}/${app-name}/${filename}-error.log
        
            /${log-path}/${app-name}/${filename}-error.%d{yyyy-MM-dd}.%i.log
            
                300MB
            
            15
        
        
            
        
        
        
            [%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
        
    
        
            ERROR
            ACCEPT
            DENY
        
    

    
    
        
           [%date{ISO8601}] [%level] %logger{80} [%thread] [%tid] ${dev-group-name} ${app-name} Line:%-3L - %msg%n
        
        elk-stand-sit-fkp-eureka
        
        

        
        

        
        
        
        bootstrap.servers=192.168.1.12:9092,192.168.1.14:9092,192.168.1.15:9092
        
        acks=0
        
        linger.ms=1000
        
        max.block.ms=0
        
        client.id=${HOSTNAME}-${CONTEXT_NAME}-logback-relaxed
        
        block.on.buffer.full=false

         
        
    

    
         
        
        
        

    

###2. 针对logsbak配置说明:###

  1. logsbak直接发送日志到kafka有几种方式,一种是异步模式,一种是同步模式。异步模式的意思就是如果kafka因为网络情况出现故障,则阻塞发送日志或者直接将日志发送到后备存储,比如后备存储是发送到日志文件;同步模式的意思就是即使kafka出现网络情况不可达,则就会影响到日志线程,进而影响到应用的性能。不过这个模式的我没有测试过;配置如下:
    
    
        
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
        

        important-logs
        
        
        
        
            
            0
        

        
        
        
        bootstrap.servers=localhost:9092
        
        buffer.memory=8388608

        
        metadata.fetch.timeout.ms=99999999999
        
        client.id=${HOSTNAME}-${CONTEXT_NAME}-logback-restrictive
        
        compression.type=gzip

        
        
      

通过配置logsbak直接输出到kafka,并且使用异步模式,就成功的在kibana里面看到了容器的日志了;
k8s容器环境收集应用日志到已有的ELK日志平台

博文的更详细内容请关注我的个人微信公众号 “云时代IT运维”,本公众号旨在共享互联网运维新技术,新趋势; 包括IT运维行业的咨询,运维技术文档分享。重点关注devops、jenkins、zabbix监控、kubernetes、ELK、各种中间件的使用,比如redis、MQ等;shell和python等运维编程语言;本人从事IT运维相关的工作有十多年。2008年开始专职从事Linux/Unix系统运维工作;对运维相关技术有一定程度的理解。本公众号所有博文均是我的实际工作经验总结,基本都是原创博文。我很乐意将我积累的经验、心得、技术与大家分享交流!希望和大家在IT运维职业道路上一起成长和进步;

k8s容器环境收集应用日志到已有的ELK日志平台

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...