美文网首页
Docker容器日志收集

Docker容器日志收集

作者: Cooperluffy丨路飞 | 来源:发表于2018-05-16 14:43 被阅读747次

    日志是 IT 系统的重要组成部分,记录了系统在什么时候发生了什么事情。我们可以根据日志排查系统故障,也可以做统计分析.
    通常日志存放在本机的日志文件里,需要查看日志的时候,登录到机器上,用 grep 等工具过滤关键字。但是当应用要部署在多台机器上的时候,这种方式查看日志就很不方便了,为了找到一个特定的错误对应的日志,不得不登录到所有的机器上,逐个过滤文件。于是出现了集中式的日志存储方式:所有日志收集到日志服务里,在日志服务里可以查看和搜索日志

    在 Docker 环境里,集中式日志存储更加重要。相比传统的运维模式,Docker 通常使用编排系统管理容器,容器和宿主机之间的映射并不固定,容器也可能不断的在宿主机之间迁移,登录到机器上查看日志的方式完全没法用了,集中式日志成了唯一的选择。

    1.使用阿里云的日志服务

    日志服务(Log Service,简称LOG/原SLS)是针对实时数据一站式服务,在阿里集团经历大量大数据场景锤炼而成。提供日志类数据采集、消费、投递及查询分析功能,全面提升海量日志处理/分析能力。

    阿里日志服务

    2.容器服务中使用 ELK

    Elasticsearch+Logstash+Kibana

    3.容器服务中使用log-pilot+Elasticsearch+Kibana

    本文重点介绍这套方案:
    Docker 日志收集新方案:log-pilot

    1. Compose文件如下:
    version: '2'
    services:
      elasticsearch:
        image: elasticsearch
        ports:
        - '9200:9200'
      kibana:
        image: kibana
        environment:
          ELASTICSEARCH_URL: http://elasticsearch:9200/
        ports:
        - '5601:5601'  
        labels:
          aliyun.routing.port_5601: kibana
        links:
          - elasticsearch
          
      pilot:
         image: registry.cn-hangzhou.aliyuncs.com/acs-sample/log-pilot:0.1
         volumes:
          - /var/run/docker.sock:/var/run/docker.sock
          - /:/host
         privileged: true
         environment:
           FLUENTD_OUTPUT: elasticsearch #按照您的需要替换 
           ELASTICSEARCH_HOST: ${elasticsearch} #按照您的需要替换
           ELASTICSEARCH_PORT: 9200
         labels:
             aliyun.global: true
    

    ps: version是compose的版本、

    1. 其他容器启动配置labels
      其中labels是index
    labels:
        aliyun.logs.access:/opt/openfire/logs/*.log
    
    1. ELASTICSEARCH_HOST 是elasticsearch所运行容器的节点
    2. 在ECS的安全组中开放5601端口
    3. 访问http://47.96.183.216:5601
      其中47.96.183.216是kibana容器所运行的节点ip
    4. 输入第二步指定的access 标签

    相关文章

      网友评论

          本文标题:Docker容器日志收集

          本文链接:https://www.haomeiwen.com/subject/ilvpdftx.html