当前位置:首页 > 经验 >

bin8与bin404哪个好(bin28和bin128哪个好喝)

来源:原点资讯(www.yd166.com)时间:2022-10-27 10:29:57作者:YD166手机阅读>>

阅读目录

  • 设计思路如下
  • ELK的工作流程
  • Elasticsearch的安装
  • elasticsearch的问题
  • elasticsearch的概念
  • elasticsearch的操作方法
  • elasticsearch-head的安装
  • 语言设置
  • 安装配置
  • 查询语法
  • kibana创建索引模式(手动)
  • kibana创建索引模式(自动)
  • ELK 索引生命周期管理
  • 问题解决Kibana server is not ready yet出现的原因
  • kibana可以做哪些分析
  • logstash和filebeat的对比
  • 自动创建Elasticsearch的索引
  • 关于grok语法问题解决

前言

起源许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。 在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass。后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch。第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。据说,Shay 的妻子还在等着她的食谱搜索引擎…​

设计思路如下

有3台机器

2台做elasticsearch的主副节点

1台做kibana和elasticsearch_head 由于机器匮乏我还在这台机器上部署了logstash和nginx服务(虽然下面的架构中都提到了redis等缓存,但是暂时没有加该服务,后期会研究添加上的)

先说目的:将nginx的日志通过logstash收集后发送到ela,然后kibana进行展示

环境如下 elasticsearch master 10.5.2.175:9200 elasticsearch salve 10.5.2.176:9200 logstash 172.17.211.153 启动命令: nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/agent.conf -w 10 -l /usr/local/logstash/logs/logstash-plain.log & nginx es-head: 172.16.211.143:9100 kibana: 172.16.211.143:5601

架构如下:

bin8与bin404哪个好,bin28和bin128哪个好喝(1)

加redis/kafa的原因:在生产环境中,我们的日志可能会有瞬时高峰,而这个时候如果直接存入es,可能会导致es承受不住,从而影响日志的收集和查询。

一般情况下,我们会将日志存直接放到kafka或者redis这种读写性能非常高的应用中,作为一个缓存,然后通过下游组件(例如logstash)进行消费、过滤后存入ES,然后通过可视化界面查看。

ELK的工作流程

  • logstash客户端收集到日志后将日志存入到redis之类的缓存中
  • Logstash_server将数据从redis中提取出来并根据/usr/local/logstash/patterns下的文件(文件名随意取)这里叫grok-patterns里面根据不同的日志,比如apache、nginx服务规定的不同格式来进行切割,切割完毕后将日志存入到elastaicsearch中,格式里面的key vlaue值就是els中的字段和值
  • elastaicsearch对logstash_server发送过来的值进行集群保存,提供被调用接口以及快速的搜索服务(这里还可以安装分词插件,当做搜索引擎)
  • kibana对es根据条件进行搜索并对搜索到的数据进行展示,使我们看起来更加直观。
一、elasticsearch

Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上。 Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库—无论是开源还是私有。

中文文档https://www.elastic.co/guide/cn/elasticsearch/guide/current/intro.html#intro

elasticsearch的安装

具体安装可以参考https://www.cnblogs.com/yanjieli/p/11187430.html这个教程,这里直说下配置和思路,首先懂思路,安装看教程就行。

需要有jdk环境 vim /etc/elasticsearch/jvm.options 2g 2g 1.vim /etc/elasticsearch/elasticsearch.yml http.port: 9200 discovery.zen.ping.unicast.hosts: ["10.5.2.175","10.5.2.176"] network.host: 10.5.2.175 2.vim /etc/systemd/system.conf DefaultLimitNOFILE=65536 DefaultLimitNPROC=32000 DefaultLimitMEMLOCK=infinity 3.vim /etc/security/limits.conf * soft nofile 65536 * hard nofile 65536 * soft nproc 32000 * hard nproc 32000 * hard memlock unlimited * soft memlock unlimited 4.vim /etc/sysconfig/elasticsearch JAVA_HOME=/usr/java/jdk1.8.0_151 5.vim /usr/lib/systemd/system/elasticsearch.service [Service] LimitMEMLOCK=infinity

