zoukankan      html  css  js  c++  java
  • ELK-logstash基本用法

    一:logstash介绍
    Logstash在elk系统中为数据存储,报表查询和日志解析创建了一个功能强大的管道链。Logstash提供了多种多样的 input,filters,codecs和output组件,logstash由以下三部分组成
     
    input数据输入端,可以接收来自任何地方的源数据
    1:file:从文件中读取
    2:syslog:监听在514端口的系统日志信息,并解析成RFC3164格式
    3:redis:从redis-server list 中获取
    4:beat:接收来自Filebeat的事件
     
    filter数据中转层,主要进行格式处理,数据类型转换、数据过滤、字段添加,修改等,主要用做过滤
    1:grok: 通过正则解析和结构化任何文本。Grok 目前是logstash最好的方式对非结构化日志数据解析成结构化和可查询化。logstash内置了120个匹配模式,满足大部分需求。
    2:mutate: 在事件字段执行一般的转换。可以重命名、删除、替换和修改事件字段。
    3:drop: 完全丢弃事件,如debug事件。
    4:clone: 复制事件,可能添加或者删除字段。
    5:geoip: 添加有关IP地址地理位置信息。
     
    output是logstash工作的最后一个阶段,负责将数据输出到指定位置,兼容大多数应用
    1:elasticsearch: 发送事件数据到 Elasticsearch,便于查询,分析,绘图。
    2:file: 将事件数据写入到磁盘文件上。
    3:mongodb:将事件数据发送至高性能NoSQL mongodb,便于永久存储,查询,分析,大数据分片。
    4:redis:将数据发送至redis-server,常用于中间层暂时缓存。
    5:graphite: 发送事件数据到graphite
    6:statsd: 发送事件数据到 statsd。
     
    二:logstash启动方式
    logstash分别由-e和-f两种启动方式
    -e:用来快速测试不用修改配置文件,一般用来调试!
    -f :指定配置文件启动,需要把基本配置写入文件中启动,这里比较内容比较复杂,涉及到如何采集、过滤以及输出
     
    1:下面进行-e启动方式演示
    [root@localhost ~]# logstash -e  "input {stdin {} } output {stdout {}  }"
    hell ghs     //输入字符信息
     
    Sending Logstash's logs to /usr/local/elk/logstash/logs which is now configured via log4j2.properties
    The stdin plugin is now waiting for input:
    [2017-11-24T19:15:06,655][INFO ][logstash.agent           ] Pipelines running {:count=>1, :pipelines=>["main"]}
    2017-11-24T11:15:06.704Z localhost.localdomain hell ghs     //这里显示的上面输入的字符串
     
    ##stdin {} :表示标准输入,stdout {} :表示标准输出
     
    2:-f 配置文件启动方式
    编辑一个配置文件,指定输入输出
    [root@localhost ~]# vim ceshi.conf
    input {
       stdin {}
     }
    output{
        stdout {
            codec => rubydebug {}
    }
    }
     
    ## codec
     
    执行配置文件
    [root@localhost ~]# logstash -f test.conf
    hell ghs          //输入字符串
    {
          "@version" => "1",
              "host" => "localhost.localdomain",
        "@timestamp" => 2017-11-24T12:16:43.086Z,
           "message" => "hell ghs"
    }
     
     
    1:编写一个过滤系统日志的配置文件
    [root@localhost ~]# vim messages.conf
    input {
         file{
            path => "/var/log/messages"
            type => "syslog"
          }
     }
    output {
        stdout { codec => rubydebug }
    }
    ##path指定的是过滤日志的文件路径,type指定类型,自定义,主要做区分!
     
    2:执行文件,显示过滤的日志结果
    [root@localhost ~]# logstash -f messages.conf
    {
          "@version" => "1",
              "host" => "localhost.localdomain",
              "path" => "/var/log/messages",
        "@timestamp" => 2017-11-24T11:01:02.189Z,
           "message" => "Nov 24 19:01:01 localhost systemd: Starting Session 11 of user root.",
              "type" => "syslog"
    }
     
    三:输出到elasticsearch,在kibana形成WEB图形方式
    1:编写一个配置文件,让日志输出到elasticsearch通过kibana生成WEB图形!
    [root@localhost ~]# vim  test.conf    ##配置文件名字自定义
    input {
     file {
           path => "/var/log/messages"     //定义日志文件路径
           type => "test"                             //定义日志类型
           stat_interval => 1
           start_position => "beginning"
    }
    }
     
    output{
         elasticsearch {
            hosts => ["192.168.1.200:9200"]       //定义需要输出到elasticsearch的ip和端口
            index => "test-%{+YYYY.MM.dd}"    //定义索引的名字,名字为test
    }
    }
     
    2:执行配置文件
    [root@localhost ~]# logstash -f test.conf -d
    执行之后,在kibana的WEB页面Index pattern添加索引的名称,就可以Discover会形成以下日志输出的信息

  • 相关阅读:
    wpf 控件回车事件中调用tab实现方法
    C#中M的N次方显示
    新概念英语第三册单词
    新概念英语第二册单词
    手把手教你搭建一个vue项目
    Vuex里的module选项和移动端布局
    Vuex与axios的封装和调用
    Vue路由
    Vue脚手架的搭建和路由配置
    Vue全家桶之一Vue(基础知识篇)
  • 原文地址:https://www.cnblogs.com/douyi/p/11573866.html
Copyright © 2011-2022 走看看