zoukankan      html  css  js  c++  java
  • 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

    下载完后,直接运行  binkibana.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

    配置系统变量

    clipboard

    注:不要加bin

    三. 配置

    3.1. 数据录入到elasticsearch

    使用C#

    CreateTime = jsonLogMessage.Time.ToUniversalTime().ToString("O"), // 需要转换,否则ES不能识别为Date类型

    或者转换为毫秒数

    加入示例代码

    3.2. 配置数据源

    clipboard

    选择时间字段

    clipboard

    3.3. 配置字段

    设置日期字符串的格式

    clipboard

    配置枚举

    clipboard

    截取字符串

    clipboard

    3.4. 各种图表的配置

    1. 图表

    clipboard

    2. 面板

    clipboard

    3.5. 查询界面

    1. 查询条件

    clipboard

    2. 禁用某个条件

    clipboard

    3. 查看日志上下文

    clipboard

    可以查看当前日志发生时间前后的日志

    clipboard

    TODO:过期的数据删除策略

    四. 快速搭建一个日志中心(未完待续)

    架构

    clipboard

    数据传入到Redis

    clipboard

    附录:

    Kibana使用说明: https://www.elastic.co/guide/cn/kibana/current/introduction.html

    https://www.cnblogs.com/landanjun/p/10791339.html

  • 相关阅读:
    C# 对Outlook2010进行二次开发
    利用AForge.NET 调用电脑摄像头进行拍照
    SQL2012 提示评估已过期 解决方案- sql server问题
    图片转换PDF
    [转载]理解weight decay
    ATTENTION NETWORK分析
    sys.stdout.write和print和sys.stdout.flush
    Flutter免费(视频)教程汇总
    Windows核心编程随笔
    .NET家族
  • 原文地址:https://www.cnblogs.com/smallidea/p/12170144.html
Copyright © 2011-2022 走看看