• ubuntu18 docker中部署ELK


    ELK是ElasticSearch、Logstash、Kibana的简称,一般用于日志系统,从日志收集,日志转储,日志展示等入手,用以提供简洁高效的日志处理机制。

     鉴于没有额外的机器,这里就用docker来简单模拟下一个简单ELK系统的部署和使用。

    搭建ElasticSearch

    新建elasticsearch目录,并再其下新建文件config/elasticsearch.yml,文件内容如下:

    network.host: 0.0.0.0
    xpack:
      ml.enabled: false
      monitoring.enabled: false
      security.enabled: false
      watcher.enabled: false

    在ubuntu 主机配置vm.max_map_count参数(永久生效):

    vi /etc/sysctl.conf
    #修改vm.max_map_count = 262144
    sysctl -p

    (一次生效):sysctl -w vm.max_map_count=262144

    2.在elasticsearch 文件夹下执行

    docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.3
    docker run --rm -it -p 9200:9200 -p 9300:9300 -v "$PWD"/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml docker.elastic.co/elasticsearch/elasticsearch:6.4.3

    同时其他配置文件也可以写在config文件下,同时映射进容器中;至此elasticsearch安装完成。

    二、安装Logstash

    新建logstash文件夹,并在其下新建config、pipeline两个文件夹

    其中config文件夹下有文件logstash.yml、pipelines.yml。内容分别为:

    logstash.yml:

    config:
      reload:
        automatic: true
        interval: 3s
    xpack:
      management.enabled: false
      monitoring.enabled: false

    pipelines.yml:

    - pipeline.id: test
      path.config: "/usr/share/logstash/pipeline/logstash-test.conf"

    然后pipeline文件夹下有文件logstash-test.conf,内容为(192.168.100.3 是我ubuntu的主机ip):

    input {
        file {
            path => ["/usr/share/logstash/pipeline/logs/test.log"]
            start_position => "beginning"
        }
    }
     
    filter {
      mutate {
        gsub => ["message", "
    ", ""]
      }
      dissect {
        mapping => {"message" => "%{date} %{+date} [%{task} %{+task}] [%{type}] %{class} - %{info}"}
      }
    }
     
    output {
        elasticsearch { hosts => ["192.168.100.3:9200"] }
        stdout { codec => rubydebug }
    }

    最后在logstash文件夹下运行命令:

    docker pull docker.elastic.co/logstash/logstash:6.4.3
    docker run --rm -it -v "$PWD"/pipeline/:/usr/share/logstash/pipeline/ -v "$PWD"/config/:/usr/share/logstash/config/ docker.elastic.co/logstash/logstash:6.4.3

    在输入中:输入的日志文件使用/usr/share/logstash/pipeline/logs/test.log,只需将日志文件放入pipeline/logs/下,或者手动映射进容器即可。另外输入文件路径支持模糊匹配。

    在过滤器中定义了去掉消息中的换号符号,以及定义了消息格式。这里的消息格式自定义方法参阅:https://www.elastic.co/guide/en/logstash/6.4/filter-plugins.htm

    安装kibana

    新建kibana文件夹,并在其下新建config/kibana.yml文件,内容如下:

    server.host: "0.0.0.0"
    elasticsearch.url: http://192.168.100.3:9200
    xpack:
      apm.ui.enabled: false
      graph.enabled: false
      ml.enabled: false
      monitoring.enabled: false
      reporting.enabled: false
      security.enabled: false
      grokdebugger.enabled: false
      searchprofiler.enabled: false

    最后在kibana文件夹下运行命令:

    docker pull docker.elastic.co/kibana/kibana:6.4.3
    docker run --rm -it -p 5601:5601 -v "$PWD"/config/kibana.yml:/usr/share/kibana/config/kibana.yml docker.elastic.co/kibana/kibana:6.4.3

    运行结果:

    当然安装也可以用 caas/docker-elk 一键搞定

    参考文章 :

    twtrubiks/docker-elk-tutorial

    https://www.cnblogs.com/hackyo/p/9951684.html

    https://www.jianshu.com/p/b81e1b7c0efb

    http://chenzhijun.me/2017/12/27/elk-docker/

    https://blog.csdn.net/Marksinoberg/article/details/87434155

  • 相关阅读:
    atitit.为什么java体系开发效率这样低的原因and解决
    使用11g DNFS建立基于DNFS的tablespace
    MalformedObjectNameException: Invalid character '' in value part of property
    Spring MVC DispatcherServlet绑定多种URL
    chrome与pdf的事情
    JSP获取绝对物理地址
    spring mvc 与 jasper Report集成
    HttpServletRequest和ServletRequest的区别
    aJax请求结果中包含form的问题
    javascript与java编码互转
  • 原文地址:https://www.cnblogs.com/majiang/p/11347490.html
Copyright © 2020-2023  润新知