前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >初识ELK(ElasticSearch-LogStash-Kibana)

初识ELK(ElasticSearch-LogStash-Kibana)

作者头像
爬蜥
发布2019-07-09 19:47:47
4540
发布2019-07-09 19:47:47
举报

ElasticSearch-基本概念

  • 词项: 所有文档中出现的不重复个体
  • 分片: 底层工作单元,保存全部数据中的一部分,能搜索任意一个节点上的资源(文档会被存储和索引到分片内)。分为主分片和副本分片,索引内的任意一个文档都归属于主分片,副本分片是主分片的拷贝,提供读服务,副本分片和主分片不会被分到同一个节点
  • Document: 根对象,能被indexed的基本信息单元,用JSON表示,ID唯一,不可修改,只能替换
  • 文档元数据
    1. _Index 索引。相似document的集合,标明文档存放的位置
    2. _type 数据子分区。同一索引下的数据逻辑分区,一个索引可以有多个类型
    3. _id 与 _index,_type一起唯一确定一个文档
    4. _version 保证相互冲突的变更不会导致数据丢失。ES使用乐观并发控制,默认不阻塞并发请求,如果请求版本号不对,返回错误状态码
  • Shards: 索引被切分存储的片段
  • Replication: 索引shards的拷贝
  • _score:正浮点数,表示相关性,评分越高,相关性越高
  • 倒排索引:文档中所有不重复词的列表构成,其中每个词有一个包含它的文档列表,只能搜索到索引中存在的词条

LogStash

./bin/logstash -f conf/test.conf 启动方式

  • [] 字段引用,将字段名放到里面即可。 例如: 获取精度 [geoip][location][0]
  • a => true 数据类型,前面代表数据的字段名,后面是值,当前为bool
  • stdin 中 type用来标记事件类型,tags由具体插件添加、删除
  • start_position: logstash读取文件的初始位置,默认使用结束位置

grok表达式语法

  1. 完整语法: %{PATTERN_NAME:capture_name:data_type}
  2. 写表达式如果没有完全匹配那么会匹配失败
  3. 一样的字符串直接写对应字符即可,希望解析的用%{}包裹
  4. (?\w+) 表示匹配 单词 一次或多次并将结果存储在 param1里面
  5. pattern_dir 指定grok表达式存储的位置,match直接引用
  6. 正则写到想要匹配的位置即可

Kibana查询

kibana框中的查询可以使用LUCENE查询语法或者是ES的查询语句

Field

查询指定的字段否则使用默认字段

比如 index包含两个字段 title , text ;text是默认字段

title:”hello world” AND text:to 和 title:”hello world” AND to 等效

title: hello world 查询的则是 title为hello的字段 text为world的字段

wildcard

te?t 匹配 text test ;表示任意一个字符

test* 匹配 test tests tester;表示0到多个字符

?和 * 不能用在第一个位置

Fuzzy

roam~ 匹配 foam和roams 基于 Levenshtein Distance,波浪线添加在末尾。从1.9版本开始可以追加数字代表相似度,越接近1相似度越高,比如 roam~0.8,默认是0.5

Proximity

“jakarta apache”~10 匹配从jakarta到apache中间隔10个单词

Range

mode_date:[20020101 TO 20030101] 匹配时间在20020101到20030101之间,包括20020101和20030101

title:{Aida TO Carmen} 匹配Aida 到 Carmen之间,不包括Aida和Carmen

“[”表示包含 “{”表示不包含

AND(+) OR NOT(-)

关键字要大写

(jakarta OR apache) AND website 组合查询 包含 website 和 jakarta/apache

逃逸字符

\(1\+1\)\:2

使用ES查询语法

将ES命令中的 -d 后面的参数加入即可;比如curl查询为

代码语言:javascript
复制
 curl -XGET 'localhost:9200/_search?format=yaml' -d '
{ "query":{"term":{"addre":"beijing"}}}'
复制代码

命令行下输入为:{ "query":{"term":{"addre":"beijing"}}}

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月31日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ElasticSearch-基本概念
  • LogStash
    • grok表达式语法
    • Kibana查询
      • Field
        • wildcard
          • Fuzzy
            • Proximity
              • Range
                • AND(+) OR NOT(-)
                  • 逃逸字符
                    • 使用ES查询语法
                    相关产品与服务
                    对象存储
                    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档