ELK的使用

首先安装jdk,我这里使用open-jdk

yum list all | grep jdk

yum -y install java-1.8.0-openjdk-devel, java-1.8.0-openjdk.x86_64和java-1.8.0-openjdk-headless.x86_64作为依赖包

安装

echo "export JAVA_HOME=/usr/bin" > /etc/profile.d/java.sh

exec bash

yum -y install elasticsearch-1.7.2.noarch.rpm 安装elasticsearch

vim /etc/elasticsearch/elasticsearch.yml 编辑配置文件

cluster.name: elasticsearch 为cluster命名为elasticsearch

node.name: "node1" 为该节点命名为node1

service elasticsearch start

ss -tnl 查看9200和9300的端口已经开启

这里的集群我使用三个节点,分别在其他的两个节点以进行同样的配置,注意节点不能相同

配置好后在一个节点上就能抓到包了 tcpdump -i eth1 -nn tcp port 9300

curl ‘http://192.168.204.129:9200/?pretty‘查看一个节点是否运行正常

显示了"status" : 200 表示运行正常

curl ‘http://192.168.204.129:9200/_cat/‘ 这条命令可以查看一个节点的许多信息

意思是在catAPI下支持很多操作

比如curl ‘http://192.168.204.129:9200/_cat/nodes‘ 显示节点信息

curl ‘http://192.168.204.129:9200/_cat/nodes?v‘ 显示更详细的信息

curl ‘http://192.168.204.129:9200/_cat/nodes?help‘ 获取帮助

curl ‘http://192.168.204.131:9200/_cat/indices‘ 查看索引

还有许多命令此处不做一一介绍

集群的API

例如curl ‘http://192.168.204.131:9200/_cluster/health?pretty‘ 查看健康状态

curl ‘http://192.168.204.131:9200/_cluster/health?level=indicies&pretty‘

查看到索引的那一个等级

curl ‘http://192.168.204.131:9200/_cluster/state?pretty‘

查看状态

curl ‘http://192.168.204.131:9200/_cluster/stats?pretty‘

查看统计信息

集群的API还有许多命令此处不一一做介绍

plugins:

插件扩展ES的功能

添加自定义的映射类型,自定义分析器,本地脚本,自定义发现方式

安装:
直接将插件放置于plugins目录中,目录为/usr/share/elasticsearch/plugins,使用rpm -ql elasticsearch命令查看

使用plugin脚本进行安装,脚本路径为/usr/share/elasticsearch/bin/plugin,/usr/share/elasticsearch/bin/plugin -h列出命令帮

助 -l列出已经安装的插件,-i或者--install, -u之名插件的URL

本地安装示例:/usr/share/elasticsearch/bin/plugin -i marvel -u file:///root/marvel-latest.zip

站点插件:head-master.zip marvel-latest.zip bigdesk-master.zip

这些插件在安装之后可通过浏览器直接访问

示例:http://192.168.204.129:9200/_plugin/marvel

创建文档:
curl -XPUT ‘localhost:9200/students/class1/2?pretty‘ -d ‘
> {
> "first_name": "Rong",
> "last_name": "Huang",
> "gender": "Female",
> "age": 23,
> "courses": "Luoying Shenjian"
> }‘
{
"_index" : "students",
"_type" : "class1",
"_id" : "2",
"_version" : 1,
"created" : true
}

curl -XPUT ‘localhost:9200/students/class1/1?pretty‘ -d ‘
{
"first_name": "Jing",
"last_name": "Guo",
"gender": "Male",
"age": 25,
"courses": "Xianglong Shiba Zhang"
}‘

获取文档:
~]# curl -XGET ‘localhost:9200/students/class1/2?pretty‘
{
"_index" : "students",
"_type" : "class1",
"_id" : "2",
"_version" : 1,
"found" : true,
"_source":
{
"first_name": "Rong",
"last_name": "Huang",
"gender": "Female",
"age": 23,
"courses": "Luoying Shenjian"
}
}

更新文档:

PUT方法会覆盖原有文档