elasticsearch的问题

启动elasticsearch失败,报找不到JAVA环境,可明明系统是有的 解决方法如下:

vim /etc/sysconfig/elasticsearch JAVA_HOME=/usr/java/jdk1.8.0_151

elasticsearch的概念

index 索引 相当于数据库里的“数据库” 他是我们存储和索引关联数据的地方

type 类数据 将一类的数据放到一起 相当于数据库中的“表”

id 相当于数据库表中的一行

  • Elastic 本质上是一个分布式数据库,允许多台服务器协同工作,每台服务器可以运行多个 Elastic 实例。单个 Elastic 实例称为一个节点(node)。一组节点构成一个集群(cluster)。
  • Elastic 会索引所有字段,经过处理后写入一个反向索引(Inverted Index)。查找数据的时候,直接查找该索引。倒排索引(反向索引)原始文档创建倒排索引列表倒排索引创建索引的流程:1) 首先把所有的原始数据进行编号,形成文档列表2) 把文档数据进行分词,得到很多的词条,以词条为索引。保存包含这些词条的文档的编号信息。搜索的过程:当用户输入任意的词条时,首先对用户输入的数据进行分词,得到用户要搜索的所有词条,然后拿着这些词条去倒排索引列表中进行匹配。找到这些词条就能找到包含这些词条的所有文档的编号。然后根据这些编号去文档列表中找到文档
  • 所以,Elastic 数据管理的顶层单位就叫做 Index(索引)。它是单个数据库的同义词。每个 Index (即数据库)的名字必须是小写。

下面的命令可以查看当前节点的所有 Index。

$ curl -X GET 'http://localhost:9200/_cat/indices?v

index 索引 相当于数据库里的“数据库” 他是我们存储和索引关联数据的地方

type 类数据 将一类的数据放到一起 相当于数据库中的“表”

id 相当于数据库表中的一行

pertty 在网页中格式化输出响应内容

elasticsearch的操作方法

官方教程在这里,我觉得这个更加实用官方教程 https://www.cnblogs.com/chuyuan/p/11380744.html

# 增加 http://10.5.103.176:9200/database1/table1 { "name": "doudou", "age": 4.5, "weight": 20, } # 查询 # 以上方法是正确的 但是再增加一个table2的是否发生如下报错 http://10.5.103.176:9200/database1/table2 { "name": "dianche1", "weight": 1000 } 原因是elastic search在6.x版本调整了, 一个index只能存储一种type。

