elk之logstash安装与配置


1.基本概念

ELK:Elasticsearch + Logstash + Kibana 

ELK官网:https://www.elastic.co/

ELK作用:数据采集分析展示一体化

Logstash的角色:数据采集

Elasticsearch的角色:数据存储分析

Kibana的角色:展示


2.安装

(a)logstash运行依赖jre,jre的安装可参考:ubuntu安装jre

(b)下载地址:https://www.elastic.co/,点击右上角downloads

(c)我选择的版本是logstash-2.2.2.tar.gz

(d)解压:tar -xzvf logstash-2.2.2.tar.gz

(e)解压即可用,执行程序在bin目录下面


3.启动参数

(a)启动参数查看 ./logstash -h

(b) -f  :指定配置路径

(c) -t  :测试配置

(d) -l :指定日志路径,否则输出到标准输出

(e)启动举例:

nohup ./logstash -f ../conf/logstach.conf -l ../log/logstash.log &


4.最简单的启动,启动完成后在屏幕输入"hello logstash",输出信息将会在标准输出格式化输出

./logstash -e 'input { stdin { } } output { stdout { codec => rubydebug } }'


5.配置

官方文档:https://www.elastic.co/guide/en/logstash/current/index.html

(a)logstash的配置主要由三块组成input、filter、output

(b)input :数据输入

(c)filter :数据预处理

(d)output :输出控制


6.插件

官方文档:https://www.elastic.co/guide/en/logstash/current/index.html

主要是参考官方文档的input、filter、output插件说明



7.配置举例

(a)需求:有多个路径的日志文件需要采集,需要对日志文件进行不同的解析,然后进行不同的处理,假设日志如下:

1457494295.865 200 GET /djgxZGNkYWJiZmE1MTNmZTE2MjBhNTY1MzlkMjAxYjY4MTIwMDIzMjkw HTTP/1.1 0.347 - 110.82.103.27 [ 09/Mar/2016:11:31:35 +0800 ] 0.347 godmusic.bs2dl.yy.com 758388 127 127.0.0.1:9999

(b)利用grok插件进行解析,grok插件有个模拟地址,http://grokdebug.herokuapp.com/

(c)数据输出到elasticsearch

(d)配置如下:logstash.conf

input { 
  file {
    type => "udaccesslog"
    path => "/data/ud_log/access.log"
  }
  file {
    type => "routeraccesslog"
    path => "/data/router_log/access.log"
  }
}
filter {
  if [type] == "udaccesslog" {
    grok {
      match => { "message" => "%{NUMBER:msec:float} %{NUMBER:status:int} %{WORD:method} %{URIPATHPARAM:request} (HTTP/%{NUMBER:http_version}) %{NUMBER:duration:float} (?:(?:%{URI:referrer}|-)|%{QS:referrer}) %{IP:clientip} (\[ %{HTTPDATE:timestamp} \]) %{NUMBER:upstream_duration:float} %{IPORHOST:domain} %{NUMBER:bytes_sent:int} %{NUMBER:request_length:int} %{IP:upstream_addr}\:%{NUMBER:upstream_port:int}" }
      remove_field => [ "@version", "http_version", "msec", "host" ]
      add_field => { 
        machine => "123.456.789"
        zoneid => "8080"
      }
    }
    mutate {
      convert => {   
        "zoneid" => "integer"
      }
    }
  }
  if [type] == "routeraccesslog" {
    
  }
}
output {
  if [type] == "udaccesslog" {
    elasticsearch { 
      hosts => ["123.456.787:9200", "123.456.788:9200", "123.456.789:9200"] 
      index => "udnginx-%{+YYYY.MM.dd}"
      workers => 2
    }
  }
  if [type] == "routeraccesslog" {
    stdout { codec => rubydebug }
  }
}

(e)配置的一些细节理解

file:默认从文件末尾读取,会记录读取的offset

index:可以理解成数据库database,可以按日期动态生成,这样方便按照日期管理数据

type:可以理解成数据库的table

grok:解析数据插件

mutate:可以改变值的类型的插件

(f)logstash的host不允许修改,所以建议用machine字段代替

(g)需留意logstash的资源使用率


小结:细节很多,主要看官网的配置文档


下一篇:elk之elasticsearch安装与部署


End;


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值