ELK环境搭建+入门使用
文章目录
- 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": {}
}
创建index,使用PUT方法,后面跟具体的index名字,注意index名字必须全部小写,index命名详细规则
Request body中结构为mappings-定义具体数据的数据结构、setttings-index的分片数,复制数、aliases-目前我还没研究有什么用,不涉及到具体场景的先不研究
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环境搭建+入门使用相关推荐
- 【技术文档】Jeecg-P3开发环境搭建入门(java插件开发框架)
一.项目工程说明 jeecg-p3-web | 启动主项目 jeecg-p3-biz-demo | 插件项目 注意:项目为maven工程,采用maven方式导入eclipse等ID ...
- 区块链100讲:EOS环境搭建入门(私链节点-钱包-密钥-账号)
1 摘要 [本文目标] 通过本文实践,能在已编译的EOS V1.0.5版本环境上,完成私链节点启动,钱包创建,密钥导入和账号创建等内容. [前置条件] 你已完成了EOS编译,编译测试成功.未完成的可参 ...
- JEECG-P3开发专题 - 开发环境搭建入门
官方标准开发工具: 1 .IDE Eclipse Java EE IDE for Web Developers. Version: Mars.2 Release (4.5.2) Build id: 2 ...
- Mybatis入门程序一(环境搭建,入门程序)
Mybatis的环境搭建:用的是IDEA+mybatis.jar包(可以从官网下载,也可以到我的主页下载) 本项目使用的是maven工程建立的 1.首先看一下目录: 2.首先看一下pom.xml的配置 ...
- 安信可ESP-12K模组学习心得 ① ESP32S2 对比与 ESP32 开发方式,带你环境搭建入门;
文章目录 一 前言 1.1 ESP32S2 对比与 ESP32 开发方式 二 安装 Ubuntu 18.04 准备材料: 1.启用"适用于Linux的Windows子系统(WSL)" ...
- 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 ...
- redis集群环境搭建入门
以伪分布式作为示例,搭建在同一台电脑上,仅供学习之用途. 下载最新版redis. wget http://download.redis.io/releases/redis-3.0.6.tar.gz 解 ...
- 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, ...
- ELK 环境搭建 (四)
安装elasticsearch 1.环境准备(root用户) 通用操作,在root用户下执行: 创建用户:useradd 用户名 设置用户密码:passwd 用户名 在root用户下配置elastic ...
最新文章
- 日志切割清理工具 Log-Cutter
- UI组件之 ProgressBar及其子类(一)ProgressBar进度条的使用
- react native改变app的图标和名称
- 【ZOJ - 3329】One Person Game(带循环的概率dp,数学期望,高斯消元,数学)
- VUE 入坑系列 一 双向绑定
- Java并发编程实战~Copy-on-Write模式
- nginx负载均衡配置-windows
- vi 不保存退出_vi或vim的快速操作技巧你知道吗?
- windows 服务实现定时任务调度(Quartz.Net)
- [转]iOS设备唯一标识探讨
- centos mysql lujin_MySQL中文转换成拼音的函数[zt]
- 熟练使用win7便签快捷键
- Win10“隐藏”了一个视频编辑器,好用,免费,很多人却不知道
- 背包问题大全(动态规划)
- 爬虫抓取暗黑3玩家数据
- Unity编辑器修改图片的大小
- word中利用模糊替换
- c/c++静态变量和静态函数
- 做自媒体,不用露脸拍视频,方法都在这篇文章
- 吉时利万用表DMM7510,值得拥有的触摸屏数采万用表
热门文章
- python爬虫实践目的_【Python爬虫】理论基础及入门实践
- 优盘引导ghost恢复系统备份
- python 小说人物分析_Python语言之用Python分析一下当年看金庸小说最爱的主角是谁...
- Java注解和反射,苦熬一个月
- C#图像点阵处理性能问题
- 'gbk' codec can't decode byte ... 的解决办法
- 华为数通笔记-组播协议介绍之IGMP
- 微信小程序-开发实战(二)
- 广州面试题------广东中建普联科技股份有限公司
- 三十岁而立之年混成怎么样才算成功?