GET /atguigu/_mapping 1. 检索文档 Mysql : select * from user where id = 1 ES : GET /atguigu/doc/1 响应结果 { "_index" : "megacorp", "_type" : "employee", "_id" : "1", "_version" : 1, "found" : true, "_source" : { "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] } } 2.简单检索 Mysql : select * from user ES : GET /megacorp/employee/_search 3.全文检索 ES : GET /megacorp/employee/_search?q=haha 查询出所有文档字段值为haha的文档 4.搜索(模糊查询) ES : GET /megacorp/employee/_search?q=hello 查询出所有文档字段值分词后包含hello的文档 5.聚合 PUT atguigu/_mapping/doc { "properties": { "interests": { "type": "text", "fielddata": true } } }

elasticsearch-head的安装

ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?elasticsearch-head将是一款专门针对于elasticsearch的客户端工具,是es的集群管理工具、数据可视化、增删改查工具。相关详细的教程在这里1 https://www.sojson.com/blog/85.html2 https://www.cnblogs.com/xuwenjin/p/8792919.html3 https://blog.csdn.net/huwei2003/article/details/40581143

一、下载head插件 https://github.com/mobz/elasticsearch-head 二、解压到任意目录 注意:为避免找不到,一定要和elasticsearch的安装目录区分开 三、安装Node.js 因为head是一个Node.js项目。所以,如果没有安装nodejs需要先安装Node.js 32位安装包下载地址: https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.tar.gz 64位安装包下载地址: https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.tar.gz 检测PATH环境变量是否配置了Node.js,打开命令行输入命令"which npm",输出如下结果: /usr/bin/npm wget https://nodejs.org/dist/latest-v8.x/node-v8.16.0.tar.gz tar xf node-v8.16.0.tar.gz cd node-v8.16.0 ./configure --prefix=/usr/local/node-v8.16 make -j 8 && make install 添加环境变量 vim /etc/profile ################nodejs############### export NODE_HOME=/usr/local/node-v8.16 export PATH=$PATH:$NODE_HOME/bin source /etc/profile node -v v8.16.0 npm -v 6.4.1 四、安装npm yum install npm -y 五、es-head安装: 解压源码包:elasticsearch-head.tar.gz 启动:cd /usr/local/src/elasticsearch-head npm run start & 访问地址是http://{你的ip地址}:9200/_plugin/head/ 在浏览器中输入:这台机器的ip 端口 http://10.5.2.220:9100/

bin8与bin404哪个好,bin28和bin128哪个好喝(2)

问题解决:在elasticsearch中没有当天的索引

头一天使用过的bj日志第二天无法收集到,原因是昨天logstash已经收集过一遍,就被打过了标签,今天再使用的话,如果这个日志是不再增加的就不会被收集,因为日志中没有新的内容进来,解决方法如下:

在logstash的config文件下的agent.conf加入以下配置 start_position =>"beginning"#检查时间戳 二、kibana

语言设置

vim config/kibana.yml i18n.locale: "en" 或者zh-CN中文 systemctl restart kibana重启即可

安装配置

重新加载systemctl配置,这个是针对centos7以上使用systemctl kibana restart命令的

systemctl daemon-reload

这里由于是二进制的安装方法,所以要设置一个systemctl start kibana.service的启动方法

1. vim /usr/lib/systemd/system/kibana.service 添加以下内容 [Unit] Description=Kibana After=network.target [Service] ExecStart=/usr/local/kibana/bin/kibana Type=simple PIDFile=/usr/local/kibana/kibana.pid Restart=always #User=es 这里我直接使用root用户进行启动 #Group=es [Install] WantedBy=default.target 2. 重新加载一下配置文件 systemctl daemon-reload 3. 启动 systemctl start kibana.service 4. 访问测试 http://10.5.2.220:5601

查询语法

参考地址1 参考地址2 参考地址3https://blog.csdn.net/u013958257/article/details/88567581

kibana查询语法基于Lucene

Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。 Lucene最初是由Doug Cutting开发的,在SourceForge的网站上提供下载。在2001年9月作为高质量的开源Java产品加入到Apache软件基金会的 Jakarta家族中

kibana在ELK阵营中用来查询展示数据elasticsearch构建在Lucene之上,过滤器语法和Lucene相同

1. 根据某个字段查询 精确匹配: agent:"Mozilla/5.0" 如果不带双引号,只要包含指定值就可以搜索到 agent:Mozilla/5.0 如果是数值类型没有以上区别 2. 数组范围查询 [7758794 TO 7758794] 表示等于,原意思是一个区间范围 指定区间: response:[100 TO 200] 大于等于指定数值的: response:[201 TO *] 小于等于指定数值的: response:[* TO 200] 3. 从指定时间到现在/或者查询指定时间前数据 2015-05-20T09:20:41.943Z之后的数据: @timestamp:{2015-05-20T09:20:41.943Z TO *} 2015-05-20T09:20:41.943Z之前的数据: @timestamp:{* TO 2015-05-20T09:20:41.943Z } 指定时间范围: @timestamp:{2015-05-20T09:20:41.943Z TO 015-05-22T09:20:41.943Z} 备注:09:20:41事实上是17:20:41,存在8个小时差 4. 正则匹配 包含指定值: request:/uploads*/ 不包含指定值: !request:/uploads*/ 5. 逻辑查询 AND(与关系数据库一样) request:/uploads*/ AND response:404 OR(与关系数据库一样) request:/uploads*/ OR response:200 组合查询: (uid OR token) AND version 6. 存在/不存在 存在host字段但不存在url字段: _exists_:host AND _missing_:url 特殊转义字符 – && || ! () {} [] ^” ~ * ? : \

bin8与bin404哪个好,bin28和bin128哪个好喝(3)

kibana创建索引模式(手动)

https://blog.csdn.net/weixin_34727238/article/details/81540692

当在els中有了当天的索引,就可以到kibana中取创建索引模式了,只是这里提供了一手动创建的方式,无法自动进行,需要本地定义脚本的方式进行自动索引的创建。

bin8与bin404哪个好,bin28和bin128哪个好喝(4)

首页 123下一页

栏目热文

bin8和bin2哪个好(bin8和bin28哪个贵)

bin8和bin2哪个好(bin8和bin28哪个贵)

你是否也跟我在初一接触葡萄酒的时候有同样的困惑,澳大利亚出产的葡萄酒,特别是知名葡萄酒品牌奔富的系列葡萄酒中,经常会出现...

2022-10-27 10:16:32查看全文 >>

q5原厂机油等级(q5机油标准说明书)

q5原厂机油等级(q5机油标准说明书)

这是一台顶配的奥迪A4L2.0T,车况及其板正,两年前小伙以15W的高性价比价格购入;自从开了这台奥迪A4L,小伙的事业...

2022-10-27 10:21:56查看全文 >>

q5 加原厂机油怎么样(q5原厂机油分普通和高端吗)

q5 加原厂机油怎么样(q5原厂机油分普通和高端吗)

老祖宗说过一句至理名言:既来之则安之!意思是一切随遇而安,既然发生了,那就要接受事实,能达到这个境界的人,哥们我由衷的钦...

2022-10-27 10:21:51查看全文 >>

q5用啥牌子机油好(老款q5用什么机油适合)

q5用啥牌子机油好(老款q5用什么机油适合)

Q5变速箱养护中卡帕姆卡米尔VIV ,...

2022-10-27 10:42:01查看全文 >>

q5换什么型号机油(q5加什么型号机油)

q5换什么型号机油(q5加什么型号机油)

粉丝的爱车奥迪Q5一直在4S店保养,车况巨整,嘎嘎板正,不烧机油,前几个月在当地4S店换过链条系统,如今18万公里,大家...

2022-10-27 10:35:57查看全文 >>

bin23和bin28区别(bin28真假)

bin23和bin28区别(bin28真假)

奔富407、389、128、葛兰许最新年份评分,奔富407有大家说的那么好吗?Penfolds 2019 COLLECT...

2022-10-27 10:45:16查看全文 >>

bin150和bin407(bin 407跟ben407区别)

bin150和bin407(bin 407跟ben407区别)

在中国,奔富(Penfolds)是最有名的澳洲葡萄酒品牌,其顶级的葛兰许(Grange)更是为人津津乐道。除此之外,奔富...

2022-10-27 10:07:58查看全文 >>

芯片bin1是好的吗(芯片有低压和高压吗)

芯片bin1是好的吗(芯片有低压和高压吗)

RTX 3090名人堂诞生五个月、RTX 3080 Ti登场一个月后,影驰奉上了自己的倾心力作:RTX 3080 Ti ...

2022-10-27 10:22:45查看全文 >>

bin 407 为什么这么贵(ben407和bin407一样吗)

bin 407 为什么这么贵(ben407和bin407一样吗)

WBO记者近日发现,奔富Bin407和Bin389的价差越拉越大,让行业人士觉得有点不可思议。在成都高新区blt精品超市...

2022-10-27 10:28:15查看全文 >>

bin28和bin2哪个好(bin28真假辨别)

bin28和bin2哪个好(bin28真假辨别)

本人2002年毕业的第一份工作就是做酒类快消品的营销策划,主要跟进的两个品牌是剑南春和新天葡萄酒。因为这样一段职业经历,...

2022-10-27 10:24:33查看全文 >>

文档排行