zoukankan      html  css  js  c++  java
  • ELK简单使用

    原作者:http://www.cnblogs.com/snidget/p/6269383.html
    ELK
    ELK是什么?
    Elasticsearch
    LogStash
    Kibana
     
     
    1,简单的安装
    我采用的是本地window环境;
    下载的包如下:
     
    首先安装的是jdk8,安装完成之后,设置路径,
     
    增加一个系统变量 JAVA_HOME 值为安装的jdk目录;
    编辑系统变量 PATH 在值的末尾添加 ;%JAVA_HOME%/bin
     
    打开命令行窗口,输入 java -version; 看看是否安装成功;
     
    输入输出的版本号是1.8开头的,则jdk8环境安装完成;
     
    elk的最新版本都是依赖的jdk1.8
     
     
    然后安装的是elasticResearch;
    直接解压到某个目录
     
     
    elasticSearch 是一个分布式的,支持REST风格的搜索和分析工具。
     
     
    这次什么配置都不用更改,使用它的默认配置,
    打开命令行窗口,把bin目录下的 elasticsearch.bat 拖拽到命令行窗口,即可启动;
     
    从命令行输出可以看到,已经成功的启动了,开启了两个端口 9200,9300
    9200是 httpserver,可以通过浏览器直接访问到。
    9300是 TransportService, clusterService ,是交换服务和集群服务,集群节点编号0;
     
    可以看到这个 elasticSearch的集群信息;
     
    先不去详细研究,把基础环境搭建起来再看。
    接下来,安装kibana;
     
    这是一个把数据边的可视化,并且提供一个导航查询的工具。看里面的文档结构,基于nodejs写得;
    配置kibana;英文注释写的很清楚;
    打开命令行窗口,把bin下面的 kibana.bat 的拽到命令行窗口下,即可运行kibana;并且链接上了elastic;
    打开 127.0.0.1:5601之后会要先配置索引,选择默认的即可;
    然后即可查询;
     
    最后安装的是logstash
    这是一个日志收集工具, 分成四步,收集,过滤,转换,输出;
     
    首先需要配置好 logstash
    input { stdin { } }
     
    filter {
    grok {
    match => { "message" => "%{COMBINEDAPACHELOG}" }
    }
    date {
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
    }
    }
     
    output {
    elasticsearch { hosts => ["localhost:9200"] }
    stdout { codec => rubydebug }
    }
     
     
    主要配置了一个message的格式,和时间戳的格式;
     
    使用脚本启动 D:logstash-5.1.1inlogstash.bat -f D:logstash-5.1.1configl
    ogstash.conf
     
    即可把在命令行中输入的数据,传输到 elasticSearch ;
     
    然后在kibana中展示出来;
     
     
    最后一个简单的应用,把tomcat的异常日志和错误日志使用logstash,传输到 elasticSearch
     
    配置文件:
    input { 
    file { 
    path => "D:/tomcat/apache-tomcat-7.0.62/logs/localhost_access_log*.txt" 
    type => "apache_access_log"
    add_field => {"tomcatip" => "172.27.42.22"}

    }

    filter{
    if [type] == "apache_access_log" {
    grok{
    match => { "message" => "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} [%{HTTPDATE:timestamp}] "(?:%{WORD:verb} %{URIPATHPARAM:request}(?: HTTP/%{NUMBER:httpversion})?|-)" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{NUMBER:responsetime} "(?:%{URI:referrer}|-)" %{QS:agent}" }
    }
    date{
    match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
    target => ["writetime"]
    }
    mutate {
    convert => { 
    "response" => "integer" 
    "bytes" => "integer" 
    "responsetime" => "integer" 
    }
    }
    }
    }

    output {
    if [type] == "apache_access_log" {
    elasticsearch {
    hosts => "127.0.0.1:9200"
    index => "logstash-apacheaccesslog-%{+YYYY.MM.dd}"
    }
    }
    }
    然后在kibana中可以看到tomcat的访问日志数据,并可以对它的访问情况定制仪表盘,得到BI报表;
     
    直接使用filebeat抓取tomcat的日志
    修改配置文件:
     
     
    使用命令启动:
    然后可以在kibana中查找到收集过来的数据;
  • 相关阅读:
    什么是布局?Android中的布局是怎样的?
    如何优化UI布局?
    Android SDK提供的常用控件Widget “常用控件”“Android原生”
    Android中Adapter类的使用 “Adapter”
    Android自定义属性
    Android中View的绘制流程(专题讲解)
    Android的自定义View及View的绘制流程
    如何创建新控件? “复合控件”“定制控件”
    Android应用程序支持不同屏幕(尺寸、密度)
    支持不同Android设备,包括:不同尺寸屏幕、不同屏幕密度、不同系统设置
  • 原文地址:https://www.cnblogs.com/xingzc/p/6390170.html
Copyright © 2011-2022 走看看