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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: ELK 日志系统部署实践

2、录入数据


新增一个基于geo point类型的数据,可以使用多种方式。


**多种类型描述geo_point类型字段的时候,在搜索数据的时候,显示的格式 **和录入的格式是统一的。不影响搜索。任何数据描述的geo_point类型字段,都适用地理位置搜索。


数据范围要求:纬度范围是-9090之间,经度范围是-180180之间。经纬度数据都是浮点数或数字串(数字组成的字符串),最大精度:小数点后7位。(常

用小数点后6位即可。)


基于对象:latitude:纬度、longitude:经度。语义清晰,建议使用。


PUT /hotel_app/_doc/1 
 { 
 "name": "七天连锁酒店", 
 "pin" : { 
 "lat" : 40.12, 
 "lon" : -71.34 
 } 
 }


基于字符串:依次定义纬度、经度。不推荐使用


PUT /hotel_app/_doc/2 
{ 
"name": "维多利亚大酒店", 
"pin" : "40.99, ‐70.81" 
} 


基于数组:依次定义经度、纬度。不推荐使用


PUT /hotel_app/_doc/3 
 { 
 "name": " 红树林宾馆", 
 "pin" : [40, ‐73.81] 
 } 


3、搜索指定区域范围内的数据


总结:


矩形范围搜索:传入的top_left和bottom_right坐标点是有固定要求的。地图中以北作为top,南作为bottom,西作为left,东作为right。也就是top_left 应该从西北向东南。Bottom_right应该从东南向西北。Top_left的纬度应该大于bottom_right的纬度,top_left的经度应该小于bottom_right的经度。多边形范围搜索:对传入的若干点的坐标顺序没有任何的要求。只要传入若干地理位置坐标点,即可形成多边形。


搜索矩形范围内的数据


GET /hotel_app/_doc/_search 
{ 
"query": { 
"bool": { 
"must": [ 
{ 
"match_all": {} 
} 
], 
 "filter": { 
 "geo_bounding_box": { 
 "pin": { 
 "top_left" : { 
 "lat" : 41.73, 
 "lon" : ‐74.1 
 }, 
 "bottom_right" : { 
 "lat" : 40.01, 
 "lon" : ‐70.12 
 } 
 } 
 } 
 } 
 } 
 } 
 } 
 GET /hotel_app/_doc/_search 
 { 
 "query": { 
 "constant_score": { 
 "filter": { 
 "geo_bounding_box": { 
 "pin": { 
 "top_left": { 
 "lat": ‐70,
 "lon": 39 
 }, 
 "bottom_right": { 
 "lat": ‐75, 
 "lon": 41 
 } 
 } 
 } 
 } 
 } 
 } 
 } 


搜索多边形范围内的数据


GET /hotel_app/_doc/_search 
{ 
"query": { 
"bool": { 
"must": [ 
{ 
"match_all": {} 
} 
], 
 "filter": { 
 "geo_polygon": { 
 "pin": { 
 "points": [ 
 {"lat" : 40.73, "lon" : ‐74.1}, 
 {"lat" : 40.01, "lon" : ‐71.12}, 
 {"lat" : 50.56, "lon" : ‐90.58} 
 ] 
 } 
 } 
 } 
 } 
 } 
 } 


4、搜索某地点附近的数据


这个搜索在项目中更加常用。类似附近搜索功能。


Distance距离的单位,常用的有米(m)和千米(km)。


建议使用filter来过滤geo_point数据。因为geo_point数据相关度评分计算比较耗时。使用query来搜索geo_point数据效率相对会慢一些。建议使用filter。


