kibanashell可以做什么调用本地的shell吗

安裝 ElasticSearch + Kibana 實現中文全文搜尋與數據分析 - Soul & Shell Blog
Post navigation
本著作由&&製作,以釋出。
聾子聽到啞巴說瞎子看到鬼!
電子郵件位址
傳送到電子郵件地址
你的電子郵件地址
文章未送出─請檢查你的電子郵件地址!
電子郵件地址檢查失敗,請再試一次
抱歉,你的網誌無法透過電子郵件分享logstash使用grok正则解析日志和kibana遇到的问题 - 为程序员服务
logstash使用grok正则解析日志和kibana遇到的问题
妈蛋呀,改用logstash的原因是因为,scribe 真心搞不定,其次就是产品经理需要我开发一个可自定义的panel图表系统。
因为长时间没搞elk方案,&都忘了logstash的语法了,因为爬虫的都是我们自己定义的,这个时候需要自己手写正则了。&
logstash 本身就内置了很多程序的变量正则, 比如nginx &haproxy apahce tomcat的正则, 需要你自己指明 type格式就可以了。&
这里标记下文章的源地址, http://xiaorui.cc
那么问题来了… … &type貌似不能随便的引入,我一开始没注意 就随意用了nginx-access &结果filter里的grok正则怎么都匹配不了,很是恼火 … …&
最后干掉了type后,就可以正常的匹配了,应该没这么二b,有时间再折腾下这个问题 。&
关于grep或者是grok,大家可以在 http://grokdebug.herokuapp.com/ & 这里查询下正则的匹配。&
我经过测试后的logstash agent.conf的配置 &。&
& & file {
& & & & & & & & type =& “producer”
& & & & & & & & path =& “/home/ruifengyun/buzzspider/spider/spider.log”
& & grok & &{
& & & & pattern =& “\[(?&datetime&\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2},\d{3})\]\s(?&level&\w*)\s\”Crawl\surl:(?&url&(.*)) (?&httpcode&[0-9]{2,3})\stakes (?&cost&\d.\d\d).*”
& & redis & {
& & & & & & & &host =& &#.x.x”
& & & & & & & &data_type =&”list”
& & & & & & & &key =& “logstash:demo”
& & stdout { codec =& rubydebug}
在终端的结果是:
&message& =& &[ 14:56:55,613] INFO \&Crawl url:http://weixin.sogou.com/weixin?query=%E4%B9%90%E6%92%AD%E8%AF%97&tsn=1&interation=&type=2&interV=kKIOkrELjbkRmLkElbkTkKIMkrELjboImLkEk74TkKIRmLkEk78TkKILkbELjboN_&ie=utf8&page=7&p=&dp=1&num=100 200 takes 0.085 seconds, refer:, depth:2\&&,
&@timestamp& =& &T06:56:56.359Z&,
&@version& =& &1&,
&type& =& &producer&,
&host& =& &bj-buzz-dev01&,
&path& =& &/home/ruifengyun/buzzspider/spider/spider.log&,
&datetime& =& & 14:56:55,613&,
&level& =& &INFO&,
&url& =& &http://weixin.sogou.com/weixin?query=%E4%B9%90%E6%92%AD%E8%AF%97&tsn=1&interation=&type=2&interV=kKIOkrELjbkRmLkElbkTkKIMkrELjboImLkEk74TkKIRmLkEk78TkKILkbELjboN_&ie=utf8&page=7&p=&dp=1&num=100&,
&httpcode& =& &200&,
&cost& =& &0.08&
&message& =& &[ 14:56:55,637] INFO \&Crawl url:http://dealer.autohome.com.cn/8178/newslist.html 200 takes 0.146 seconds, refer:, depth:2\&&,
&@timestamp& =& &T06:56:56.359Z&,
&@version& =& &1&,
&type& =& &producer&,
&host& =& &bj-buzz-dev01&,
&path& =& &/home/ruifengyun/buzzspider/spider/spider.log&,
&datetime& =& & 14:56:55,637&,
&level& =& &INFO&,
&url& =& &http://dealer.autohome.com.cn/8178/newslist.html&,
&httpcode& =& &200&,
&cost& =& &0.14&
我们在kibana 3的界面上看到的结果,我这里是搜索下 时间周期里爬了sogou.com有多少次。
kibana的一个问题是, 不知道怎么写搜索的语句 。&
url:*.sogou.com* & ,我一开始以为是可以写纯正则。 kibana后端调用的是es的语法,所以你的语法要和elasticsearch想对应。&
################ 官方文档也有详细的描述,在简单把logstash官方关于grok文章翻译下。&
下面是日志的样子
55.3.244.1 GET /index.html
正则的例子
%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}
配置文件里是怎么写得?&
& & path =& “/var/log/http.log”
& & match =& [ "message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" ]
解析后,是个什么样子?&
client: 55.3.244.1
method: GET
request: /index.html
bytes: 15824
duration: 0.043
自定义正则
(?&field_name&the pattern here)
(?&queue_id&[0-9A-F]{10,11})
当然你也可以把众多的正则,放在一个集中文件里面。&
# in ./patterns/postfix&
POSTFIX_QUEUEID [0-9A-F]{10,11}
& & patterns_dir =& “./patterns”
& & match =& [ "message", "%{SYSLOGBASE} %{POSTFIX_QUEUEID:queue_id}: %{GREEDYDATA:syslog_message}" ]
############
logstash已经自带了不少的正则,如果想偷懒的话,可以在内置正则里借用下。&
USERNAME [a-zA-Z0-9._-]+
USER %{USERNAME}
INT (?:[+-]?(?:[0-9]+))
BASE10NUM (?&![0-9.+-])(?&[+-]?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)))
NUMBER (?:%{BASE10NUM})
BASE16NUM (?&![0-9A-Fa-f])(?:[+-]?(?:0x)?(?:[0-9A-Fa-f]+))
BASE16FLOAT \b(?&![0-9A-Fa-f.])(?:[+-]?(?:0x)?(?:(?:[0-9A-Fa-f]+(?:\.[0-9A-Fa-f]*)?)|(?:\.[0-9A-Fa-f]+)))\b
POSINT \b(?:[1-9][0-9]*)\b
NONNEGINT \b(?:[0-9]+)\b
WORD \b\w+\b
NOTSPACE \S+
GREEDYDATA .*
QUOTEDSTRING (?&(?&!\\)(?&”(?&\\.|[^\\"]+)+”|”"|(?&’(?&\\.|[^\\']+)+’)|”|(?&(?&\\.|[^\]+)+)|`))
UUID [A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12}
# Networking
MAC (?:%{CISCOMAC}|%{WINDOWSMAC}|%{COMMONMAC})
CISCOMAC (?:(?:[A-Fa-f0-9]{4}\.){2}[A-Fa-f0-9]{4})
WINDOWSMAC (?:(?:[A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2})
COMMONMAC (?:(?:[A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2})
IPV6 ((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?
IPV4 (?&![0-9])(?:(?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2})[.](?:25[0-5]|2[0-4][0-9]|[0-1]?[0-9]{1,2}))(?![0-9])
IP (?:%{IPV6}|%{IPV4})
HOSTNAME \b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b)
HOST %{HOSTNAME}
IPORHOST (?:%{HOSTNAME}|%{IP})
HOSTPORT (?:%{IPORHOST=~/\./}:%{POSINT})
PATH (?:%{UNIXPATH}|%{WINPATH})
UNIXPATH (?&/(?&[\w_%!$@:.,-]+|\\.)*)+
TTY (?:/dev/(pts|tty([pq])?)(\w+)?/?(?:[0-9]+))
WINPATH (?&[A-Za-z]+:|\\)(?:\\[^\\?*]*)+
URIPROTO [A-Za-z]+(\+[A-Za-z+]+)?
URIHOST %{IPORHOST}(?::%{POSINT:port})?
# uripath comes loosely from RFC1738, but mostly from what Firefox
# doesn’t turn into %XX
URIPATH (?:/[A-Za-z0-9$.+!*'(){},~:;=@#%_\-]*)+
#URIPARAM \?(?:[A-Za-z0-9]+(?:=(?:[^&]*))?(?:&(?:[A-Za-z0-9]+(?:=(?:[^&]*))?)?)*)?
URIPARAM \?[A-Za-z0-9$.+!*’|(){},~@#%&/=:;_?\-\[\]]*
URIPATHPARAM %{URIPATH}(?:%{URIPARAM})?
URI %{URIPROTO}://(?:%{USER}(?::[^@]*)?@)?(?:%{URIHOST})?(?:%{URIPATHPARAM})?
# Months: January, Feb, 3, 03, 12, December
MONTH \b(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\b
MONTHNUM (?:0?[1-9]|1[0-2])
MONTHDAY (?:(?:0[1-9])|(?:[12][0-9])|(?:3[01])|[1-9])
# Days: Monday, Tue, Thu, etc…
DAY (?:Mon(?:day)?|Tue(?:sday)?|Wed(?:nesday)?|Thu(?:rsday)?|Fri(?:day)?|Sat(?:urday)?|Sun(?:day)?)
YEAR (?&\d\d){1,2}
HOUR (?:2[0123]|[01]?[0-9])
MINUTE (?:[0-5][0-9])
# * is a leap second in most time standards and thus is valid.
SECOND (?:(?:[0-5][0-9]|60)(?:[:.,][0-9]+)?)
TIME (?!&[0-9])%{HOUR}:%{MINUTE}(?::%{SECOND})(?![0-9])
# datestamp is YYYY/MM/DD-HH:MM:SS.UUUU (or something like it)
DATE_US %{MONTHNUM}[/-]%{MONTHDAY}[/-]%{YEAR}
DATE_EU %{MONTHDAY}[./-]%{MONTHNUM}[./-]%{YEAR}
ISO8601_TIMEZONE (?:Z|[+-]%{HOUR}(?::?%{MINUTE}))
ISO8601_SECOND (?:%{SECOND}|60)
TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
DATE %{DATE_US}|%{DATE_EU}
DATESTAMP %{DATE}[- ]%{TIME}
TZ (?:[PMCE][SD]T|UTC)
DATESTAMP_RFC822 %{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME} %{TZ}
DATESTAMP_OTHER %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{TZ} %{YEAR}
# Syslog Dates: Month Day HH:MM:SS
SYSLOGTIMESTAMP %{MONTH} +%{MONTHDAY} %{TIME}
PROG (?:[\w._/%-]+)
SYSLOGPROG %{PROG:program}(?:\[%{POSINT:pid}\])?
SYSLOGHOST %{IPORHOST}
SYSLOGFACILITY &%{NONNEGINT:facility}.%{NONNEGINT:priority}&
HTTPDATE %{MONTHDAY}/%{MONTH}/%{YEAR}:%{TIME} %{INT}
# Shortcuts
QS %{QUOTEDSTRING}
# Log formats
SYSLOGBASE %{SYSLOGTIMESTAMP:timestamp} (?:%{SYSLOGFACILITY} )?%{SYSLOGHOST:logsource} %{SYSLOGPROG}:
COMMONAPACHELOG %{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] “(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})” %{NUMBER:response} (?:%{NUMBER:bytes}|-)
COMBINEDAPACHELOG %{COMMONAPACHELOG} %{QS:referrer} %{QS:agent}
# Log Levels
LOGLEVEL ([A-a]lert|ALERT|[T|t]race|TRACE|[D|d]ebug|DEBUG|[N|n]otice|NOTICE|[I|i]nfo|INFO|[W|w]arn?(?:ing)?|WARN?(?:ING)?|[E|e]rr?(?:or)?|ERR?(?:OR)?|[C|c]rit?(?:ical)?|CRIT?(?:ICAL)?|[F|f]atal|FATAL|[S|s]evere|SEVERE|EMERG(?:ENCY)?|[Ee]merg(?:ency)?)
专注于运维平台化、运维自动化、python运维
原文地址:, 感谢原作者分享。
您可能感兴趣的代码对于刚接触ES的童鞋,经常搞不明白ES的各个概念的含义。尤其对“索引”二字更是与关系型数据库混淆的不行。本文通过对比关系型数据库,将ES中常见的增、删、改、查操作进行图文呈现。能加深你对ES的理解。同时,也列举了kibana下的图形化展示。
ES Restful API GET、POST、PUT、DELETE、HEAD含义:
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息。
Mysql与Elasticsearch核心概念对比示意图
以上表为依据,
ES中的新建文档(在Index/type下)相当于Mysql中(在某Database的Table)下插入一行数据。
1、新建文档(类似mysql insert插入操作)
http://localhost:9200/blog/ariticle/1 put
"title":"New version of Elasticsearch released!",
"content":"Version 1.0 released today!",
"tags":["announce","elasticsearch","release"]
创建成功如下显示:
- "_index": "blog",
- "_type": "ariticle",
- "_id": "1 -d",
- "_version": 1,
- "_shards": {
- "total": 2,
- "successful": 1,
- "failed": 0
- "created": true
检索结果如下:
- "_index": "blog",
- "_type": "ariticle",
- "_id": "1",
- "_version": 1,
- "found": true,
- "_source": {
- "title": "New version of Elasticsearch released!",
- "content": "Version 1.0 released today!",
- "tags": [
- "announce"
- "elasticsearch"
- "release"
如果未找到会提示:
- "_index": "blog",
- "_type": "ariticle",
- "_id": "11",
- "found": false
查询全部文档如下:
具体某个细节内容检索,
查询举例1:查询cotent列包含版本为1.0的信息。
_search?pretty&q=content:1.0
- "took": 2,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "failed": 0
- "hits": {
- "total": 1,
- "max_score": 0.8784157,
- "hits": [
- "_index": "blog",
- "_type": "ariticle",
- "_id": "6",
- "_score": 0.8784157,
- "_source": {
- "title": "deep Elasticsearch!",
- "content": "Version 1.0!",
- "tags": [
- "elasticsearch"
查询举例2:查询书名title中包含“enhance”字段的数据信息:
[root@5b9dbaaa1a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘
& { "query" : {
& "term" :
& {"title" : "enhance" }
"took" : 189,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
"hits" : {
"total" : 2,
"max_score" : 0.8784157,
"hits" : [ {
"_index" : "blog",
"_type" : "ariticle",
"_id" : "4",
"_score" : 0.8784157,
"_source" : {
"title" : "enhance Elasticsearch!",
"content" : "Version 4.0!",
"tags" : [ "enhance", "elasticsearch" ]
"_index" : "blog",
"_type" : "ariticle",
"_id" : "5",
"_score" : 0.,
"_source" : {
"title" : "enhance Elasticsearch for university!",
"content" : "Version 5.0!",
"tags" : [ "enhance", "elasticsearch" ]
查询举例3:查询ID值为3,5,7的数据信息:
[root@5b9dbaaa148a ~]# curl -XGET 10.200.1.121:9200/blog/ariticle/_search?pretty -d ‘
{ "query" : {
{"_id" : [ "3", "5", "7" ] }
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
"hits" : {
"total" : 3,
"max_score" : 0.,
"hits" : [ {
"_index" : "blog",
"_type" : "ariticle",
"_id" : "5",
"_score" : 0.,
"_source" : {
"title" : "enhance Elasticsearch for university!",
"content" : "Version 5.0!",
"tags" : [ "enhance", "elasticsearch" ]
"_index" : "blog",
"_type" : "ariticle",
"_id" : "7",
"_score" : 0.,
"_source" : {
"title" : "deep Elasticsearch for university!",
"content" : "Version 2.0!",
"tags" : [ "deep", "elasticsearch", "university" ]
"_index" : "blog",
"_type" : "ariticle",
"_id" : "3",
"_score" : 0.,
"_source" : {
"title" : "init Elasticsearch for university!",
"content" : "Version 3.0!",
"tags" : [ "initialize", "elasticsearch" ]
{“script”:”ctx._source.content = \”new version 2.0 \”“}
更新后结果显示:
“_index”: “blog”,
“_type”: “ariticle”,
“_id”: “1”,
“_version”: 2,
“_shards”: {
”total”: 2,
“successful”: 1,
“failed”: 0
查询&验证更新后结果:(对比可知,版本号已经更新完毕)
- "_index": "blog",
- "_type": "ariticle",
- "_id": "1",
- "_version": 2,
- "found": true,
- "_source": {
- "title": "New version of Elasticsearch released!",
- "content": "new version 2.0 ",
- "tags": [
- "announce"
- "elasticsearch"
- "release"
`![这里写图片描述](https://img-blog.csdn.net/07353)``
注意更新文档需要在elasticsearch_win\config\elasticsearch.yml下新增以下内容:
script.groovy.sandbox.enabled: true
script.engine.groovy.inline.search: on
script.engine.groovy.inline.update: on
script.inline: on
script.indexed: on
script.engine.groovy.inline.aggs: on
index.mapper.dynamic: true
4、删除文档(类似mysql delete操作)
- "found": true,
- "_index": "blog",
- "_type": "ariticle",
- "_id": "8",
- "_version": 2,
- "_shards": {
- "total": 2,
- "successful": 1,
- "failed": 0
5、Kibana可视化分析
5.1、在索引blog上查询包含”university”字段的信息。
5.2、Kibana多维度分析
——————————————————————————————————
更多ES相关实战干货经验分享,请扫描下方【铭毅天下】微信公众号二维码关注。
(每周至少更新一篇!)
和你一起,死磕Elasticsearch!
——————————————————————————————————
日 13:31思于家中床前
作者:铭毅天下
转载请标明出处,原文地址:
如果感觉本文对您有帮助,请点击‘顶’支持一下,您的支持是我坚持写作最大的动力,谢谢!
扫码向博主提问
和你一起,死磕ELK Stack!
擅长领域:
Elasticsearch教程(八) elasticsearch delete 删除数据(Java)
Elasticsearch的删除也是很灵活的,下次我再介绍,DeleteByQuery的方式。今天就先介绍一个根据ID删除。上代码。package com.sojson.core.elasticsea...
Elasticsearch删除一个type下的所有数据
Elasticsearch删除一个type下的所有数据
elasticsearch删除index和数据
之前7个T删除一个月的hadoop审计日志删除了2T查看index
curl 'localhost:9200/_cat/indices?v'删除index
curl -X DELETE 'localh...
ElasticSearch API for JAVA 学习笔记
本篇学习笔记来源于ES官方网站的指导文档:ES JAVA API
Client是一个类,通过这个类可以实现对ES集群的各种操作:Index, Get, Delete , Search,以...
Elasticsearch 数据操作
1、curl一般命令
1)GET:获取请求对象的当前状态。
2)POST:改变对象的当前状态。
3)PUT:创建一个对象。
4)DELETE:销毁对象。
5)HEAD:请求获取对象的基础信息。...
elasticsearch-批量插入,删除,修改处理
代价较小的批量操作
与 mget 可以使我们一次取回多个文档同样的方式,bulk API 允许在单个步骤中进行多次
create 、 index 、 update 或 delete 请求。如果你需...
ElasticSearch删除记录
在es中删除记录时,主要是调用prepareDelete这个方法,该方法有多少种重载方式,还有诸多的变形,下面主要给出两个例子,以供参考。
Example 1 :
DeleteR...
Elasticsearch增,删,改,查操作深入详解
对于刚接触ES的童鞋,经常搞不明白ES的各个概念的含义。尤其对“索引”二字更是与关系型数据库混淆的不行。本文通过对比关系型数据库,将ES中常见的增删,改进,查操作进行图文呈现。能加深你对...
ElasticSearch之定时删除数据
有的时候我们在使用ES时,由于资源有限或业务需求,我们只想保存最近一段时间的数据,所以有如下脚本可以定时删除数据
delete_es_by_day.sh
# example: ...
没有更多推荐了,准备好与Kibana获得一些实践经验? 本教程将向您展示如何:
将示例数据集加载到Elasticsearch中
定义索引模式
发现并探索样本数据
可视化数据
将可视化组合到仪表板中
在开始之前,请确保已安装Kibana()并建立与Elasticsearch的连接()。 您可能还对Kibana入门视频教程感兴趣。
如果您在Elastic Cloud()上运行我们托管的Elasticsearch Service,只需单击一下即可访问Kibana。
加载样本数据
本教程需要三个数据集:
威廉莎士比亚的全部作品,适当地解析成领域。 下载。
一组带有随机生成数据的虚构帐户。 下载。
一组随机生成的日志文件。 下载。
其中两个数据集是压缩的。 要提取文件,请使用以下命令:
unzip accounts.zip
gunzip logs.jsonl.gz
莎士比亚数据集具有以下结构:
帐户数据集的结构如下:
日志数据集有许多不同的字段。 以下是本教程的重要字段:
在加载莎士比亚和日志数据集之前,必须为字段设置映射。 映射将索引中的文档划分为逻辑组,并指定字段的特征。 这些特征包括字段的可搜索性以及它是否被标记化,或者分解为单独的单词。
在Kibana Dev Tools& Console中,设置莎士比亚数据集的映射:
此映射指定数据集的字段特征:
speaker和play_name字段是关键字字段。 这些字段未分析。 即使字符串包含多个单词,它们也会被视为一个单元。
line_id和speech_number字段是整数。
日志数据集需要映射以通过应用geo_point类型将纬度和经度对标记为地理位置。
帐户数据集不需要任何映射。
此时,您已准备好使用Elasticsearch批量API来加载数据集:
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bank/account/_bulk?pretty' --data-binary @accounts.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/doc/_bulk?pretty' --data-binary @shakespeare_6.0.json
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/_bulk?pretty' --data-binary @logs.jsonl
或者对于Windows用户,在Powershell中:
Invoke-RestMethod "http://localhost:9200/bank/account/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "accounts.json"
Invoke-RestMethod "http://localhost:9200/shakespeare/doc/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "shakespeare_6.0.json"
Invoke-RestMethod "http://localhost:9200/_bulk?pretty" -Method Post -ContentType 'application/x-ndjson' -InFile "logs.jsonl"
这些命令可能需要一些时间才能执行,具体取决于可用的计算资源。
验证加载成功:
您的输出应该类似于:
please put the demo in Dev Tools:
"mappings": {
"account": {
"properties": {
in the end
"acknowledged": true,
"shards_acknowledged": true,
"index": "bank"
ELKStack日志平台——Kibana的部署安装与使用教程
http://www.linuxe.cn/post-310.htmlELKStack日志平台中的Kibana是为Elasticsearch提供的可视化平台,负责数据的美观展示。前两篇文章已经讲解到了E...
1. 定义你的索引模式匹配
2. 数据可视化:不只是发现数据
原文链接:http://blog.csdn.net/ming_311/article/details/
现在你已经安装了Kibana,现在你一步步通过本教程快速获取Kiban...
1、解压tar包[bfd@bgsbtsp0006-dqf software]$ tar -xf kibana-5.2.2-linux-x86_64.tar.gz -C /opt/2、创建软连接[bfd...
本文主要演示最新版Kibana5.6.1的环境搭建与运行。Kibana是一个开放源代码的分析和可视化平台,与Elasticsearch配套使用。你可以使用Kibana搜索、查看、并且可以与存储在Ela...
10 minute walk through
Kibana 基础入门原文地址:Kibana 基础入门博客地址:http://www.extlight.com一、前言Kibana 是一个开源的分析和可视化平台,旨在与 Elasticsearch 合...
kibana可视化页面 :kibana安装地址:5601
首先要在Management中基于Elasticsearch中已有的index建立映射(_mapping)
若Elasticsearch中...
环境:OS X 10.10.5 + JDK 1.8
一、下载ELK的三大组件
Elasticsearch下载地址: https://www.elastic.co/downloads/elast...
没有更多推荐了,}

我要回帖

更多关于 shell脚本编程100例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信