初探ELK-elasticsearch使用小结

2016/9/12

一、安装
1、jdk 和 环境变量
支持jdk-1.7以上,推荐jdk-1.8
在环境变量配置:JAVA_HOME

2、安装
有2种方式下载,推荐缓存rpm包到本地yum源
1)直接使用rpm
wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.4.0/elasticsearch-2.4.0.rpm

2)使用yum源
[[email protected] ~]# vim /etc/yum.repos.d/elasticsearch.repo
[elasticsearch-2.x]
name=Elasticsearch repository for 2.x packages
baseurl=https://packages.elastic.co/elasticsearch/2.x/centos
gpgcheck=1
gpgkey=https://packages.elastic.co/GPG-KEY-elasticsearch
enabled=1

[[email protected] ~]# yum install elasticsearch

3)启动服务
[[email protected] ~]# chkconfig elasticsearch on
[[email protected] ~]# service elasticsearch start

3、调整配置
[[email protected] ~]# mkdir -p /data/elasticsearch
[[email protected] ~]# chown elasticsearch:elasticsearch /data/elasticsearch
[[email protected] ~]# grep ^[^#] /etc/elasticsearch/elasticsearch.yml 
cluster.name: es-test 
node.name: node-1
path.data: /data/elasticsearch
path.logs: /var/log/elasticsearch
[[email protected] ~]# service elasticsearch restart  

二、使用 REST API
1、能干啥
Check your cluster, node, and index health, status, and statistics
Administer your cluster, node, and index data and metadata
Perform CRUD (Create, Read, Update, and Delete) and search operations against your indexes
Execute advanced search operations such as paging, sorting, filtering, scripting, aggregations, and many others

使用 curl 来操作 API 的方式:
curl -X<REST Verb> <Node>:<Port>/<Index>/<Type>/<ID>

2、管理
1)健康状态
[[email protected] ~]# curl ‘localhost:9200/_cat/health?v‘
epoch      timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 
1473669150 16:32:30  es-test green           1         1      0   0    0    0        0             0                  -                100.0% 

health 的状态包括:green, yellow, red. 
Green means everything is good (cluster is fully functional),
yellow means all data is available but some replicas are not yet allocated (cluster is fully functional)
red means some data is not available for whatever reason

2)列出节点
[[email protected] ~]# curl ‘localhost:9200/_cat/nodes?v‘
host      ip        heap.percent ram.percent load node.role master name   
127.0.0.1 127.0.0.1            6          16 0.00 d         *      node-1 

3)列出索引
[[email protected] ~]# curl ‘localhost:9200/_cat/indices?v‘
health status index pri rep docs.count docs.deleted store.size pri.store.size

3、CRUD操作
1)创建索引
[[email protected] ~]# curl -XPUT ‘localhost:9200/customer?pretty‘
{
  "acknowledged" : true
}

创建了一个索引“customer”,且告知返回时使用一个 pretty-print 的方式(json)

再次列出索引
[[email protected] ~]# curl ‘localhost:9200/_cat/indices?v‘
health status index    pri rep docs.count docs.deleted store.size pri.store.size 
yellow open   customer   5   1          0            0       650b           650b 

请对比一下之前的执行结果。
请注意,这里的 health 是 yellow,因为我们目前只有一个es节点,没有副本,未做到高可用。

2)给上述索引创建一个 doc
索引 customer 类型为: "external" ,ID为:1 

[[email protected] ~]# curl -XPUT ‘localhost:9200/customer/external/1?pretty‘ -d ‘
{
  "name": "John Doe"
}‘

3)获取 doc
[[email protected] ~]# curl -XGET ‘localhost:9200/customer/external/1?pretty‘

4)重建索引
[[email protected] ~]# curl -XPUT ‘localhost:9200/customer/external/1?pretty‘ -d ‘
{
  "name": "Kelly Doe"
}‘

5)创建索引时,不指定ID,将随机生成
[[email protected] ~]# curl -XPOST ‘localhost:9200/customer/external?pretty‘ -d ‘
{
  "name": "Calvin Kern"
}‘

6)删除索引
[[email protected] ~]# curl -XDELETE ‘localhost:9200/customer?pretty‘

7)更新 doc 中的数据
[[email protected] ~]# curl -XPOST ‘localhost:9200/customer/external/1/_update?pretty‘ -d ‘
{
  "doc": { "name": "Eric Mood" }
}‘

更新并增加:
[[email protected] ~]# curl -XPOST ‘localhost:9200/customer/external/1/_update?pretty‘ -d ‘
{
  "doc": { "name": "Eric Mood", "age": 110 }
}‘

8)删除索引太直接了,如何只删除其中某个doc呢?
[[email protected] ~]# curl -XDELETE ‘localhost:9200/customer/external/1?pretty‘

4、查看数据
1)导入测试数据:
wget https://github.com/bly2k/files/blob/master/accounts.zip?raw=true -O accounts.zip
unzip accounts.zip
curl -XPOST ‘localhost:9200/bank/account/_bulk?pretty‘ --data-binary "@accounts.json"
curl ‘localhost:9200/_cat/indices?v‘

2)search
查看所有的数据:
方式一:
curl ‘localhost:9200/bank/_search?q=*&pretty‘

方式二:
curl -XPOST ‘localhost:9200/bank/_search?pretty‘ -d ‘
{
  "query": { "match_all": {} }
}‘

查看指定的数据:
curl -XPOST ‘localhost:9200/bank/_search?pretty‘ -d ‘
{
  "query": {
    "bool": {
      "must": [
        { "match": { "age": "40" } }
      ],
      "must_not": [
        { "match": { "state": "ID" } }
      ]
    }
  }
}‘

筛选数据:
curl -XPOST ‘localhost:9200/bank/_search?pretty‘ -d ‘
{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "balance": {
            "gte": 20000,
            "lte": 30000
          }
        }
      }
    }
  }
}‘

汇总数据:
curl -XPOST ‘localhost:9200/bank/_search?pretty‘ -d ‘
{
  "size": 0,
  "aggs": {
    "group_by_state": {
      "terms": {
        "field": "state"
      }
    }
  }
}‘

备注:具体内容请参考官网doc

ZYXW、参考
1、官网
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-dir-layout.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/_exploring_your_cluster.html
时间: 2024-10-19 09:21:18

初探ELK-elasticsearch使用小结的相关文章

[Big Data - ELK] ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

ELK平台介绍 在搜索ELK资料的时候,发现这篇文章比较好,于是摘抄一小段: 以下内容来自: http://baidu.blog.51cto.com/71938/1676798 日志主要包括系统日志.应用程序日志和安全日志.系统运维和开发人员可以通过日志了解服务器软硬件信息.检查配置过程中的错误及错误发生的原因.经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误. 通常,日志被分散的储存不同的设备上.如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志.这

ELK&mdash;&mdash;elasticsearch 认证

本文内容 最近 ELK 搭建完成,赶紧着手把认证做啦~要是什么人都能用 head 插件访问,可受不了~ 结果,还真经历了点坎坷~ 0x01 需求 能想到的大概有如下几点: 账号认证(登录)是必须的.解决 ES 匿名访问的问题.head 插件简单易用,可惜不提供认证功能. 要能单点登录就锦上添花了.ES 是个集群,在一个节点登录,肯定不期望换了一个节点,再登录一次吧. 若能授权管理那就更完美了.对不同的账号区别对待,控制对 ES INDEX 的访问. 对于这几个需求,应该看你更关注哪个,以及项目进

ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台

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

CentOS 7.x安装ELK(Elasticsearch+Logstash+Kibana)

第一次听到ELK,是新浪的@ARGV 介绍内部使用ELK的情况和场景,当时触动很大,原来有那么方便的方式来收集日志和展现,有了这样的工具,你干完坏事,删除日志,就已经没啥作用了. 很多企业都表示出他们很关心安全,不过他们压根就没看过和关注过自己服务器的日志,这是有点讽刺的.先把日志管理好,然后我们再去深入讨论安全. Mirantis的Fuel,已经引入ELK作为OpenStack的监控工具,所以我们也需要重点去学习一下ELK. 刚好看到一个老外的视频,介绍CentOS 7安装ELK,讲的很实在,

ELK(ElasticSearch+Logstash+Kibana)日志分析工具

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

ELK(elasticsearch+logstash+kibana)开源日志分析平台搭建

环境介绍 System:   CentOS7.2 x86_64 hostname: elk-server.huangming.org IP Address: 10.0.6.42.10.17.83.42 本篇的ELK环境为单机部署方式,即将ELK所有的软件包都安装在一台服务器上,配置如下: CPU:   4c Mem:   8G Disk:  50 一.Elasticsearch安装 1.安装jdk 1.8及以上的版本(安装过程略) [[email protected] elk]# java -v

初探 ELK - 每天5分钟玩转 Docker 容器技术(89)

在开源的日志管理方案中,最出名的莫过于 ELK 了.ELK 是三个软件的合称:Elasticsearch.Logstash.Kibana. Elasticsearch一个近乎实时查询的全文搜索引擎.Elasticsearch 的设计目标就是要能够处理和搜索巨量的日志数据. Logstash读取原始日志,并对其进行分析和过滤,然后将其转发给其他组件(比如 Elasticsearch)进行索引或存储.Logstash 支持丰富的 Input 和 Output 类型,能够处理各种应用的日志. Kiba

elk/elasticsearch+fluentd+kibana

分布式日志收集系统 日志收集系统采用elasticsearch+fluentd+kibana,用fluentd代替elk社区里的logstash,logstas的插件是最多的,同时logstash的性能和资源消耗太高,经某站大佬压力测试,在环境为2核4g的云计算服务器上,logstash写入qps极限为8000,通过结合易瑞现有询报价系统,同时也是用户3000+的项目产品,logstash负载压力显然承受不住,服务器资源消耗太严重,所以基于以上考虑采用新型日志收集产品fluentd来代替logs

[elk]elasticsearch实现冷热数据分离

本文以最新的elasticsearch-6.3.0.tar.gz为例,为了节约资源,本文将副本调为0, 无client角色 https://www.elastic.co/blog/hot-warm-architecture-in-elasticsearch-5-x 以前es2.x版本配置elasticsearch.yml 里的node.tag: hot这个配置不生效了 被改成了这个 node.attr.box_type: hot es架构 各节点的es配置 master节点: [[email p

ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程

1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id  id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储.我们可以将elasticsearch和关系型数据库进行比较,index相当于关系型数据库中的database,type相当于table,而id就相当于表中的主键,elasticsearch中一个文档存储的一个json则能视为是关系型数据库中一张表的一行数据,而ID就是他的主键,在理解了es的存储结构