zoukankan      html  css  js  c++  java
  • elasticsearch logstash kibana 研究第一篇

    本文是目前最流行的elk的研究第一篇

    一、安装

    1. 首先安装jdk8

    2. 下载elasticsearch 和 logstash 注意版本,下载最新的

    3. 配置elasticsearch,进入conf目录

    修改node,网络等信息

    安装插件:

    bin/plugin -install lmenezes/elasticsearch-kopf

    4. 使用logstash测试

    bin/logstash -e 'input { stdin { } } output { elasticsearch_http { host => “10.10.1.12” } }’  

    此时访问:

    curl 'http://localhost:9200/_search?pretty'

    此时可以看到输入的数据

    访问elas的插件

    http://localhost:9200/_plugin/kopf/ 

    可以看到图形化数据

    5. 配置kibana

    elasticsearch_url: " http://10.10.1.11:9200"   url一定要写正确

    然后就启动kibana,简单配置即可试用

    二、 logstash

    1. grok

    filter中grok是最常用的工具了

    参考:https://github.com/chenryn/logstash-best-practice-cn/blob/master/filter/grok.md 

    1.1  匹配单行

    filter {

      grok { match =>

        {“message”=>"(?<level>(w+)?) (?<request_time>d+(?:.d+)?) (?<test>(w+)?)”}

    具体正则为:

    (?<level>(w+)?) (?<request_time>d+(?:.d+)?) (?<test>(w+)?)

    logstash的正则和perl是一样的

    w 是匹配一个字符,+代表匹配前面一次或多次  ?代表匹配前面一次或0次

    前面的?<level>是自定义的,可以任意写,后面的就不多解释了

    运行效果如下: 

    {

      "level": [

        [

          "abc"

        ]

      ],

      "request_time": [

        [

          "1.1"

        ]

      ],

      "test": [

        [

          "ed"

        ]

      ]

    }

    以上效果是使用grok 在线网站测试的:http://grokdebug.herokuapp.com/

    1.2 匹配多行

    filter {

      grok { match =>

        ["message" , "(?<level>(w+)?) (?<request_time>d+(?:.d+)?) (?<test>(w+)?)",

         "message" , "(?<level>(w+)?) (?<request_time>(w+)?) (?<test>(w+)?)"]

           }

    }

    匹配多行的格式如上;

    当第一个message语句匹配不上的时候,会自动使用第二个message进行匹配

  • 相关阅读:
    vue中handsontable 使用
    vue项目在APP禁止页面缩放
    SuperAgent使用文档
    echart 图表自定义样式
    vue router-link子级返回父级页面
    浏览器的多线程
    gzip压缩
    清除浮动的方法
    vue-router的hash和history模式的区别
    Docker镜像+nginx 部署 vue 项目
  • 原文地址:https://www.cnblogs.com/luyg24/p/4542820.html
Copyright © 2011-2022 走看看