文章目录

  • ELK环境搭建+入门使用
    • 前言
      • 使用的数据格式定义
    • 安装、启动
      • 启动ES
      • 启动Kibana
      • 启动Logstash
        • 配置first-pipeline.conf
        • 前台启动Logstash
        • 在Logstash中安装插件
    • 配置基本权限
      • 配置ES用户名密码
      • 配置Kibana权限
      • 配置好权限之后登录
    • 登录Kibana
    • ES创建数据
      • 创建index
      • 查看创建的index
      • 查看创建的mappings
      • 查看某个字段的数据类型
      • 创建数据
    • 在Kibana中展示数据
      • 创建IndexPatterns
      • 查看数据
    • 写在最后
    • 思维导图

ELK环境搭建+入门使用

前言

  • 使用的Elasticsearch、Logstash、Kibana版本均为7.13
  • 使用场景假定为对一堆文章做搜索,这里设定一个场景然后可以不断的完善这个场景,从而触发学习ELK相关知识,个人认为比枯燥的看文档来的快,带着疑问学习,才有效果
  • 在博文中我会把自己学习ELK时如何思考写出来,供参考,希望以后学习、入门其他技术时对你自己的思考有帮助
  • 建议使用Windows的时候使用PowerShell

使用的数据格式定义

一篇文章的基本数据结构如下

{"title": "文章标题-字符串类型","author": "作者名字-字符串类型","article_content": "文章实际内容-字符串类型","article_genre": "文章体裁-字符串类型,可以有多个值,也就是说这个字段对应的是数组","chines": "文章是否为中文-布尔类型","reading_count": "文章被阅读数-数值类型","created": "文章创建时间-日期类型","updated": "文章更新时间-日期类型"
}

安装、启动

Windows版本安装方式可在官网上找到安装方式,这里给一个ES Windows安装方式,其他两个参考官方文档即可

brew tap elastic/tapbrew install elastic/tap/elasticsearch-fullbrew install elastic/tap/kibana-fullbrew install elastic/tap/logstash-full

启动ES

默认使用9200端口

brew service start elasticsearch

稍等一会

出现类似下面格式的信息则代表启动成功

