unaheidi / unaheidi.github.io

Build a Jekyll blog in minutes, without touching the command line.
https://unaheidi.github.io/
MIT License
1 stars 0 forks source link

为啥要躲掉 ELK 呢 #15

Open unaheidi opened 3 years ago

unaheidi commented 3 years ago
unaheidi commented 3 years ago

}

output {

elasticsearch { hosts => ["localhost:9200"] index => "indexforlogstash" }

}

unaheidi commented 3 years ago

导入 csv 文件,里面有中文,出现了乱码 image

  1. 停 elasticsearch 服务,安装插件
    elasticsearch-plugin install analysis-smartcn

    也可离线安装该插件。 参考文档用 tar 进行解压,我使用的时候报错,改为 unzip 。

  1. 重启 elasticsearch 依旧乱码

  2. 把 csv 文件用 Nodepad++ 打开,保存为 UTF-8 ,kibana 再 load 该文件,中文显示正常。

unaheidi commented 3 years ago

测试 kibana 是不是强依赖 elasticsearch 服务

有多种方法:

第1种,不启动 elasticsearch ,看 kibana 是否能正常启动
第2种,在俩个服务正常运行的情况下,把 elasticsearch 停掉,看 kibana 服务的表现。
第3种,修改 elasticsearch 服务启动的端口,启动 elasticsearch, 再起送 kibana 。
unaheidi commented 3 years ago

官网文档 enable-remote-access-request-in-elasticsearch elastic报错解决

unaheidi commented 3 years ago
  1. 让 elastic 和 kibana 都在后台运行,这样我们关闭 console 服务依旧运行。
    ./bin/elasticsearch -d -p pid
    pkill -F pid
    nohup ../bin/kibana &
  2. 在 centos 上查看某个端口被哪个进程占用,这个查找场景也很常见
    sudo netstat -tulpn
  3. 下一步得设置访问权限 出错可参考
unaheidi commented 3 years ago

ELK 中的 Elasticsearch 和 Kibana 两部分已经搭建好能运行了。
我们通过 Kibana 界面上 Upload a file 的方式在 Elasticsearch 中创建了 index 。
问个问题:如果这个 file 的内容不是一成不变的,当文件变化的时候,Kibana 如何自动随之变化呢 ?
带着这个问题,我们看看 filebeat 能不能帮我们这个忙吧。

unaheidi commented 3 years ago

官网filebeat-input-types 看下来,没有我期望的从某个站点 curl 一个 csv 文件的方式。
我们先用一下读取本地 csv 文件,感受一下 filebeat 把文件的变更存到 elasticsearch 的效果吧。

得先把 filebeat 给安装起来。

  1. 安装指南
unaheidi commented 3 years ago

多么好的一句话 “You need Elasticsearch for storing and searching your data, and Kibana for visualizing and managing it.”

unaheidi commented 3 years ago

多么适合此刻的一篇文章,介绍 ingest pipeline 的 官网还是值得细细读的,kibana上可以定义 ingest node(采集点) 多好的一句话,把前后关系告诉我们了After defining the pipeline in Elasticsearch, you simply configure Filebeat to use the pipeline.

unaheidi commented 3 years ago

KQL 难用的一个场景,琢磨了好半天 我需要找到一批文章,根据这批文章的名称来查找 , 比如,KQL 输入框:

文章名称 : 学会自己重打镜像

找到的不是自己想要的结果,KQL 把包含任何一个字的都给搜出来了;其实,我想要得到的只是“学会自己重打镜像”这样的文章。
怎么办呢?

文章名称 : “学会自己重打镜像”

🔔 KQL 根据中文查询的时候,一定要注意,没有添加双引号的时候,即使两个字连在一起,每个字都会单独进行匹配。
举个例子,本来想把文章名称中包含”内测“二字的排除掉,没想到它把包含"测一测"这个也排除掉了。 :x: not 文章名称: 内测 :heavy_check_mark: "not 文章名称: ”内测" ```

unaheidi commented 3 years ago

到目前为止,终于让 E+K+F 帮我搞定 “服务号推文” 阅读报告了。 可以根据随着时间的推移,提供最新的阅读情况。
🍓 🍓 🍓

unaheidi commented 3 years ago

下一步我还想: 1) 如果 dashboard 太多了怎么办? kibana 怎么组织 dashboard 呢?

unaheidi commented 3 years ago

tips: 🔔 点 save as 可以修改 dashboard 的名称
🔔 dashboard 左上角保存按钮 和 右上角 edit 的区别 🔔 如果想创建一个只能看 dashboard 的用户,先创建一个 role 🔔 为了创建上面这类账号,无意间发现了 space 可以用来组织 dashboard

unaheidi commented 3 years ago

❓ csv 文件导入到 es 的时候,可能有些 field 不是 aggregatable ,这种类型的到时候无法根据这个 field 做统计。
image 怎么办呢?

🍀 看着下面的办法有戏。不妨重新导入 csv 试试看,记得自己手动改一下 advance 。 image

unaheidi commented 3 years ago

不深入 elasticsearch ,看来不行哦

😢 我已经遇到问题了,每周看我们服务号的用户新增多少?我现在搞不定了!!!

image

可以先从新手入门开始。

unaheidi commented 3 years ago

elastic的威力

很简单!无需进行执行管理任务,如创建一个索引或指定每个属性的数据类型之类的,可以直接只索引一个文档。Elasticsearch 默认地完成其他一切,因此所有必需的管理任务都在后台使用默认设置完成。

但为什么 Jane Smith 也作为结果返回了呢?原因是她的 about 属性里提到了 “rock” 。因为只有 “rock” 而没有 “climbing” ,所以她的相关性得分低于 John 的。

这是一个很好的案例,阐明了 Elasticsearch 如何 在 全文属性上搜索并返回相关性最强的结果。Elasticsearch中的 相关性 概念非常重要,也是完全区别于传统关系型数据库的一个概念,数据库中的一条记录要么匹配要么不匹配。

match_prase 精准搜索

unaheidi commented 3 years ago

新版本已不用 type

! [types removal] Specifying types in search requests is deprecated.

image

unaheidi commented 3 years ago

image

报错
image

解决:https://www.cnblogs.com/zhangXingSheng/p/12500327.html

从异常信息中可以看出,是因为我要聚合的字段【interests】没有进行优化,也类似没有加索引。没有优化的字段es默认是禁止聚合/排序操作的。所以需要将要聚合的字段添加优化

image

unaheidi commented 3 years ago

2021-08-11 完成 😄 这速度

image

unaheidi commented 3 years ago

过滤(不评分)与查询

filter and query

当使用于 过滤情况 时,查询被设置成一个“不评分”或者“过滤”查询。即,这个查询只是简单的问一个问题:“这篇文档是否匹配?”。回答也是非常的简单,yes 或者 no ,二者必居其一。

当使用于 查询情况 时,查询就变成了一个“评分”的查询。和不评分的查询类似,也要去判断这个文档是否匹配,同时它还需要判断这个文档匹配的有 多好(匹配程度如何)。

unaheidi commented 3 years ago

下回继续:最重要的查询