美文网首页程序员
ELK根据服务类型收集多个容器数据

ELK根据服务类型收集多个容器数据

作者: 南南宫问天 | 来源:发表于2020-06-30 16:29 被阅读0次

1.安装docker-compose

yum install -y python2-pip ##安装pip工具
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pip -U ##下载加速器
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple ##使用加速器
pip install docker-compose ##使用pip工具安装docker-compose

2.编辑compose文件

[root@db02 ~]# cat docker-compose.yaml 
version: '3'
services:
  nginx:
    image: nginx:latest
    #设置labels
    labels:
      service: game
    # logging设置增加lables.service
    logging:
      options:
        labels: "service"
    ports:
      - "8080:80"
  db:
    image: nginx:latest
    # 设置lables
    labels:
      service: school
    # logging设置增加lables.service
    logging:
      options:
        labels: "service"
    ports:
      - "80:80"

3.使用docker-compose启动容器

[root@db02 ~]# docker-compose up & ##启动容器并放入后台
[root@db02 ~]# docker ps -a ##查看容器启动情况
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
20cb4626d034        nginx:latest        "/docker-entrypoint.…"   36 seconds ago      Up 22 seconds       0.0.0.0:80->80/tcp     root_db_1
ab5c8bb167df        nginx:latest        "/docker-entrypoint.…"   36 seconds ago      Up 23 seconds       0.0.0.0:8080->80/tcp   root_nginx_1

4.修改kibana配置文件并重启filebeat

[root@db02 ~]# cat /etc/filebeat/filebeat.yml 
filebeat.inputs:
- type: log
  paths:
    - /var/lib/docker/containers/*/*-json.log
  json.keys_under_root: true
  json.overwrite_keys: true

setup.kibana:
  host: "172.16.210.53:5601"

output.elasticsearch:
  hosts: ["172.16.210.53:9200"]
  indices:
  - index: "docker-game-access-%{[beat.version]}-%{+yyyy.MM}"
    when.contains:
      attrs.service: "game"
      stream: "stdout"

  - index: "docker-game-error-%{[beat.version]}-%{+yyyy.MM}"
    when.contains:
      attrs.service: "game"
      stream: "stderr"

  - index: "docker-school-access-%{[beat.version]}-%{+yyyy.MM}"
    when.contains:
      attrs.service: "school"
      stream: "stdout"

  - index: "docker-school-error-%{[beat.version]}-%{+yyyy.MM}"
    when.contains:
      attrs.service: "school"
      stream: "stderr"

setup.template.name: "docker"
setup.template.pattern: "docker-*"
setup.template.enabled: false
setup.template.overwrite: true
[root@db02 ~]# systemctl restart filebeat

5.回到kibana界面依次添加索引

image.png image.png image.png

点击discover,查看数据

image.png

相关文章

  • ELK根据服务类型收集多个容器数据

    1.安装docker-compose 2.编辑compose文件 3.使用docker-compose启动容器 4...

  • 2018-07-20 day 5

    一、列表 列表、字典、元组、集合都是序列,都是容器类型的数据类型 列表(list):存储多个数据的一种容器类型.里...

  • 大型互联网Java架构师基于Spring Cloud的微服务架构

    Spring cloud ELK:logback ELK负责平台级服务日志收集及展示由spring cloud s...

  • 列表

    列表、字典、元组、集合都是序列,都是容器类型的数据类型 列表(list):用来存储多个数据的数据类型特点:1.有序...

  • 11Chapter 数组2020-01-15

    数组概念: 一种容器,可以同时存放多个数据 特点: 1. 是一种引用数据类型 2. 数组当中的多个数据,类型必须...

  • docker swarm 1.12 服务

    服务由多个任务实例组成,每个任务会启动一个容器。目前docker仅支持容器任务,不支持其它非容器类型的任务。服务工...

  • Day5列表

    列表、字典、元祖、集合都是序列,都是容器类型的数据类型列表(list):用来存储多个数据的一种数据类型. 里面存储...

  • 2018-07-20 python学习—列表

    列表、字典、元祖、集合都是序列,都是容器类型的数据类型 列表(list):用来存储多个数据的一种数据类型. 里面存...

  • day5-列表

    列表、字典、元祖、集合都是序列,都是容器类型的数据类型 列表(list):用来存储多个数据的一种数据类型. 里面存...

  • K8s容器日志实时收集FileBeat+ES+Kibana

    ELK K8s容器日志实时收集FileBeat+ES+Kibana 一、FileBeat 1.1 FileBeat...

网友评论

    本文标题:ELK根据服务类型收集多个容器数据

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