如果只更新部分内容,得使用_update API

~]# curl -XPOST ‘localhost:9200/students/class1/2/_update?pretty‘ -d ‘
{
"doc": { "age": 22 }
}‘
{
"_index" : "students",
"_type" : "class1",
"_id" : "2",
"_version" : 2
}
删除文档:DETELE ~]# curl -XDELETE ‘localhost:9200/students/class1/2‘

删除索引: ~]# curl -XDELETE ‘localhost:9200/students‘

~]# curl -XGET ‘localhost:9200/_cat/indices?v‘

查询数据: Query API

ES的查询操作执行分为两个阶段:分散阶段 合并阶段

查询方式:向ES发起查询请求的方式有两种

1、通过Restful request API查询,也称为query string

2、通过发送REST request body进行

~]# curl -XGET ‘localhost:9200/students/_search?pretty‘ 不常用

~]# curl -XGET ‘localhost:9200/students/_search?pretty‘ -d ‘
> {
> "query": { "match_all": {} }
> }‘ 效果跟前一种是一样的,查询所有结果

多索引、多类型查询:

/_search:所有索引

/INDEX_NAME/_search:单索引

/INDEX1,INDEX2/_search:多索引

/s*,t*/_search 通配符

/students/class1/_search:单类型搜索

/students/class1,class2/_search:多类型搜索

Mapping和Analysis:

ES:对每一个文档,会取得其所有域的所有值,生成一个名为“_all”的域;执行查询时,如果在query_string未指定查询的域,则在

_all域上执行查询操作

curl ‘localhost:9200/students/_search?q="Xianglong"&pretty‘

curl ‘localhost:9200/students/_search?q="Xianglong%20Shiba%20Zhang"&pretty‘

curl ‘localhost:9200/students/_search?q=courses:"Xianglong%20Shiba%20Zhang"&pretty‘

curl ‘localhost:9200/students/_search?q=courses:"Xianglong"&pretty‘

前两个:表示在_all域搜索; %20代表的是一个空格

后两个:在指定的域上搜索

查询也可以在浏览器的这个地址http://192.168.204.129:9200/_plugin/marvel/sense/ 操作

注意:在指定域上搜索是需要精确匹配的

文档存储的数据类型:string, numbers, boolean, dates

查看指定类型的mapping示例:~]# curl ‘localhost:9200/students/_mapping/class1?pretty‘

ES中搜索的数据广义上可被理解为两类:

types:exact

full-text

精确值:指未经加工的原始值;在搜索时进行精确匹配;

full-text:用于引用文本中数据;判断文档在多大程序上匹配查询请求;即评估文档与用户请求查询的相关度;

为了完成full-text搜索,ES必须首先分析文本,并创建出倒排索引;倒排索引中的数据还需进行“正规化”为标准格式;

分词
正规化

即分析

分析需要由分析器进行:analyzer

分析器由三个组件构成:字符过滤器、分词器、分词过滤器

ES内置的分析器:

Standard analyzer:(默认)

Simple analyzer

Whitespace analyzer

Language analyzer

分析器不仅在创建索引时用到;在构建查询时也会用到, 在创建和查询时都用同一种分析器

时间: 2024-08-24 15:29:09

ELK的使用的相关文章

ELK学习笔记(一)安装Elasticsearch、Kibana、Logstash和X-Pack

最近在学习ELK的时候踩了不少的坑,特此写个笔记记录下学习过程. 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这样是不是感觉很繁琐和效率低下.当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收

ELK集中日志管理系统安装部署

一.简介 1.ELK介绍 ELK Stack 是 Elasticsearch.Logstash.Kibana 三个开源软件的组合.在实时数据检索和分析场合,三者通常是配合共用,而且又都先后归于 Elastic.co 公司名下,故有此简称. ELK Stack 在最近两年迅速崛起,成为机器数据分析,或者说实时日志处理领域,开源界的第一选择. ELK由三个组建构成: Elasticsearch,负责数据的索引和存储 Logstash ,负责日志的采集和格式化 Kibana,负责前端统计的展示 大致的

