ELK 日志系统部署实践(上)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: ELK 日志系统部署实践

一、search template


搜索模板,search template,高级功能,就可以将我们的一些搜索进行模板

化,然后的话,每次执行这个搜索,就直接调用模板,给传入一些参数就可以了


1 template入门案例


简单定义参数并传递


GET /cars/_search/template 
{ 
"source" : { 
"query" : { 
"match" : { 
"remark" : "{{kw}}" 
} 
}, 
"size" : "{{size}}" 
 }, 
 "params": { 
 "kw" : "大众", 
 "size" : 2 
 } 
 } 


toJson方式传递参数


GET cars/_search/template 
 { 
 "source": "{ \"query\": { \"match\": {{#toJson}}parameter{{/toJson}} }}", 
 "params": { 
 "parameter" : { 
 "remark" : "大众" 
 } 
 } 
 } 


join方式传递参数


GET cars/_search/template
{
  "source": {
    "query": {
      "match": {
        "remark": "{{#join delimiter=' '}}kw{{/join delimiter=' '}}"
      }
    }
  },
  "params": {
    "kw": [
      "大众",
      "标致"
    ]
  }
} 


default value定义:


GET cars/_search/template
{
  "source": {
    "query": {
      "range": {
        "price": {
          "gte": "{{start}}",
          "lte": "{{end}}{{^end}}200000{{/end}}"
        }
      }
    }
  },
  "params": {
    "start": 100000
  }
} 


2 记录template实现重复调用


可以使用Mustache语言作为搜索请求的预处理,它提供了模板,然后通过键值对

来替换模板中的变量。把脚本存储在本地磁盘中,默认的位置为:

elasticsearch\config\scripts,通过引用脚本名称进行使用


2.1 保存template到ES


POST _scripts/test
{
  "script": {
    "lang": "mustache",
    "source": {
      "query": {
        "match": {
          "remark": "{{kw}}"
        }
      }
    }
  }
} 


2.2 调用template执行搜索


GET cars/_search/template 
{ 
"id": "test", 
"params": { 
"kw": "大众" 
} 
} 


2.3 查询已定义的template


GET _scripts/test 


2.4 删除已定义的template


DELETE _scripts/test 


二、suggest search(completion suggest)


suggest search(completion suggest):就是建议搜索或称为搜索建议,也可以叫做自动完成-auto completion。类似百度中的搜索联想提示功能。


ES实现suggest的时候,性能非常高,其构建的不是倒排索引,也不是正排索引,就是纯的用于进行前缀搜索的一种特殊的数据结构,而且会全部放在内存中,所以suggest search进行的前缀搜索提示,性能是非常高。


需要使用suggest的时候,必须在定义index时,为其mapping指定开启suggest。具体如下:


PUT /movie
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "ik_max_word",
        "fields": {
          "suggest": {
            "type": "completion",
            "analyzer": "ik_max_word"
          }
        }
      },
      "content": {
        "type": "text",
        "analyzer": "ik_max_word"
      }
    }
  }
} 
 PUT /movie/_doc/1 
 { 
 "title": "西游记电影系列", 
 "content": "西游记之月光宝盒将与2021年进行......" 
 } 
 PUT /movie/_doc/2 
 { 
 "title": "西游记文学系列", 
 "content": "某知名网络小说作家已经完成了大话西游同名小说的出版" 
 } 
 PUT /movie/_doc/3 
 { 
 "title": "西游记之大话西游手游", 
 "content": "网易游戏近日出品了大话西游经典IP的手游,正在火爆内测中" 
 } 


suggest 搜索:


GET /movie/_search
{
  "suggest": {
    "my‐suggest": {
      "prefix": "西游记",
      "completion": {
        "field": "title.suggest"
      }
    }
  }
} 


三、geo point - 地理位置搜索和聚合分析


ES支持地理位置的搜索和聚合分析,可实现在指定区域内搜索数据、搜索指定地点附近的数据、聚合分析指定地点附近的数据等操作。


ES中如果使用地理位置搜索的话,必须提供一个特殊的字段类型。GEO - geo_point。地理位置的坐标点。


1、定义geo point mapping


如果需要使用地址坐标,则需要定义一个指定的mapping类型。具体如下:

使用什么数据可以确定,地球上的一个具体的点?经纬度。


PUT /hotel_app
{
  "mappings": {
    "properties": {
      "pin": {
        "type": "geo_point"
      },
      "name": {
        "type": "text",
        "analyzer": "ik_max_word"
      }
    }
  }
} 


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
3月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
23天前
|
存储 监控 安全
|
4月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志
|
4月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
4月前
|
存储 数据可视化 Linux
在Linux中,如何使用ELK进行日志管理和分析?
在Linux中,如何使用ELK进行日志管理和分析?
|
4月前
|
数据可视化 Java API
如何在项目中快速引入Logback日志并搭配ELK使用
如何在项目中快速引入Logback日志并搭配ELK使用
|
4月前
|
存储 监控 Ubuntu
一键搞定:用脚本轻松部署ELK,让日志分析变得简单又高效
【8月更文挑战第13天】ELK栈由Elasticsearch、Logstash和Kibana组成,用于日志存储、解析及展示,是大数据领域广泛采用的日志解决方案。鉴于其安装配置复杂,本文提供了一个适用于Ubuntu 16.04的ELK自动安装Shell脚本示例。脚本首先确保Java环境安装,接着添加Elastic.co的APT仓库并安装ELK组件,最后启动所有服务。通过自动化流程,简化部署工作,减少人为错误,提升效率。实际应用中还需根据具体需求调整配置和服务设置。
63 0
|
7月前
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
1446 0
|
7月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
7月前
|
消息中间件 数据可视化 关系型数据库
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
199 0
下一篇
无影云桌面