ElasticStack:使用FileBeat、Logstash、Elasticsearch、Kibana收集清洗存储查看分析数据

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: ElasticStack:使用FileBeat、Logstash、Elasticsearch、Kibana收集清洗存储查看分析数据

借用ElasticStack的一张图,很好的阐述了LEK的在数据处理中的位置

2.png

一、环境:

版本均未5.2.0

https://www.elastic.co/cn/downloads/past-releases


1、filebeat:

https://www.elastic.co/cn/downloads/past-releases/filebeat-5-2-0

2、logstash

https://www.elastic.co/cn/downloads/past-releases/logstash-5-2-0

3、elasticsearch:

https://www.elastic.co/cn/downloads/past-releases/elasticsearch-5-2-0

4、kibana:

https://www.elastic.co/cn/downloads/past-releases/kibana-5-2-0

二、日志准备

使用python脚本定时生成模拟日志


generator_log.py

# -*- encoding:utf-8 -*-

import time
from chinesename import ChineseName

cn = ChineseName()

while True:
    now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
    message = "{} {}\n".format(now, cn.getName())
    print(message)

    with open("demo.log", "a", encoding="utf-8") as f:
        f.write(message)

    # 每3秒生成一条日志     
    time.sleep(3)

日志示例(日期 姓名):

2019-06-13 18:01:31 容休

三、filebeat

1、配置

修改配置文件filebeat.yml

可以选择直接将数据传入Elasticsearch,也可以传入Logstash处理

filebeat.prospectors:

- input_type: log
paths:
# 配置需要收集的文件地址
- /var/log/*.log

#-------------------------- Elasticsearch output ------------------------------
# output.elasticsearch:
# hosts: ["localhost:9200"]

#----------------------------- Logstash output --------------------------------
output.logstash:
hosts: ["localhost:5044"]

2、启动:

./filebeat -e -c filebeat.yml -d "publish"

参考:开始使用Filebeat

3.png

四、logstash

1、匹配说明

(1)内置匹配

%{SYNTAX:SEMANTIC}

(2)ruby正则

(?<name>pattern)

关于Ruby的正则:

Ruby 正则表达式: https://www.runoob.com/ruby/ruby-regular-expressions.html

Ruby 正则匹配测试: https://rubular.com/


2、配置

新建一个文件夹存放自定义匹配模式

$ mkdir ./patterns
$ cat ./patterns/datetime.re
DATETIME \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}

es-pipeline.conf

input {
beats {
port => "5044"
}
}
filter {
grok {
patterns_dir => ["./patterns"]
match => {
"message" => "%{DATETIME:logdate} (?<text>(.*))"
}
remove_field => "message"
}
date {
match => ["logdate", "yyyy-MM-dd HH:mm:ss"]
}
}
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => [ "localhost:9200" ]
}
}

3、启动logstash

# 解析配置文件并报告任何错误
$ ./bin/logstash -f es-pipeline.conf --config.test_and_exit

# 启用自动配置加载
$ ./bin/logstash -f es-pipeline.conf --config.reload.automatic

4.png

五、kibana中查询结果

1、启动

$ elasticsearch
$ kibana

2、查询

GET /logstash-2019.06.13/_search
{
"sort": [
{
"@timestamp": {
"order": "desc"
}
}
]
}

# 查询结果
{
"_index": "logstash-2019.06.13",
"_type": "log",
"_id": "AWtQTwv8vaBpxF8s4wUp",
"_score": null,
"_source": {
"@timestamp": "2019-06-13T10:08:02.000Z",
"offset": 197738,
"logdate": "2019-06-13 18:08:02",
"@version": "1",
"beat": {
"hostname": "bogon",
"name": "bogon",
"version": "5.2.0"
},
"input_type": "log",
"host": "bogon",
"source": "/Users/qmp/Desktop/log/demo.log",
"text": "伯镟",
"type": "log",
"tags": [
"beats_input_codec_plain_applied"
]
},
"sort": [
1560420482000
]
}

图形化查看日志数量曲线图

5.png

参考

使用Logstash filter grok过滤日志文件

Logstash使用grok进行日志过滤

Logstash介绍


            </div>
相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
目录
相关文章
|
存储 对象存储
使用Ceph对象存储的Amazon S3接口(基于nautilus版本)
使用Ceph对象存储的Amazon S3接口(基于nautilus版本)
952 0
|
10月前
|
云安全 监控 安全
AWS 云安全深度剖析:如何有效监测 SSH 暴力攻击
云基础设施多由基于Linux的机器主导,因其开源、低成本、可靠性和灵活性。然而,这些机器易受黑客攻击,尤其是通过SSH通道。SSH(安全外壳协议)用于加密连接,确保远程登录和文件传输的安全性。在AWS中,管理员通过SSH保护Linux实例的远程访问,但暴露SSH服务会增加暴力破解风险。攻击者利用暴力破解程序尝试获取访问权限,进而感染主机或窃取数据。为防御此类攻击,建议使用SIEM解决方案监控日志,检测异常登录行为,并阻止可疑IP地址。此外,避免公开暴露SSH服务,添加双因素身份验证等额外安全层,以增强云安全性。
228 17
|
11月前
|
机器学习/深度学习 存储 人工智能
【AI系统】TVM 实践案例
本文探讨了如何利用AI编译器在新硬件上部署神经网络,重点介绍了TVM的工作流程,包括模型导入、转换为Relay、TE和TIR、自动调优、编译为机器码等步骤。文章还讨论了算法层面上的算子优化、量化技术,以及编译层面对量化模型的解析和计算图优化。此外,还介绍了TVM的BYOC框架,允许硬件加速器供应商通过即插即用的方式集成代码工具,实现高效编译和优化。最后,文章提及了算子和网络仿真的重要性,确保新硬件平台上的模型正确性和性能。
294 2
|
机器人
北大推出全新机器人多模态大模型!面向通用和机器人场景的高效推理和操作
【6月更文挑战第29天】北京大学研发的RoboMamba是新型机器人多模态大模型,融合Mamba SSM的高效推理与视觉编码器,提升复杂任务处理能力。通过微调策略,仅用少量参数即可快速习得操作技能,实现在通用及机器人场景的高效运行,推理速度提升7倍。尽管面临泛化和可解释性挑战,RoboMamba展示了多模态模型的新潜力。[论文链接:](https://arxiv.org/abs/2406.04339)
340 1
|
JavaScript 前端开发 API
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
vue改变数组页面重新渲染的操作/那些操作不会重新渲染页面以及解决方法
494 2
|
Dart 前端开发 测试技术
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
【4月更文挑战第30天】随着Flutter在跨平台开发的普及,保证代码质量成为开发者关注的重点。优质代码能确保应用性能与稳定性,提高开发效率。关键策略包括遵循最佳实践,编写可读性强的代码,实施代码审查和自动化测试。重构实践在项目扩展时尤为重要,适时重构能优化结构,降低维护成本。开发者应重视代码质量和重构,以促进项目成功。
220 0
【Flutter前端技术开发专栏】Flutter开发中的代码质量与重构实践
|
存储 算法 Java
【JAVA】Java 中 Set集合常用方法
【JAVA】Java 中 Set集合常用方法
|
机器学习/深度学习 人工智能 搜索推荐
新商业模式创新下AIGC的发展
【1月更文挑战第13天】新商业模式创新下AIGC的发展
243 2
新商业模式创新下AIGC的发展
|
敏捷开发 设计模式 测试技术
【软件设计师备考 专题 】软件过程改进:提升软件开发效率和质量
【软件设计师备考 专题 】软件过程改进:提升软件开发效率和质量
676 0
|
网络协议 安全 Linux
腾讯三面:一台服务器,最大支持的TCP连接数是多少?
一个 TCP 对象占用的大小,等于它所包含的一些数据结构占用大小的总和,也是就把上面这些数据结构的大小累加起来,就是一个 TCP 连接占用的大小了。实际过程中的 TCP 连接,肯定不是静止状态的,还会进行发送数据和接收数据了,那么这些过程还是会额外消耗更多的内存资源的,8 GB 物理内存的服务器实际并发很难达到百万级别。
736 2