{"name" : "duhongbodeMacBook-Pro.local","cluster_name" : "elasticsearch_jacksparrow414","cluster_uuid" : "rp73VaY8RRCgQrl4M5uR9A","version" : {"number" : "7.7.1","build_flavor" : "default","build_type" : "tar","build_hash" : "ad56dce891c901a492bb1ee393f12dfff473a423","build_date" : "2020-05-28T16:30:01.040088Z","build_snapshot" : false,"lucene_version" : "8.5.1","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
}

启动Kibana

启动之前需要配置下kibana.yml文件,打开端口和host,路径在/usr/local/etc/kibana

brew service start kibana

在浏览器输入localhost:5601即可访问

启动Logstash

配置first-pipeline.conf

input {2     stdin {}5 }67 output {8     elasticsearch {9         hosts => [ "localhost:9200" ]10         user => "elastic"11         password => "password"12     }13 }

前台启动Logstash

进入logstash配置目录

cd /usr/local/etc/logstash

不知道logstash配置目录在哪?查看Logstash directory layout

指定配置文件first-pipeline执行

logstash -f first-pipeline.conf --config.reload.automatic

若要在前台关闭logstash则使用CTRL-D

在Logstash中安装插件

如果需要安装插件,参看官方文档和logstash插件名字列表

配置基本权限

如果没有配置权限,登录到Kibana上提示要配置权限

官方文档

对于开发时的权限配置,配置最小的权限即可.

配置ES用户名密码

配置用户名密码的文档

这里全部密码设置成password

配置Kibana权限

将kibana.yml下的elasticsearch相关的username注释放开

后续步骤见官方文档

配置好权限之后登录

访问kibana.localhost:5601,使用用户名elastic,密码password进行登陆

登录Kibana

登录进去之后,进入Dev Tools,对ES的rest操作,使用这个可视化的面板,体验比较好,还自动提示

ES创建数据

创建index

如果有Solr的使用经验,可以简单理解为Elasticsearch中的Index相当于Solr中的core,相当于具有类似数据结构的数据的集合。(为什么说类似而不是一致呢?因为index下可以根据type动态的来调整数据结构,入门这里不做深入说明)

注意:虽然也可以不用创建index,再写数据时,ES如果发现没有index,会动态的进行创建,但这里还是采用先创建index,再写数据的方式

既然是数据的集合,首先要定义Index和其中数据结构,在Kibana中的Managent->Dev Tools中

PUT /my-articles
{"mappings": {"properties": {"title": {"type": "text"},"author": {"type": "text"},"article_content": {"type": "text"},"article_genre": {"type": "text"},"chinese": {"type": "boolean"},"reading_count": {"type": "integer"},"created": {"type": "date","format": "yyyy-MM-dd HH:mm:ss"},"updated": {"type": "date","format": "yyyy-MM-dd HH:mm:ss"}}},"settings": {"index": {"number_of_shards": 1,"number_of_replicas": 1}},"aliases": {}
}
  1. 创建index,使用PUT方法,后面跟具体的index名字,注意index名字必须全部小写,index命名详细规则

  2. Request body中结构为mappings-定义具体数据的数据结构、setttings-index的分片数,复制数、aliases-目前我还没研究有什么用,不涉及到具体场景的先不研究

  3. mappings的下一级是properties,properties里就是具体数据的字段,以及字段对应的类型,格式为

    "字段名": {"type": "具体字段对应的类型"
    }
    

    上面的mappings中,按照最上面定义的数据格式声明字段,有字符串类型的text,布尔类型的boolean,日期类型的date,数值类型的integer。更多数据类型见官方Field文档

查看创建的index

刚刚创建好,那么第一个想法是查一下刚才完整的index的结构

GET /my-articles

查看创建的mappings

只查看mappings的结构

GET /my-articles/_mapping

查看某个字段的数据类型

查看author的数据类型

GET /my-articles/_mapping/field/author

创建数据

定义好数据结构之后,便可以添加数据.ES添加数据文档

POST /my-articles/_doc
{"title": "青玉案·元夕","author": "辛弃疾","article_content":"东风夜放花千树,更吹落、星如雨。宝马雕车香满路。凤箫声动,玉壶光转,一夜鱼龙舞。蛾儿雪柳黄金缕,笑语盈盈暗香去。众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。","article_genre": ["古词","记叙文"],"reading_count": 25,"chinese": true,"created": "2021-06-03 19:27:56","updated": "2021-06-03 19:27:56"
}

有两种方式,一种是创建时指定ID,一种就是不指定ID,由ES生成,这里采用第二种方式.

在Kibana中展示数据

在Kibana中展示数据,直接点击Discovery即可。但在点之前,需要创建indexpatterns

创建IndexPatterns

Management->Stack Management->Kibana->Index Patterns

点击Created index pattern ,选择刚刚创建的index名字,点击Next step,在time field那里可以选择created,然后点击Create index pattern

查看数据

选择具体的index patterns,点击刷新,如果没有数据,调整到有数据的区间即可

默认只有Time和Document

可以将经常查看的field点击+添加到列中

写在最后

本篇只做最简单的入门说明,可以看到,我思路是

  • 先下载,保证正常安装
  • 启动,保证三个组件启动都是没问题的
  • 然后自己模拟了一个场景,根据这个场景的需要(这里只需要创建index、添加数据这两个简单的场景,至于修改index,修改数据不在我入门的思路里面,我的理解是入门要快速建立起对这个东西的兴趣,其他的可以留在后续的思考中),再去看对应的官方文档

而且由于入门这个场景还用不到Logstash,所以只是保证安装、启动没问题即可,后续博文用到Logstash时会进行更详细的说明

思维导图


下一篇文章会着重在Elasticsearch的查询语法上

ELK环境搭建+入门使用相关推荐

  1. 【技术文档】Jeecg-P3开发环境搭建入门(java插件开发框架)

    一.项目工程说明 jeecg-p3-web       | 启动主项目 jeecg-p3-biz-demo | 插件项目     注意:项目为maven工程,采用maven方式导入eclipse等ID ...

  2. 区块链100讲:EOS环境搭建入门(私链节点-钱包-密钥-账号)

    1 摘要 [本文目标] 通过本文实践,能在已编译的EOS V1.0.5版本环境上,完成私链节点启动,钱包创建,密钥导入和账号创建等内容. [前置条件] 你已完成了EOS编译,编译测试成功.未完成的可参 ...

  3. JEECG-P3开发专题 - 开发环境搭建入门

    官方标准开发工具: 1 .IDE Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) Build id: 2 ...

  4. Mybatis入门程序一(环境搭建,入门程序)

    Mybatis的环境搭建:用的是IDEA+mybatis.jar包(可以从官网下载,也可以到我的主页下载) 本项目使用的是maven工程建立的 1.首先看一下目录: 2.首先看一下pom.xml的配置 ...

  5. 安信可ESP-12K模组学习心得 ① ESP32S2 对比与 ESP32 开发方式,带你环境搭建入门;

    文章目录 一 前言 1.1 ESP32S2 对比与 ESP32 开发方式 二 安装 Ubuntu 18.04 准备材料: 1.启用"适用于Linux的Windows子系统(WSL)" ...

  6. ELK 环境搭建1-Elasticsearch

    一.安装前准备 1.节点 192.168.30.41 192.168.30.42 192.168.30.43 2.操作系统: Centos7.5 3.安装包 a.java8: jdk-8u181-li ...

  7. redis集群环境搭建入门

    以伪分布式作为示例,搭建在同一台电脑上,仅供学习之用途. 下载最新版redis. wget http://download.redis.io/releases/redis-3.0.6.tar.gz 解 ...

  8. win10_940MX python3.6深度学习gpu环境搭建入门必看!anaconda3+cuda9.0+cudnn7.0.5+tensorflow1.7.0+keras2.1.6+openCV

    Ⅰ 安装anaconda,cuda,cudnn step1安装anaconda,搭建python3.6环境 简介: Anaconda一个用于科学计算的Python发行版,支持 Linux, Mac, ...

  9. ELK 环境搭建 (四)

    安装elasticsearch 1.环境准备(root用户) 通用操作,在root用户下执行: 创建用户:useradd 用户名 设置用户密码:passwd 用户名 在root用户下配置elastic ...

