ELK实战笔记
一. 简介
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. 配置
input { redis { type => "JasonLog" host => "10.10.14.54" # password => '123456' port => "6379" db => "0" data_type => "list" key => "ExceptionLog" } } #过滤 filter { mutate { gsub => [ #replace all forward slashes with underscore # "message", "\\\"", "\"", "message", "\\\"", "\"" ] } date { # 这里是如果createtime跟后面的格式匹配上了就会去替换, 替换什么呢? # target默认指的就是 @timestamp, 所以就是以client_time的时间更新 @timestamp的时间 match => ["CreateTime", "yyyy-MM-dd HH:mm:ss.SSS"] } } output { if [type] == "JasonLog" { elasticsearch { hosts => ["http://10.8.100.88:9200"] index => "jason_log" } } }
问题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
欢迎在评论区留下你宝贵的意见,不论好坏都是我前进的动力(cnblogs 排名提升)!
如果喜欢,记得点赞、推荐、关注、收藏、转发 ... ;)