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

Docker 运行ELK日志监测系统,汉化Kibana界面的更多相关文章

  1. ELK 6安装配置 nginx日志收集 kabana汉化

    #ELK 6安装配置 nginx日志收集 kabana汉化 #环境 centos 7.4 ,ELK 6 ,单节点 #服务端 Logstash 收集,过滤 Elasticsearch 存储,索引日志 K ...

  2. Docker笔记(十):使用Docker来搭建一套ELK日志分析系统

    一段时间没关注ELK(elasticsearch —— 搜索引擎,可用于存储.索引日志, logstash —— 可用于日志传输.转换,kibana —— WebUI,将日志可视化),发现最新版已到7 ...

  3. ELK日志分析系统-Logstack

    ELK日志分析系统 作者:Danbo 2016-*-* 本文是学习笔记,参考ELK Stack中文指南,链接:https://www.gitbook.com/book/chenryn/kibana-g ...

  4. ELK 日志分析系统的部署

    一.ELK简介 ElasticSearch介绍Elasticsearch是一个基于Lucene的搜索服务器. 它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口. Elasti ...

  5. ELK日志分析系统简单部署

    1.传统日志分析系统: 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安 ...

  6. 《ElasticSearch6.x实战教程》之实战ELK日志分析系统、多数据源同步

    第十章-实战:ELK日志分析系统 ElasticSearch.Logstash.Kibana简称ELK系统,主要用于日志的收集与分析. 一个完整的大型分布式系统,会有很多与业务不相关的系统,其中日志系 ...

  7. Rsyslog+ELK日志分析系统

    转自:https://www.cnblogs.com/itworks/p/7272740.html Rsyslog+ELK日志分析系统搭建总结1.0(测试环境) 因为工作需求,最近在搭建日志分析系统, ...

  8. 十分钟搭建和使用ELK日志分析系统

    前言 为满足研发可视化查看测试环境日志的目的,准备采用EK+filebeat实现日志可视化(ElasticSearch+Kibana+Filebeat).题目为“十分钟搭建和使用ELK日志分析系统”听 ...

  9. elk 日志分析系统Logstash+ElasticSearch+Kibana4

    elk 日志分析系统 Logstash+ElasticSearch+Kibana4 logstash 管理日志和事件的工具 ElasticSearch 搜索 Kibana4 功能强大的数据显示clie ...

随机推荐

  1. 【C/C++开发】【VS开发】win32位与x64位下各类型长度对比

    64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂):可以访问大型数据库.本文介绍的是64位下C语言开发程序注意事项. 1. 32 位和 64 ...

  2. day16 模块导入及环境变量

    """ 今日内容: 1.模块 2.模块的导入 3.环境变量sys.path 4.模块间的相互调用 """ """ ...

  3. vim 常用基本

    vim 基本操作 0. 基本操作 :w // 保存当前文件 :q // 退出vim :wq // 保存退出 :w! // 强制保存当前文件 :q! // 强制退出(可以忽略修改) :!cmd // 执 ...

  4. 安装laravel框架

    方式一:Windows版本通过composer来下载安装laravel框架 一:laravel是php的一个web框架.laravel框架安装主要依赖composer工具,本经验就介绍一下怎么在win ...

  5. Codeforces 1238G. Adilbek and the Watering System

    传送门 最关键的想法就是每个位置一定用的是当前能用的最便宜的水,因为到后面可能有更便宜的 然后其他还没用上的水我们也留着,假装此时已经买了,但是如果发现后面有更优的再反悔也不迟 每相邻两个朋友之间我们 ...

  6. Spring实战(十一) 在Spring XML中配置AOP

    如果你没有源码,不能为通知类添加注解,又不想将AspectJ注解放入到你的代码中,必须选择XML配置了. 1.Spring XML配置文件 解析参考:http://www.cnblogs.com/bi ...

  7. STL-set 容器以及迭代器的简单理解

    先说下set的基本操作和时间复杂度 begin()     ,返回set容器的第一个元素 end() ,返回set容器的最后一个元素 clear()        ,删除set容器中的所有的元素 em ...

  8. java——多线程知识点大总结

    1:理解线程的概念之前,我们有必要先理解一下进程的概念 程序(Program)是为实现特定目标或解决特定问题而用计算机语言(比如Java语言)编写的命令序列的集合. 进程指一个程序的一次执行过程   ...

  9. sda.Update批量更新数据

    老方法了,重新做个记录. string connStr = ConfigurationManager.ConnectionStrings["constring"].ToString ...

  10. SpringBoot整合Mybatis关于分页查询的方法

    最近公司在用到SpringBoot整合Mybatis时当web端页面数据增多时需要使用分页查询以方便来展示数据.本人对分页查询进行了一些步骤的总结,希望能够帮助到有需要的博友.如有更好的方式,也希望评 ...