最新文章

  1. 日志切割清理工具 Log-Cutter
  2. UI组件之 ProgressBar及其子类(一)ProgressBar进度条的使用
  3. react native改变app的图标和名称
  4. 【ZOJ - 3329】One Person Game(带循环的概率dp,数学期望,高斯消元,数学)
  5. VUE 入坑系列 一 双向绑定
  6. Java并发编程实战~Copy-on-Write模式
  7. nginx负载均衡配置-windows
  8. vi 不保存退出_vi或vim的快速操作技巧你知道吗?
  9. windows 服务实现定时任务调度(Quartz.Net)
  10. [转]iOS设备唯一标识探讨
  11. centos mysql lujin_MySQL中文转换成拼音的函数[zt]
  12. 熟练使用win7便签快捷键
  13. Win10“隐藏”了一个视频编辑器,好用,免费,很多人却不知道
  14. 背包问题大全(动态规划)
  15. 爬虫抓取暗黑3玩家数据
  16. Unity编辑器修改图片的大小
  17. word中利用模糊替换
  18. c/c++静态变量和静态函数
  19. 做自媒体,不用露脸拍视频,方法都在这篇文章
  20. 吉时利万用表DMM7510,值得拥有的触摸屏数采万用表

热门文章

  1. python爬虫实践目的_【Python爬虫】理论基础及入门实践
  2. 优盘引导ghost恢复系统备份
  3. python 小说人物分析_Python语言之用Python分析一下当年看金庸小说最爱的主角是谁...
  4. Java注解和反射,苦熬一个月
  5. C#图像点阵处理性能问题
  6. 'gbk' codec can't decode byte ... 的解决办法
  7. 华为数通笔记-组播协议介绍之IGMP
  8. 微信小程序-开发实战(二)
  9. 广州面试题------广东中建普联科技股份有限公司
  10. 三十岁而立之年混成怎么样才算成功?