• Docker 运行ELK日志监测系统,汉化Kibana界面


     

    1、ELK日志监控简介

    ELK由Elasticsearch、Logstash和Kibana三部分组件组成;

    Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

    Logstash是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用 。

    Kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。

    2、ELK镜像地址

    我搭建的ELK版本为6.3.0,6+版本后,官方就没有将镜像上传到GitHub,只能去官网下载,速度超慢。

    这里我将ELK镜像上传到我的网易云供大家拉取。

        ES:docker pull hub.c.163.com/xiedongbin/elasticsearch:6.3.0
         
        Logstash:docker pull hub.c.163.com/xiedongbin/logstash:6.3.0
         
        Kibana:docker pull hub.c.163.com/xiedongbin/kibana:6.3.0

    拉取后,将镜像分别命名为 elasticsearch、logstash、kibana。

    3、ELK目录下,新建logstash目录

    进入 logstash,创建logstash.conf文件,文件内容如下:

        input {
               tcp {
                    add_field => {"myid"=>"APP"}
                    mode => "server"
                    port => 4567
                    codec => json_lines
               }
               tcp {
                    add_field => {"myid"=>"SQL"}
                    mode => "server"
                    port => 4568
                    codec => json_lines
               }
        }
        filter {}
        output {
              if [myid] == "APP"{
                 elasticsearch {
                     hosts => ["192.168.0.13:9200"]
                     index => "log-%{[service_name]}-%{+YYYY.MM.dd}"
                 }
                 file {
                     path => "ELK/log.log"
                     codec => line
                 }
               }
         
               if [myid] == "SQL"{
                  elasticsearch {
                      hosts => ["192.168.0.13:9200"]
                      index => "sql-%{[service_name]}-%{+YYYY.MM.dd}"
                  }
                  file {
                      path => "ELK/log.log"
                      codec => line
                  }
               }
        }
         

     

    创建dockerfile文件,内容如下:

        FROM logstash:6.3.0
        COPY logstash.conf /some/config-dir/
        CMD ["-f","/some/config-dir/logstash.conf"]

    以logstash.conf配置新建镜像my-logstash。

    docker build -t my-logstash:6.3.0 .

    4、修改内存权限设置

    vim  /etc/sysctl.conf

    添加 vm.max_map_count=262144 参数,

    保存文件后,使用命令 sysctl -p 使设置立即生效。

    5、ELK目录下创建docker-compose.yml文件

        version: '2'
        services:
          elasticsearch:
            image: elasticsearch:6.3.0
            container_name: elasticsearch
            restart: always
            ports:
              - "9200:9200"
              - "9300:9300"
            environment:
              ES_JAVA_OPTS: "-Xms1g -Xmx1g"
            networks:
              - elk
            volumes:
              - ./data:/usr/elasticsearch/data
          logstash:
            image: my-logstash:6.3.0
            container_name: logstash
            restart: always
            networks:
              - elk
            ports:
              - "4567:4567"
              - "4568:4568"
            depends_on:
              - elasticsearch
          kibana:
            image: kibana:6.3.0
            container_name: kibana
            restart: always
            networks:
              - elk
            ports:
              - "5601:5601"
            depends_on:
              - elasticsearch
        networks:
          elk:

    以docker-compose运行文件。命令如下:

    docker-compose up -d    #后台启动,如果容器不存在根据镜像自动创建

    docker-compose down -v  #停止容器并删除容器

     

    docker-compose start     #启动容器,容器不存在就无法启动

    docker-compose stop     #停止容器

    docker-compose、python的安装详见: 搭建Harbor私有镜像仓库

    docker network 问题详见: docker 解决network has active endpoints

     

    6、ELK各服务地址说明

    ElasticSearch: http://IP:9200/

    ElasticSearch日志:http://IP:9200/_search?pretty

    Logstash(日志传输地址):  IP:4567、IP:4568

    Kibana: http://IP:5601

    7、Kibana界面汉化

    下载汉化工具并解压:

    wget    https://github.com/anbai-inc/Kibana_Hanization/archive/master.zip

    unzip master.zip

    将解压后文件夹重命名为master。

     

    查看kibana容器ID, docker inspect -f '{{.Id}}' kibana

    通过docker cp命令将本地文件夹复制到容器内部

    docker cp master 容器ID:/

    进入容器内部,docker exec -it kibana /bin/bash

    切换根路径下,进入master目录,执行汉化程序。

    python  main.py  “/opt/kibana/”

    最后重启Kibana容器即可察看到汉化后的界面。

    8、Zipkin链路追踪

        Zipkin启动:
        docker run -p 9411:9411 --restart=always  --name zipkin --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=IP:9200 --env ES_HTTP_LOGGING=BASIC --env RABBIT_URI=amqp://admin:admin@IP:5672 -d openzipkin/zipkin:2
         
        Zipkin-dependencies启动:
         docker run --restart=always  --name zipkin-dependencies --env STORAGE_TYPE=elasticsearch --env ES_HOSTS=IP:9200 --env ES_HTTP_LOGGING=BASIC -d openzipkin/zipkin-dependencies:2
         
        Zipkin管理页面地址:http://IP:9411
    ————————————————
    版权声明:本文为CSDN博主「斌小哥」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_38319645/article/details/86514589

  • 相关阅读:
    mysql免安装使用(win7 64位系统)
    [NOIP2011]瑞士轮
    [NOIP2011]数的划分
    [洛谷2994]超级弹珠
    并查集
    [codevs1073]家族
    快速幂
    [NOI2002]银河英雄传说
    [NOIP2007]矩阵取数游戏
    [洛谷2415]集合求和
  • 原文地址:https://www.cnblogs.com/kofsony/p/11733336.html
Copyright © 2020-2023  润新知