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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 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月前
|
Rust 前端开发 JavaScript
Tauri 开发实践 — Tauri 日志记录功能开发
本文介绍了如何为 Tauri 应用配置日志记录。Tauri 是一个利用 Web 技术构建桌面应用的框架。文章详细说明了如何在 Rust 和 JavaScript 代码中设置和集成日志记录,并控制日志输出。通过添加 `log` crate 和 Tauri 日志插件,可以轻松实现多平台日志记录,包括控制台输出、Webview 控制台和日志文件。文章还展示了如何调整日志级别以优化输出内容。配置完成后,日志记录功能将显著提升开发体验和程序稳定性。
81 1
Tauri 开发实践 — Tauri 日志记录功能开发
|
3月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
23天前
|
存储 监控 安全
|
20天前
|
存储 Linux Docker
centos系统清理docker日志文件
通过以上方法,可以有效清理和管理CentOS系统中的Docker日志文件,防止日志文件占用过多磁盘空间。选择合适的方法取决于具体的应用场景和需求,可以结合手动清理、logrotate和调整日志驱动等多种方式,确保系统的高效运行。
20 2
|
2月前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
48 1
|
2月前
|
监控 网络协议 安全
Linux系统日志管理
Linux系统日志管理
46 3
|
2月前
|
监控 应用服务中间件 网络安全
#637481#基于django和neo4j的日志分析系统
#637481#基于django和neo4j的日志分析系统
36 4
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控总结
Linux系统命令与网络,磁盘和日志监控总结
58 0
|
2月前
|
监控 Linux 测试技术
Linux系统命令与网络,磁盘和日志监控三
Linux系统命令与网络,磁盘和日志监控三
41 0
使用装饰器实现自动化日志系统
使用装饰器实现自动化日志系统

热门文章

最新文章

下一篇
无影云桌面