GET /hotel_app/_doc/_search 
{ 
"query": { 
"bool": { 
"must": [ 
{ 
"match_all": {} 
} 
], 
 "filter": { 
 "geo_distance": { 
 "distance": "200km", 
 "pin": { 
 "lat": 40, 
 "lon": ‐70 
 } 
 } 
 } 
 } 
 } 
 } 
 GET hotel_app/_search 
 { 
 "query": { 
 "geo_distance" : { 
 "distance" : "90km", 
 "pin" : { 
 "lat" : 40.55, 
 "lon" : ‐71.12 
 } 
 } 
 } 
 }


5、统计某位置附近区域内的数据


聚合统计分别距离某位置80英里,300英里,1000英里范围内的数据数量。


其中unit是距离单位,常用单位有:米(m),千米(km),英里(mi)

distance_type是统计算法:sloppy_arc默认算法、arc最高精度、plane最高效率


GET /hotel_app/_doc/_search 
{ 
"size": 0, 
"aggs": { 
"agg_by_pin" : { 
"geo_distance": { 
"distance_type": "arc", 
"field": "pin", 
"origin": { 
 "lat": 40, 
 "lon": ‐70 
 }, 
 "unit": "mi", 
 "ranges": [ 
 { 
 "to": 80 
 }, 
 { 
 "from": 80, 
 "to": 300 
 }, 
 { 
 "from": 300, 
 "to": 1000 
 } 
 ] 
 } 
 } 
 } 
 } 


四、BeatsBeats


是一个开放源代码的数据发送器。我们可以把Beats作为一种代理安装在我们的服务器上,这样就可以比较方便地将数据发送到Elasticsearch或者Logstash中。Elastic Stack提供了多种类型的Beats组件。


审计数据 AuditBeat


日志文件 FileBeat


云数据 FunctionBeat


可用性数据 HeartBeat


系统日志 JournalBeat


指标数据 MetricBeat


网络流量数据 PacketBeat


Windows事件日志 Winlogbeat


Beats可以直接将数据发送到Elasticsearch或者发送到Logstash,基于Logstash

可以进一步地对数据进行处理,然后将处理后的数据存入到Elasticsearch,最后

使用Kibana进行数据可视化。


1、FileBeat简介


FileBeat专门用于转发和收集日志数据的轻量级采集工具。它可以为作为代理安

装在服务器上,FileBeat监视指定路径的日志文件,收集日志数据,并将收集到

的日志转发到Elasticsearch或者Logstash。


2、FileBeat的工作原理


启动FileBeat时,会启动一个或者多个输入(Input),这些Input监控指定的日

志数据位置。FileBeat会针对每一个文件启动一个Harvester(收割机)。


Harvester读取每一个文件的日志,将新的日志发送到libbeat,libbeat将数据收

集到一起,并将数据发送给输出(Output)。


3、安装FileBeat


安装FileBeat只需要将FileBeat Linux安装包上传到Linux系统,并将压缩包解压

到系统就可以了。


FileBeat官方下载地址:


www.elastic.co/cn/download…


上传FileBeat安装到Linux,并解压。


tar ‐xvzf filebeat‐7.6.1‐linux‐x86_64.tar.gz ‐C ../usr/local/es/


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 监控 数据可视化
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
日志分析对决:揭示 ELK 与 GrayLog 的优势和差异
228 0
|
3月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
3月前
|
消息中间件 数据可视化 关系型数据库
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
ELK7.x日志系统搭建 4. 结合kafka集群完成日志系统
148 0
|
12天前
|
消息中间件 存储 运维
更优性能与性价比,从自建 ELK 迁移到 SLS 开始
本文介绍了 SLS 基本能力,并和开源自建 ELK 做了对比,可以看到 SLS 相比开源 ELK 有较大优势。
54466 42
|
1月前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
26 0
|
1月前
|
存储 消息中间件 监控
Zoom 基于Apache Hudi 的流式日志处理实践
Zoom 基于Apache Hudi 的流式日志处理实践
44 1
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
3月前
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
3月前
|
监控 NoSQL Redis
ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat
ELK7.x日志系统搭建 3. 采用轻量级日志收集Filebeat
104 0