• ELK日志分析系统(2)-logspout收集容器日志


    1. 概述

      安装了ELK之后,就是要考虑怎么获取log数据了。

      收集log数据的方式有很多种:

      1). beats采集数据发布到logstash

      2). Filebeat采集数据发布到logstash

      3). logspout, 自动把docker下的所有容器的所有日志发布到logstash

      4). python logstash库直接发布日志到logstash

      5). 原始容器日志记录的目录作为一个卷(volume),并且让其他容器使用--volumes-from选项来继承这个卷

      6). 容器日志docker run --log-driver=syslog --log-opt syslog-address=tcp://:5000

      考虑到4-6多多少少都要修改业务代码,不够逻辑分离,暂时不考虑;1-2研究了下安装比3麻烦,所以最后采用3的方式来收集容器日志

    2. 服务管理

      2.1. github地址

      https://github.com/gliderlabs/logspout

      2.1. docker部署

    sudo docker run -d --name="logspout" --volume=/var/run/docker.sock:/var/run/docker.sock --volume=/etc/hostname:/etc/host_hostname:ro --publish=192.168.1.165:8000:80 -e LOGSPOUT=ignore  gliderlabs/logspout syslog+tcp://192.168.1.165:5001

      本身的日志是没有意义的,所以这边会禁止logspout, -e LOGSPOUT=ignore

      收集到的日志会转发到logstash的5001端口:syslog+tcp://192.168.1.165:5001

      logspout支持查看所有收集到的日志,地址是:http://192.168.1.165:8000/logs

      查看容器:

    b929e22ee74c   gliderlabs/logspout   "/bin/logspout syslo…"    2 days ago     Up 31 hours       192.168.1.165:8000->80/tcp          logspout

      查看容器日志:

    3. logspout忽略设置

      只要安装了logspout,那么这个主机上面的所有容器的日志都会被收集,如果想日志不被收集给容器设置环境变量LOGSPOUT=ignore

      3.1. docker部署

    sudo docker run -d -e LOGSPOUT=ignore  xxxxxx

      

      3.2. docker-compose部署

      

    services:
      elasticsearch:
        build:
          context: elasticsearch/
          args:
            ELK_VERSION: $ELK_VERSION
        volumes:
          - type: bind
            source: ./elasticsearch/config/elasticsearch.yml
            target: /usr/share/elasticsearch/config/elasticsearch.yml
            read_only: true
          - type: volume
            source: elasticsearch
            target: /usr/share/elasticsearch/data
        ports:
          - "9200:9200"
          - "9300:9300"
        environment:
          ES_JAVA_OPTS: "-Xms1g -Xmx3g"
          ELASTIC_PASSWORD: changeme
          LOGSPOUT: ignore
        networks:
          - elk

      

  • 相关阅读:
    假期python复习2
    假期python复习
    java学习博客2
    Ubuntu20.04安装配置java和tomcat部署静态html网站方法
    如何使用eclipse使用Maven
    __block用结构体使用forwarding指针的原因
    Block存储域学习
    Block捕获__block局部变量的底层原理
    《Objective-C 高级编程》 1.2.3节 alloc/retain/release/dealloc 实现——学习总结
    UICollectonView使用总结
  • 原文地址:https://www.cnblogs.com/zhanchenjin/p/11649166.html
Copyright © 2020-2023  润新知