2、ELS基本使用入门
mhr18 2024-12-09 12:09 21 浏览 0 评论
ELK概念
配置文件简介
Elastic安装
Development与Production模式说明
Elasticsearch本地快速启动集群的方式
上传命令
Elasticseaerch常用术语
搜索命令
yum安装ElasticSearch
rpm安装ElasticSearch
插件
测试提交数据
测试查询
ELK概念
如果有一个运行中的web服务器,那这个web服务器生成的大量的日志信息,对于elasticsearch来讲每一条日志都可以作为一个文档,它有日志的生成时间时间本身等等。那我们就需要把日志信息一个一个抽出来导进去,那我们就需要一个组件来实现,首先将这个信息抽取出来,然后自己作为elasticsearch的客户端把它推送到elasticsearch上面来,由elasticsearch来自己完成文档的建立,所以我们还需要告诉elasticsearch改怎么去分词分析这些信息。
因此我们可以在本地找一个组件,这个组件可以自己去加载每一条web日志信息的日志
记录并且加载完成之后,还能够将这些信息生成为文档格式,加上标题和值。把这些信息发给elasticsearch,就可以了。
如果说这些日志信息太多了,我们的elasticsearch压力太大,那么我们可以在中间加一个收集信息的组件,比如我们的redis服务器收集日志完成之后先发送给redis,然后发给我们的elasticsearch,那我们的redis不断的生成日志信息,我们的elasticsearch也就能够不断的获取到这个数据,所以我们想分析一下在一天当中哪个页面访问量最大,哪个IP访问最频繁,这就很方便了。但是elasticsearch给我们提供的无论是搜索还是展示接口都是通过http协议来实现的,我们可以使用curl命令与其交互。所以我们的elasticsearch就结合了Kinaba,它能够和elasticsearch进行交互,并且提供一个检索借口,用户键入检索条件,点击提交以后Kinaba能够生成一个搜索基本查询条件发给elasticsearch集群,由elasticsearch返回结果以后由再进行一次格式化就可以优雅的展示给用户。
那么数据就是通过我们的Logstash/Beats这个组件专门负责到我们的web服务器上去收集日志,因为我们的Logstash非常占据主机的资源,所以在ElasticSearch的5.0时代使用的都是Beats,Beats是一个项目名称,是一个项目,有的专门负责收集日志信息,有的专门收集网络通信相关的信息等等等,所以我们现在可以结合Beats这种工具来收集信息了。
- ElasticSearch官方地址:https://www.elastic.co
- ElasticSearch下载地址:https://www.elastic.co/downloads/past-releases
配置文件简介
cluster.name:集群名称,以此作为是否同一集群的判断条件;
node.name:节点名称,以此作为集群中不同节点的判断条件;
path.data:节点角色配置,true表示可以成为数据节点,false不能成为数据节点;
node.master:节点角色配置,true表示可以成为主节点,false不能成为主节点;
node.ingest:节点角色配置,true表示可以成为协调节点,false不能成为协调节点(简单解释,请以官方为准);
node.attr.rack:节点服务器所在的机柜信息,可能在数据分布中起到指导作用;
network.host #监听地址
http.port #监听端口
discovery.zen.ping.unicast.hosts:有哪些主机是作为集群节点
discovery.zen.minimum_master_nodes:防止脑裂,这个参数控制的是,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作。官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量(我们的情况是3,因此这个参数设置为2,但对于只有2个节点的情况,设置为2就有些问题了,一个节点DOWN掉后,你肯定连不上2台服务器了,这点需要注意)。;
gateway.recover_after_nodes:控制集群在达到多少个节点之后才会开始数据恢复,通过这个设置可以避免集群自动相互发现的初期,shard分片不全的问题,假如es集群内一共有5个节点,就可以设置为5,那么这个集群必须有5个节点启动后才会开始数据分片,如果设置为3,就有可能另外两个节点没存储数据分片;
node.max_local_storage_nodes #用来控制节点是否允许从单目录启动多个实例。如果物理机节点承担太多的数量的实例,很容易会超过了其硬件承受能力,总体性能都要下降,设置1为禁止。
transport.tcp.port:内部通信端口;
bootstrap.memory_lock:锁住内存,确保ES不使用swap;
bootstrap.system_call_filter:系统调用过滤器,建议禁用该项检查,因为很多检查项需要Linux 3.5以上的内核,否则会;
Elastic安装
# 需要安装jdk
[root@op-machine ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.4.tar.gz -O /usr/local/elasticsearch-6.5.4.tar.gz
[root@op-machine ~]# cd /usr/local/
[root@op-machine /usr/local]# tar xf elasticsearch-6.5.4.tar.gz
[root@op-machine ~]# mv elasticsearch-6.5.4 elasticsearch
Development与Production模式说明
以transport地址(network.host)是否绑定在localhost为判断标准,如果是localhost那么就是Development;
Development模式下会在启动时会议warning的方式提示配置检查异常;
Production模式下会在启动时会议error的方式提示配置检查异常;
修改模式的第二种方式
bin/elasticsearch -d -Ehttp.prot=9200
Elasticsearch本地快速启动集群的方式
# 记得查看discovery.zen.ping.unicast.hosts的配置
/usr/local/elasticsearch/bin/elasticsearch -Ehttp.port=9200 -Epath.data=node1 -Enode.name=node1 -d
/usr/local/elasticsearch/bin/elasticsearch -Ehttp.port=8200 -Epath.data=node2 -Enode.name=node2 -d
/usr/local/elasticsearch/bin/elasticsearch -Ehttp.port=7200 -Epath.data=node3 -Enode.name=node3 -d
上传命令
索引名:myindex
文档类型:books
文档ID:1
-d:json格式的文档内容
Elasticseaerch常用术语
Document:文档数据;
Index:索引,可以理解为数据库;
Type:索引中的数据类型,可以理解数据库中的一个表;
Field:字段,文档的字段属性;
Query DSL:查询语法;
搜索命令
-q:指定搜索条件
fields:只对搜索结果显示哪个字段
size:分页查看时一次显示多少个文档
pretty:显示格式
yum安装ElasticSearch
1、安装jdk
[root@node1 ~]# tar xf jdk-8u144-linux-x64.tar.gz
[root@node1 ~]# mv jdk1.8.0_144/ /usr/local/jdk1.8
[root@node1 ~]# tail -3 /etc/profile
export JAVA_HOME=/usr/local/jdk1.8
export CLASSPATH=.:${JAVA_HOME}/jre/lib/*:${JAVA_HOME}/lib/*
export PATH=$PATH:${JAVA_HOME}/bin
2、导入key
[root@node1 ~]# rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
3、配置yum源
[root@node1 ~]# cat << EOF >> /etc/yum.repos.d/elasticsearch.repo
[Elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=http://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=http://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1
EOF
3、安装elasticsearch
[root@node1 ~]# yum install elasticsearch
rpm安装ElasticSearch
1、安装
[root@node1 ~]# yum install -y java-1.8.0-openjdk-devel
[root@node1 ~]# rpm -vih elasticsearch-2.3.4.rpm
[root@node1 ~]# systemctl daemon-reload
[root@node1 ~]# systemctl enable elasticsearch
2、配置ElasticSearch
[root@node1 ~]# grep '^[^#]' /etc/elasticsearch/elasticsearch.yml
cluster.name: els_cluster
node.name: node1.cce.com
network.host: 0.0.0.0
path.data: /data/els
[root@node1 ~]# mkdir -p /data/els
[root@node1 ~]# chown elasticsearch:elasticsearch /data/els/
3、启动
[root@node1 ~]# netstat -ntlp|grep '9.00'
tcp6 0 0 :::9200 :::* LISTEN 1400/java
tcp6 0 0 :::9300 :::* LISTEN 1400/java
[root@node1 ~]# curl localhost:9200
{
"name" : "node1.cce.com",
"cluster_name" : "els_cluster",
"version" : {
"number" : "2.3.4",
"build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f",
"build_timestamp" : "2016-06-30T11:24:31Z",
"build_snapshot" : false,
"lucene_version" : "5.5.0"
},
"tagline" : "You Know, for Search"
}
4、使用curl来上传一个测试文档
[root@node1 ~]# curl -XPUT http://192.168.1.71:9200/myindex/books/1 -d '{name:"elasticsearch",publish:"oreilley",auther:"caichangen"}'
{"_index":"myindex","_type":"books","_id":"1","_version":1,"_shards": {"total":2,"successful":1,"failed":0},"created":true}
5、获取提交的内容
[root@node1 ~]# curl -XGET http://192.168.1.71:9200/myindex/books/1?pretty
{
"_index" : "myindex",
"_type" : "books",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"name" : "elasticsearch",
"publish" : "oreilley",
"auther" : "caichangen"
}
} 6、继续上传文档
[root@node1 ~]# curl -XPUT http://192.168.1.71:9200/myindex/books/2 -d '{name:"xiyouji",publish:"shushe",auther:"cce"}'
{"_index":"myindex","_type":"books","_id":"2","_version":1,"_shards": {"total":2,"successful":1,"failed":0},"created":true}
[root@node1 ~]# curl -XPUT http://192.168.1.71:9200/myindex/books/3 -d '{name:"shuhuzhuan",publish:"charcce",auther:"char"}'
{"_index":"myindex","_type":"books","_id":"3","_version":1,"_shards": {"total":2,"successful":1,"failed":0},"created":true}
[root@node1 ~]# curl -XPUT http://192.168.1.71:9200/myindex/books/4 -d '{name:"docker",publish:"charset",auther:"aobama"}'
{"_index":"myindex","_type":"books","_id":"4","_version":1,"_shards": {"total":2,"successful":1,"failed":0},"created":true}
7、测试全文模糊匹配搜索
[root@node1 ~]# curl "http://192.168.1.71:9200/_search?q=cce&pretty"
{
"took" : 6,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 0.5,
"hits" : [ {
"_index" : "myindex",
"_type" : "books",
"_id" : "2",
"_score" : 0.5,
"_source" : {
"name" : "xiyouji",
"publish" : "shushe",
"auther" : "cce"
}
} ]
}
}
插件
对于ElasticSearch集群而言,它有自己的插件功能,能够通过插件的方式来观察集群和扩展集群;我们可以直接将插件放置在ElasticSearch的插件目录就可以了,或者使用plugin来安装
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install -h
[root@node1 ~]# /usr/share/elasticsearch/bin/plugin install file:///root/elasticsearch-head-latest.zip
-> Installing from file:/root/elasticsearch-head-latest.zip...
Trying file:/root/elasticsearch-head-latest.zip ...
Downloading .........DONE
Verifying file:/root/elasticsearch-head-latest.zip checksums if available ...
NOTE: Unable to verify checksum for downloaded plugin (unable to find .sha1 or .md5 file to verify)
Installed head into /usr/share/elasticsearch/plugins/head
测试通过http的方式访问我们安装的插件
测试提交数据
测试查询
相关推荐
- 一文读懂Prometheus架构监控(prometheus监控哪些指标)
-
介绍Prometheus是一个系统监控和警报工具包。它是用Go编写的,由Soundcloud构建,并于2016年作为继Kubernetes之后的第二个托管项目加入云原生计算基金会(C...
- Spring Boot 3.x 新特性详解:从基础到高级实战
-
1.SpringBoot3.x简介与核心特性1.1SpringBoot3.x新特性概览SpringBoot3.x是建立在SpringFramework6.0基础上的重大版...
- 「技术分享」猪八戒基于Quartz分布式调度平台实践
-
点击原文:【技术分享】猪八戒基于Quartz分布式调度平台实践点击关注“八戒技术团队”,阅读更多技术干货1.背景介绍1.1业务场景调度任务是我们日常开发中非常经典的一个场景,我们时常会需要用到一些不...
- 14. 常用框架与工具(使用的框架)
-
本章深入解析Go生态中的核心开发框架与工具链,结合性能调优与工程化实践,提供高效开发方案。14.1Web框架(Gin,Echo)14.1.1Gin高性能实践//中间件链优化router:=...
- SpringBoot整合MyBatis-Plus:从入门到精通
-
一、MyBatis-Plus基础介绍1.1MyBatis-Plus核心概念MyBatis-Plus(简称MP)是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提...
- Seata源码—5.全局事务的创建与返回处理
-
大纲1.Seata开启分布式事务的流程总结2.Seata生成全局事务ID的雪花算法源码3.生成xid以及对全局事务会话进行持久化的源码4.全局事务会话数据持久化的实现源码5.SeataServer创...
- Java开发200+个学习知识路线-史上最全(框架篇)
-
1.Spring框架深入SpringIOC容器:BeanFactory与ApplicationContextBean生命周期:实例化、属性填充、初始化、销毁依赖注入方式:构造器注入、Setter注...
- OpenResty 入门指南:从基础到动态路由实战
-
一、引言1.1OpenResty简介OpenResty是一款基于Nginx的高性能Web平台,通过集成Lua脚本和丰富的模块,将Nginx从静态反向代理转变为可动态编程的应用平台...
- 你还在为 Spring Boot3 分布式锁实现发愁?一文教你轻松搞定!
-
作为互联网大厂后端开发人员,在项目开发过程中,你有没有遇到过这样的问题:多个服务实例同时访问共享资源,导致数据不一致、业务逻辑混乱?没错,这就是分布式环境下常见的并发问题,而分布式锁就是解决这类问题的...
- 近2万字详解JAVA NIO2文件操作,过瘾
-
原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。从classpath中读取过文件的人,都知道需要写一些读取流的方法,很是繁琐。最近使用IDEA在打出.这个符号的时候,一行代...
- 学习MVC之租房网站(十二)-缓存和静态页面
-
在上一篇<学习MVC之租房网站(十一)-定时任务和云存储>学习了Quartz的使用、发邮件,并将通过UEditor上传的图片保存到云存储。在项目的最后,再学习优化网站性能的一些技术:缓存和...
- Linux系统下运行c++程序(linux怎么运行c++文件)
-
引言为什么要在Linux下写程序?需要更多关于Linux下c++开发的资料请后台私信【架构】获取分享资料包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdf...
- 2022正确的java学习顺序(文末送java福利)
-
对于刚学习java的人来说,可能最大的问题是不知道学习方向,每天学了什么第二天就忘了,而课堂的讲解也是很片面的。今天我结合我的学习路线为大家讲解下最基础的学习路线,真心希望能帮到迷茫的小伙伴。(有很多...
- 一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)
-
前言15年毕业到现在也近三年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中...最终有幸去了网易。但是要...
- 多商户商城系统开发全流程解析(多商户商城源码免费下载)
-
在数字化商业浪潮中,多商户商城系统成为众多企业拓展电商业务的关键选择。这类系统允许众多商家在同一平台销售商品,不仅丰富了商品种类,还为消费者带来更多样的购物体验。不过,开发一个多商户商城系统是个复杂的...
你 发表评论:
欢迎- 一周热门
-
-
Redis客户端 Jedis 与 Lettuce
-
高并发架构系列:Redis并发竞争key的解决方案详解
-
redis如何防止并发(redis如何防止高并发)
-
开源推荐:如何实现的一个高性能 Redis 服务器
-
redis安装与调优部署文档(WinServer)
-
Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
-
一文带你了解 Redis 的发布与订阅的底层原理
-
Redis如何应对并发访问(redis控制并发量)
-
oracle数据库查询Sql语句是否使用索引及常见的索引失效的情况
-
Java SE Development Kit 8u441下载地址【windows版本】
-
- 最近发表
- 标签列表
-
- oracle位图索引 (63)
- oracle批量插入数据 (62)
- oracle事务隔离级别 (53)
- oracle 空为0 (50)
- oracle主从同步 (55)
- oracle 乐观锁 (51)
- redis 命令 (78)
- php redis (88)
- redis 存储 (66)
- redis 锁 (69)
- 启动 redis (66)
- redis 时间 (56)
- redis 删除 (67)
- redis内存 (57)
- redis并发 (52)
- redis 主从 (69)
- redis 订阅 (51)
- redis 登录 (54)
- redis 面试 (58)
- 阿里 redis (59)
- redis 搭建 (53)
- redis的缓存 (55)
- lua redis (58)
- redis 连接池 (61)
- redis 限流 (51)