2、ELS基本使用入门
mhr18 2024-12-09 12:09 32 浏览 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的方式访问我们安装的插件
测试提交数据
测试查询
相关推荐
- Java面试题及答案总结(2025版)
-
大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Redis、Linux、SpringBoot、Spring、MySQ...
- Java面试题及答案最全总结(2025春招版)
-
大家好,我是Java面试分享最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Spring...
- Java面试题及答案最全总结(2025版持续更新)
-
大家好,我是Java面试陪考员最近很多小伙伴在忙着找工作,给大家整理了一份非常全面的Java面试题及答案。涉及的内容非常全面,包含:Spring、MySQL、JVM、Redis、Linux、Sprin...
- 蚂蚁金服面试题(附答案)建议收藏:经典面试题解析
-
前言最近编程讨论群有位小伙伴去蚂蚁金服面试了,以下是面试的真题,跟大家一起来讨论怎么回答。点击上方“捡田螺的小男孩”,选择“设为星标”,干货不断满满1.用到分布式事务嘛?为什么用这种方案,有其他方案...
- 测试工程师面试必问的十道题目!全答上来的直接免试
-
最近参加运维工程师岗位的面试,笔者把自己遇到的和网友分享的一些常见的面试问答收集整理出来了,希望能对自己和对正在准备面试的同学提供一些参考。一、Mongodb熟悉吗,一般部署几台?部署过,没有深入研究...
- 10次面试9次被刷?吃透这500道大厂Java高频面试题后,怒斩offer
-
很多Java工程师的技术不错,但是一面试就头疼,10次面试9次都是被刷,过的那次还是去了家不知名的小公司。问题就在于:面试有技巧,而你不会把自己的能力表达给面试官。应届生:你该如何准备简历,面试项目和...
- java高频面试题整理
-
【高频常见问题】1、事务的特性原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。一致性或可串性:事务的执行使得数据库从一种正确状态转换成另一种正确状态隔离性:在事务正确提交之前,不允许把该...
- 2025 年最全 Java 面试题,京东后端面试面经合集,答案整理
-
最近京东搞了个TGT计划,针对顶尖青年技术天才,直接宣布不设薪资上限。TGT计划面向范围包括2023年10月1日到2026年9月30日毕业的海内外本硕博毕业生。时间范围还...
- idGenerator测评
-
工作中遇到需要生成随机数的需求,看了一个个人开发的基于雪花算法的工具,今天进行了一下测评(测试)。idGenerator项目地址见:https://github.com/yitter/IdGenera...
- 2024年开发者必备:MacBook Pro M1 Max深度体验与高效工作流
-
工作机器我使用的是一台16英寸的MacBookProM1Max。这台电脑的表现堪称惊人!它是我用过的最好的MacBook,短期内我不打算更换它。性能依然出色,即使在执行任务时也几乎听不到风扇的...
- StackOverflow 2022 年度调查报告
-
一个月前,StackOverflow开启了2022年度开发者调查,历时一个半月,在6月22日,StackOverflow正式发布了2022年度开发者调查报告。本次报告StackO...
- 这可能是最全面的SpringDataMongoDB开发笔记
-
MongoDB数据库,在最近使用越来越广泛,在这里和Java的开发者一起分享一下在Java中使用Mongodb的相关笔记。希望大家喜欢。关于MongoDB查询指令,请看我的上一篇文章。SpringD...
- Mac M2 本地部署ragflow
-
修改配置文件Dockerfile文件ARGNEED_MIRROR=1//开启国内镜像代理docker/.envREDIS_PORT=6380//本地redis端口冲突RAGFLOW_IMA...
- 别再傻傻分不清!localhost、127.0.0.1、本机IP,原来大有讲究!
-
调试接口死活连不上?部署服务队友访问不了?八成是localhost、127.0.0.1、本机IP用混了!这三个看似都指向“自己”的东西,差之毫厘谬以千里。搞不清它们,轻则调试抓狂,重则服务裸奔。loc...
- 我把 Mac mini 托管到机房了:一套打败云服务器的终极方案
-
我把我积灰的Macmini托管到机房了,有图有真相。没想到吧?一台在家吃灰的苹果电脑,帮我省了大钱!对,就是控制了自己的服务器,省了租用云服务器的钱,重要数据还全捏在自己手里,这感觉真爽。你可...
你 发表评论:
欢迎- 一周热门
-
-
Redis客户端 Jedis 与 Lettuce
-
高并发架构系列:Redis并发竞争key的解决方案详解
-
redis如何防止并发(redis如何防止高并发)
-
Java SE Development Kit 8u441下载地址【windows版本】
-
开源推荐:如何实现的一个高性能 Redis 服务器
-
redis安装与调优部署文档(WinServer)
-
Redis 入门 - 安装最全讲解(Windows、Linux、Docker)
-
一文带你了解 Redis 的发布与订阅的底层原理
-
Redis如何应对并发访问(redis控制并发量)
-
Oracle如何创建用户,表空间(oracle19c创建表空间用户)
-
- 最近发表
- 标签列表
-
- oracle位图索引 (74)
- oracle批量插入数据 (65)
- oracle事务隔离级别 (59)
- oracle主从同步 (56)
- oracle 乐观锁 (53)
- redis 命令 (83)
- php redis (97)
- redis 存储 (67)
- redis 锁 (74)
- 启动 redis (73)
- redis 时间 (60)
- redis 删除 (69)
- redis内存 (64)
- redis并发 (53)
- redis 主从 (71)
- redis同步 (53)
- redis结构 (53)
- redis 订阅 (54)
- redis 登录 (62)
- redis 面试 (58)
- redis问题 (54)
- 阿里 redis (67)
- redis的缓存 (57)
- lua redis (59)
- redis 连接池 (64)