es(Elasticsearch)客户端Kibana安装使用(02Kibana安装篇)

介紹

Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash和Kibana这三个技术就是我们常说的ELK技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash担任控制层的角色,负责搜集和过滤数据。Elasticsearch担任数据持久层的角色,负责储存数据。而我们这章的主题Kibana担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在Elasticsearch中的数据。

版本声明

CenOS:7 阿里云服务器 关闭防火墙;
JDK:1.8;
Elasticsearch:7.6.1;
Kibana:7.6.1;

文章推荐

es(Elasticsearch)安装使用(01es安装篇)_少年ing的博客-CSDN博客

es(Elasticsearch)客户端Kibana安装使用(02Kibana安装篇)_少年ing的博客-CSDN博客

es(Elasticsearch)安装使用(03ik分词器安装篇)_少年ing的博客-CSDN博客

es(Elasticsearch)客户端Elasticsearch-head安装使用(04Elasticsearch-head安装篇)_少年ing的博客-CSDN博客

安裝

1.下载

注意:Elasticsearch和Kibana的版本需要对应。

下载地址

https://www.elastic.co/cn/downloads/past-releases#kibana

某云盘下载

链接:https://pan.baidu.com/s/10KlzfDsSTHP_s_p1CtTAvg 
提取码:ta4d

2.安装

因再es安装目录 所以用es用户

1)下载Kibana放之/opt目录中


2)解压kibana压缩包到es安裝目录:

tar -zxvf kibana-7.6.1-linux-x86_64.tar.gz   -C /usr/local/elasticsearch-7.6.1/


3)进入/usr/local/elasticsearch-7.6.1/kibana-7.6.1-linux-x86_64/config目录

cd config/


4)使用vim编辑器:

vim kibana.yml

   server.port: 5601
   server.host: "es的ip" # 此处不能写“localhost”,否则访问不了kibana
   elasticsearch.hosts: ["http://es的ip:9200"]  #这里是elasticsearch的访问地址

# Kibana is served by a back end server. This setting specifies the port to use.
server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: "0.0.0.0"

# Enables you to specify a path to mount Kibana at if you are running behind a proxy.
# Use the `server.rewriteBasePath` setting to tell Kibana if it should remove the basePath
# from requests it receives, and to prevent a deprecation warning at startup.
# This setting cannot end in a slash.
#server.basePath: ""

# Specifies whether Kibana should rewrite requests that are prefixed with
# `server.basePath` or require that they are rewritten by your reverse proxy.
# This setting was effectively always `false` before Kibana 6.3 and will
# default to `true` starting in Kibana 7.0.
#server.rewriteBasePath: false

# The maximum payload size in bytes for incoming server requests.
#server.maxPayloadBytes: 1048576

# The Kibana server's name.  This is used for display purposes.
#server.name: "your-hostname"

# The URLs of the Elasticsearch instances to use for all your queries.
elasticsearch.hosts: ["http://esip:9200"]

# When this setting's value is true Kibana uses the hostname specified in the server.host
# setting. When the value of this setting is false, Kibana uses the hostname of the host
# that connects to this Kibana instance.
#elasticsearch.preserveHost: true

# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
# dashboards. Kibana creates a new index if the index doesn't already exist.
kibana.index: ".kibana"

# The default application to load.
#kibana.defaultAppId: "home"

# If your Elasticsearch is protected with basic authentication, these settings provide
# the username and password that the Kibana server uses to perform maintenance on the Kibana
# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
# is proxied through the Kibana server.
#elasticsearch.username: "kibana"
#elasticsearch.password: "pass"

# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
# These settings enable SSL for outgoing requests from the Kibana server to the browser.
#server.ssl.enabled: false
#server.ssl.certificate: /path/to/your/server.crt
#server.ssl.key: /path/to/your/server.key

# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
# These files are used to verify the identity of Kibana to Elasticsearch and are required when
# xpack.security.http.ssl.client_authentication in Elasticsearch is set to required.
#elasticsearch.ssl.certificate: /path/to/your/client.crt
#elasticsearch.ssl.key: /path/to/your/client.key

# Optional setting that enables you to specify a path to the PEM file for the certificate
# authority for your Elasticsearch instance.
#elasticsearch.ssl.certificateAuthorities: [ "/path/to/your/CA.pem" ]

# To disregard the validity of SSL certificates, change this setting's value to 'none'.
#elasticsearch.ssl.verificationMode: full

# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
# the elasticsearch.requestTimeout setting.
#elasticsearch.pingTimeout: 1500

# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
# must be a positive integer.
#elasticsearch.requestTimeout: 30000

# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
# headers, set this value to [] (an empty list).
#elasticsearch.requestHeadersWhitelist: [ authorization ]

# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten
# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.
#elasticsearch.customHeaders: {}

# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
#elasticsearch.shardTimeout: 30000

# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
#elasticsearch.startupTimeout: 5000

# Logs queries sent to Elasticsearch. Requires logging.verbose set to true.
#elasticsearch.logQueries: false

# Specifies the path where Kibana creates the process ID file.
#pid.file: /var/run/kibana.pid

# Enables you specify a file where Kibana stores log output.
#logging.dest: stdout

# Set the value of this setting to true to suppress all logging output.
#logging.silent: false

# Set the value of this setting to true to suppress all logging output other than error messages.
#logging.quiet: false

# Set the value of this setting to true to log all events, including system usage information
# and all requests.
#logging.verbose: false

# Set the interval in milliseconds to sample system and process performance
# metrics. Minimum is 100ms. Defaults to 5000.
#ops.interval: 5000

# Specifies locale to be used for all localizable strings, dates and number formats.
# Supported languages are the following: English - en , by default , Chinese - zh-CN .
#i18n.locale: "en"

启动Kibana

1、进入kibana安装 bin目录

 cd ./bin/

2、前台启动      (关闭服务 关闭窗口 或者ctrl+c)

./kibana

后台启动

1.  nohup ./bin/kibana &

关闭服务    根据端口查进行  然后 kill掉

lsof -i:5601     会出多个  kill 第一
 

后台关闭

页面访问

ip:5601


#查询所有索引
GET /_cat/indices?v

#查询健康
GET /_cluster/health  
#单机情况下是不需要设置副本分区数。调整副本分区数为0
PUT _settings
{
    "index" : {
        "number_of_replicas" : 0
    }
}

#查询原因
GET /_cat/shards?h=index,shard,prirep,state,unassigned.reason  

#返回未分配索引每个分片的详情和未分配的原因,
GET /_cluster/allocation/explain?pretty

#查看设置
GET /newsinfo/_settings 
#重置分片
PUT /newsinfo/_settings  
{"number_of_replicas": 0}
#重新分配
PUT /newsinfo/_settings 
{"number_of_replicas": 2}

#查看分词器 默认
POST _analyze
{
  "analyzer": "standard",
  "text": "我是中国人"
}
#ik  ik_smart 最少切分算法 
POST _analyze

    "analyzer":"ik_smart",
    "text":"我是中国人"
}

#ik  ik_max_word 最细粒度切分算法 
POST _analyze

    "analyzer":"ik_max_word",
    "text":"我是中国人"
}

#设置ik分词器
PUT school_index
{
  "settings" : {
  "index" : {
  "analysis.analyzer.default.type": "ik_max_word"
    }
  }
}
 

问题

问题1.报错 listen EADDRNOTAVAIL: address not available

 解决  因为是用的阿里运服务器

因为用的是云虚拟机,所以这里的123.57.251.57是外网ip,我们应该用内网ip才行。
但是如果写localhost的话,虽然不会报错,5601端口也是正常启动,但是你访问5601端口会被拒绝。

把server.host改为0.0.0.0就能启动和顺利访问到了。

参照 运行/bin/kibana报错FATAL Error: listen EADDRNOTAVAIL 123.57.251.57:5601 - yjssjm - 博客园

2.外网访问 记得打开 阿里云 安全组

3.重启kibana 会把es服务停止 不知道为啥

kibana使用

包括ik分词器使用


#查询所有索引
GET /_cat/indices?v

#创建索引
PUT user
{
      "mappings" : {
      "properties" : {
        "age" : {
          "type" : "integer"
        },
      
        "name" : {
          "type" : "text"
        },
         "name2" : {
          "type" : "keyword"
        },
           "name3" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword",
              "ignore_above" : 256
            }
          }
        },
        "hobby" : {
          "type" : "text"
        }
      }
    }
}

#查询索引 类型
GET user/_mapping

#查询索引下所有文档
GET user/_search

#添加文档
PUT user/_doc/1
{
    "age": 18,
    "name": "张三风",
    "name2": "张三风",
    "name3": "张三风",
    "hobby": "爱吃饭,爱钓鱼"
}