centos6.5下的elk部署

1.介绍 elk是实时日志分析平台,主要是为开发和运维人员提供实时的日志分析,方便人员更好的了解系统状态和代码问题. 2.elk中的e(elasticsearch): (2.1)先安装依赖包,官方文档说明使用java1.8 yum -y install java-1.8.0-openjdk 安装elasticsearch: tar zvxf elasticsearch-1.7.0.tar.gz mv elasticsearch-1.7.0 /usr/local/elasticsearch vim

ELK环境部署与群集配置

一.ELK是什么? 1.1  ELK由来 ELK是elasticsearch,logstash,kibana  这三个工具的简称 1.2  ELK三个组件的介绍 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等. Logstash是一个完全开源的工具,他可以对你的日志进行收集.过滤,并将其存储供以后使用(如,搜索). Kibana 也是一个开源和免费的工具,它Kibana可以为 L

elk系统搭建并收集nginx日志-主要步骤

一)简介 elk系统是一套目前较为流行的日志收集分析系统,主要由elasticserch,logstash,kibana三部分组成,其中elasticsearch负责数据的存储,logstash负责日志的收集过滤,kibana负责日志的可视化部分.整个工作流程为logstash收集日志,过滤后输出并保存到elasticsearch中,最后用户通过kibana从elasticsearch中读取数据并处理.本文中日志收集引入filebeat收集日志,logstash监听在5000端口并接受fileb

ELK部署logstash安装部署及应用(二)

Logstash 安装部署注意事项: Logstash基本概念: logstash收集日志基本流程: input-->codec-->filter-->codec-->output input:从哪里收集日志. filter:发出去前进行过滤 output:输出至Elasticsearch或Redis消息队列 codec:输出至前台,方便边实践边测试 数据量不大日志按照月来进行收集 如果通过logstash来采集日志,那么每个客户端都需要安装logstash 安装需要前置系统环境

CentOS 7 使用ELK套件搭建日志分析和监控平台

1 概述 ELK套件(ELK stack)是指ElasticSearch.Logstash和Kibana三件套.这三个软件可以组成一套日志分析和监控工具. 由于三个软件各自的版本号太多,建议采用ElasticSearch官网推荐的搭配组合:http://www.elasticsearch.org/overview/elkdownloads/ 2 环境准备 2.1 软件要求 本文把ELK套件部署在一台CentOS单机上. 具体的版本要求如下: 操作系统版本:CentOS 6.4: JDK版本:1.

ELK学习笔记(一)---安装ELK 5.x版

ELK日志平台是一个完整的日志分析系统,有三个开源工具构建组成,分别是:Elasticsearch.Logstash和Kibana.Elasticsearch用于数据分析和深度搜索:Logstash作用是从其他服务器上传输和转发日志,对其集中管理,进行分析:Kibana则是提供了强大的UI展示,将数据可视化. 安装ELK日志平台 ELK基础环境需要java环境,官网要求5.x版本要大于java8.而且安装方式多样化,支持zip.tar.gz.rpm包.deb包.window环境还有docker环

centos7搭建ELK Cluster集群日志分析平台(四):简单测试

续之前安装好的ELK集群 各主机:es-1 ~ es-3 :192.168.1.21/22/23 logstash: 192.168.1.24 kibana: 192.168.1.25 测试机:client: 192.168.1.26 在测试机上安装并启动filebeat 1. 下载filebeat  ~]# wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-linux-x86_64.tar.gz

elk

介绍:ELK套件(ELK stack)是指ElasticSearch.Logstash和Kibana三件套.这三个软件可以组成一套日志分析和监控工具.Logstash:负责在客户端收集日志信息ElasticSearch(es):负责将logstash 收集的信息整理存储并建立索引es会建立索引并且把日志信息存放在索引中es多节点:可做集群,会进行选举,会选出一个主节点Kibana:是一个web界面,便于日志分析 本文把ELK套件部署在一台CentOS单机上. 具体的版本要求如下: 操作系统版本: