作者:小白学习哈 | 来源:互联网 | 2023-06-07 19:19
一.简介Elasticsearch:分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch是用J
一. 简介
Elasticsearch :分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 是用Java 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。
在elasticsearch中,所有节点的数据是均等的。
Logstash :数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。
Kibana :可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。
二. 安装
windows下安装的docker
1. elasticsearch
#下载elasticsearch镜像 docker pull docker.elastic.co/elasticsearch/elasticsearch:7.0.0 # 创建并运行elasticsearch容器
# 5601是kibana的默认端口,9200是es的默认端口,discovery.type指定单节点模式
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0
注:也可以使用elasticsearch的9200端口,直接post数据
2. kibana
(windows版本可行)
# 创建并运行kibana
docker pull docker.elastic.co/kibana/kibana:7.0.0
# -e ELASTICSEARCH_URL指定es的地址,--network指定使用es的网络,可以借用es开放的5601端口 docker run -it -d -e ELASTICSEARCH_URL=http://localhost:9200 --name kibana -p 5601:5601kibana:tag
https://www.elastic.co/cn/products/kibana
注:笔者安装后总是有问题,干脆就弄一个windows版本的,就好了
https://www.elastic.co/cn/downloads/kibana
下载完后,直接运行 bin\kibana.bat 即可
3. Logstash (windows版本为例)
https://www.elastic.co/cn/downloads/logstash
启动脚本示例:
logstash -f logstash.conf
3.1. 配置
1 input {
2
3 redis {
4
5 type => "JasonLog"
6
7 host => "10.10.14.54"
8
9 # password => '123456'
10
11 port => "6379"
12
13 db => "0"
14
15 data_type => "list"
16
17 key => "ExceptionLog"
18
19 }
20
21 }
22
23 # 过滤
24
25 filter {
26
27 mutate {
28
29 gsub => [
30
31 # replace all forward slashes with underscore
32
33 #"message", "\\\"", "\"",
34
35 "message", "\\\"", "\""
36
37 ]
38
39 }
40
41 date {
42
43 match => ["CreateTime", "yyyy-MM-dd HH:mm:ss.SSS"] #这里是如果createtime跟后面的格式匹配上了就会去替换,替换什么呢?target默认指的就是@timestamp,所以就是以client_time的时间更新@timestamp的时间
44
45 }
46
47 }
48
49 output {
50
51 if [type] == "JasonLog" {
52
53 elasticsearch {
54
55 hosts => ["http://10.8.100.88:9200"]
56
57 index => "jason_log"
58
59 }
60
61 }
62
63 }
64
View Code
问题1. could not find java; set JAVA_HOME or ensure java is in PATH
解决方案:
安装最新版Java kit
配置系统变量
注:不要加bin
三. 配置
3.1. 数据录入到elasticsearch
使用C#
CreateTime = jsonLogMessage.Time.ToUniversalTime().ToString("O"), // 需要转换,否则ES不能识别为Date类型
或者转换为毫秒数
加入示例代码
3.2. 配置数据源
选择时间字段
3.3. 配置字段
设置日期字符串的格式
配置枚举
截取字符串
3.4. 各种图表的配置
1. 图表
2. 面板
3.5. 查询界面
1. 查询条件
2. 禁用某个条件
3. 查看日志上下文
可以查看当前日志发生时间前后的日志
TODO:过期的数据删除策略
四. 快速搭建一个日志中心(未完待续)
架构
数据传入到Redis
附录:
Kibana使用说明: https://www.elastic.co/guide/cn/kibana/current/introduction.html
https://www.cnblogs.com/landanjun/p/10791339.html