PUT user/_doc/2
{
    "age": 18,
    "name": "张三",
    "name2": "张三",
    "name3": "张三",
    "hobby": "爱吃饭,爱钓鱼,爱祖国"
}

#按条件查询  类型 keyword查询时条件只能全匹配    text全文索引查询,查询时会先分词,然后用分词去匹配查询
#keyword+text类型,一个字段两种类型,可以全匹配,也可以全文索引查询
# keyword
GET user/_search
{
 "query": {
   "term": {
     "name2": {
       "value": "张三"
     }
   }
 }
}

# text  使用match
GET user/_search
{
 "query": {
   "match": {
     "name": "张三"
   }
 }
}
#keyword+text查询例子,name3(text+keyword)的查询。
GET user/_search
{
 "query": {
   "term": {
     "name3.keyword": {
        "value":"张三"
       
     }
   }
 }
}
#keyword+text查询例子 当想用全文索引查询时,用match
GET user/_search
{
 "query": {
   "match": {
     "name3": "张三"
   }
 }
}

#查看 默认分词器
POST _analyze
{
  "analyzer": "standard",
  "text": "爱祖国"
}
#ik  ik_smart 最少切分算法
POST _analyze
{
    "analyzer":"ik_smart",
    "text":"爱祖国"
}

#ik  ik_max_word 最细粒度切分算法
POST _analyze
{
    "analyzer":"ik_max_word",
    "text":"爱祖国"
}


#创建索引的时候,text类型如果没指定使用分词器,就会默认内置的分词器,所以使用ik分词器时,创建索引时需要指定。
PUT user2
{
      "mappings" : {
      "properties" : {
        "age" : {
          "type" : "integer"
        },
      
        "name" : {
          "type" : "text",
          "analyzer": "ik_max_word",
         "search_analyzer" : "ik_max_word"
         
        },
         "name2" : {
          "type" : "keyword"
        },
           "name3" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
            "type" : "keyword",
            "ignore_above" : 256
            }
          },
          "analyzer": "ik_max_word",
          "search_analyzer": "ik_max_word"
        },
        "hobby" : {
          "type" : "text",
          "analyzer": "ik_max_word",
         "search_analyzer" : "ik_max_word"
        }
      }
    }
}

#把user的数据复制到user2。
POST _reindex
{
  "source":{
    "index":"user"
  },
  "dest":{
    
    "index":"user2"
  }
}
#次查询user “爱祖国”,得到2数据 因采用默认分词器。
GET user/_search
{
 "query": {
   "match": {
     "hobby": "爱祖国"
   }
 }
}


#再次查询user2 “爱祖国”,得到一条想要的数据,没有多余数据。证明ik分词在索引中生效了。
GET user2/_search
{
 "query": {
   "match": {
     "hobby": "爱祖国"
   }
 }
}


#查询健康
GET /_cluster/health  
#单机情况下是不需要设置副本分区数。调整副本分区数为0
PUT _settings
{
    "index" : {
        "number_of_replicas" : 0
    }
}

#查询原因
GET /_cat/shards?h=index,shard,prirep,state,unassigned.reason  

#返回未分配索引每个分片的详情和未分配的原因,
GET /_cluster/allocation/explain?pretty

#查看设置
GET /newsinfo/_settings
#重置分片
PUT /newsinfo/_settings  
{"number_of_replicas": 0}
#重新分配
PUT /newsinfo/_settings
{"number_of_replicas": 2}

#查看分词器 默认
POST _analyze
{
  "analyzer": "standard",
  "text": "我是中国人"
}
#ik  ik_smart 最少切分算法
POST _analyze
{
    "analyzer":"ik_smart",
    "text":"我是中国人"
}

#ik  ik_max_word 最细粒度切分算法
POST _analyze
{
    "analyzer":"ik_max_word",
    "text":"中华人民共和国"
}

#设置ik分词器
PUT school_index
{
  "settings" : {
  "index" : {
  "analysis.analyzer.default.type": "ik_max_word"
    }
  }
}

参照

CentOS7下安装ElasticSearch7.6.1详细教程(单机、集群搭建)_@来杯咖啡的博客-CSDN博客_centos7安装elasticsearch

Kibana是什么,干什么用?详细入门教程_qiandeqiande的博客-CSDN博客_kibanak

Elasticsearch使用系列-ES增删查改基本操作+ik分词 - 包子wxl - 博客园

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值