首页 > 其他分享 >ELK logstash 结构

ELK logstash 结构

时间:2023-06-11 18:36:00浏览次数:35  
标签:ELK 插件 ttlsa filter output input logstash 结构

在命令行中指定-e参数,从标准输入到标准输出,并格式化结果。


# /opt/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
www.ttlsa.com
Settings: Default filter workers: 2
Logstash startup completed
{
       "message" => "www.ttlsa.com",
      "@version" => "1",
    "@timestamp" => "2015-12-07T06:57:01.981Z",
          "host" => "localhost"
}

logstash会给事件添加一些额外的信息,如@timestamp,标注事件发生的时间。host标注事件发生的主机。此外,还可能有下面几个信息:


type:标记事件的唯一类型


tags:标记事件某方面属性,可以有多个标签。


每个事件就是一个ruby对象,可以随意的给事件添加或者删除字段。每个logstash过滤插件,都会有四个方法add_tag,remove_tag,add_field, remove_field,它们在过滤匹配成功时生效。


logstash管道必须要有input和output元素,filter元素是可选的。input插件定义数据来源,filter插件用来修改用户指定的数据,output插件定义数据写入何地。


logstash结构如下所示:




下面是一个配置管道:


# The # character at the beginning of a line indicates a comment. Use
# comments to describe your configuration.
input {
}
# The filter part of this file is commented out to indicate that it is
# optional.
# filter {
#
# }
output {
}

在现实情况下,数据来源可能有多个,以及将数据写入到不同的目的地。logstash管道可以使用多个input和output来处理这些需求。


下面的例子从Twitter feed和Filebeat input,将信息发送到elasticsearch集群和直接写入到文件。


input {
    twitter {
        consumer_key =>
        consumer_secret =>
        keywords =>
        oauth_token =>
        oauth_token_secret =>
    }
    beats {
        port => "5043"
        ssl => true
        ssl_certificate => "/path/to/ssl-cert"
        ssl_key => "/path/to/ssl-key"
    }
}
output {
    elasticsearch {
        hosts => ["IP Address 1:port1", "IP Address 2:port2", "IP Address 3"]
    }
    file {
        path => /path/to/target/file
    }
}

Filebeat debug信息:



# filebeat -d 'publish' -e
2015/12/07 07:46:12.170451 publish.go:100: DBG  Publish: {
  "@timestamp": "2015-12-07T07:46:09.670Z",
  "beat": {
    "hostname": "elk.ttlsa.com",
    "name": "elk.ttlsa.com"
  },
  "count": 1,
  "fields": null,
  "input_type": "log",
  "message": "218.28.24.98 - - [07/Dec/2015:15:46:07 +0800] \"POST /www.ttlsa.com HTTP/1.0\" 200 0.139 0.141 3890 \"-\" \"Apache-HttpClient/UNAVAILABLE (java 1.4)\" \"\" \"\" http 127.0.0.1:9000",
  "offset": 12145391,
  "source": "/data/logs/nginx/www.ttlsa.com-access.log",
  "type": "nginx"
}

停止logstash服务的失效检测


正常关闭logstash服务的步骤如下:


关闭所有的input、filter和output插件

处理完正在处理的事件

中止logstash进程

下列因素影响关闭过程:


input插件缓慢的接收数据

缓慢的filter

output插件断开连接等待重连

这些情况使成功关闭logstash的服务不可预知。


logstash具有分析管道行为和插件停止的失效检测机制。这种机制周期性的产生有关内部事件队列和一系列繁忙工作线程的信息。


为了强制logstash停止,可以在启动时加上--allow-unsafe-shutdown参数。不过不推荐使用,以免丢失数据。




标签:ELK,插件,ttlsa,filter,output,input,logstash,结构
From: https://blog.51cto.com/u_6186189/6458474

相关文章

  • ELK beats
       ps:越来越强大了   beats是一个代理,将不同类型的数据发送到elasticsearch。beats可以直接将数据发送到elasticsearch,也可以通过logstash将数据发送elasticsearch。beats有三个典型的例子:Filebeat、Topbeat、Packetbeat。Filebeat用来收集日志,Topbeat用来收集系统基础......
  • 【数据结构】查找
    基本概念查找表 由同一类型的数据元素(记录)构成的集合。所谓集合指记录间不存在前驱后继关系,因此查找表是一种应用灵便的结构。静态查找表 只对查找表做查找操作,即只查询某个记录是否在表中,或只检索某个记录的各种属性。或者说:查找表加上不会使该表的内容发生变化的查找操作,称作......
  • ELK logstash 配置语法
    数据类型logstash支持的数据类型有:array数组可以是单个或者多个字符串值。path=>["/var/log/messages","/var/log/*.log"]path=>"/data/mysql/mysql.log"如果指定了多次,追加数组。此实例path数组包含三个字符串元素。boolean布尔值必须是TRUE或者false。true和false不能有引......
  • Redis学习笔记4-脚本、持久化和集群 Redis学习笔记1-基础命令及数据结构: http://blog.
        Redis学习笔记4-脚本、持久化和集群Redis学习笔记1-基础命令及数据结构:http://blog.guoyb.com/2016/07/21/learn-redis-basic-commands/Redis学习笔记2-事务与过期时间:http://blog.guoyb.com/2016/08/23/learn-redis-adv/Redis学习笔记3-排序与消息通知:http://blog......
  • STL之Stack与queue的模拟实现与duque的底层结构(3千字长文详解)
    STL之Stack与queue的模拟实现与duque的底层结构设计模式的概念设计模式像是古代的兵法,是以前的人总结出来的一些在特定的情况下,某种特定的好用的方法总结STL中迭代器也是一种设计模式——==迭代器模式==STL中stack和queue的实现就是使用了一种设计模式——==适配器模式!==适......
  • Linux平台下的ELF文件结构探索
    本文以目标文件的结构为引子,通过探索在Linux环境下,一个具体的目标文件的结构来窥探ELF文件的结构。了解ELF文件的结构,对于加深对链接的理解、认识操作系统背后机理都有很大好处。编译和链接在正式讨论目标文件的结构之前,需要先对一个C/C++程序从源代码到可执行程序的构建过程有所了......
  • 关于模板字面量,我有点好奇它的内部结构
    前言最近翻看源码的时候,发现一些有趣的JS的知识点,基于日常的开发经验,我做了一些联想和对比。整个过程充满了乐趣。于是我想,是不是可以延续这种创意带来的学习的乐趣。带的富含创造力夜晚的buff,确实让我拥有了不错的灵感。这些灵感像繁星一样闪耀着我的夜里,留下一行文字:关于模版......
  • Cassandra 的数据存储结构——本质是SortedMap<RowKey, SortedMap<ColumnKey, ColumnV
    Cassandra的数据存储结构Cassandra的数据模型是基于列族(ColumnFamily)的四维或五维模型。它借鉴了Amazon的Dynamo和Google'sBigTable的数据结构和功能特点,采用Memtable和SSTable的方式进行存储。在Cassandra写入数据之前,需要先记录日志(CommitLog),然后数据开始写......
  • NoSQL生态系统——类似Bigtable列存储,或者Dynamo的key存储(kv存储如BDB,结构化存储如red
    摘自:http://www.ituring.com.cn/article/4002#NoSQL系统的数据操作接口应该是非SQL类型的。但在NoSQL社区,NoSQL被赋予了更具有包容性的含义,其意为NotOnlySQL,即NoSQL提供了一种与传统关系型数据库不太一样的存储模式,这为开发者提供了在关系型数据库之外的另一种选择。在关联型的数......
  • 固定导航结构
          ......