ELK极简上手

目录

引言

首先,下载相关的包

其次,安装启动elasticsearch

下一步,安装并启动logstash

最后,安装并启动kibana

进一步的,测试数据的流动


引言

最近整理电脑发现之前的一篇ELK极简入门笔记,现整理发出来,希望对感兴趣的小伙伴有帮助。

要说ELK是什么,我们先给一个引子。早期,计算机方面比较实用的技术是体系结构相关的内容。那时候,各个大学的计算机系主任大部分是体系结构方面的专家;后来,算法逐渐占据上风,开始流行起来,当年微软将谷歌作为最大的竞争对手,不无道理;再后来,人工智能开始如滔天大浪席卷了几乎所有高科技公司和高校,现在再去看各个高校的计算机系主任,不沾点人工智能的边都不好意思把简历放出来。在这个历史过程中,搜索算法一度被认为是算法皇冠上的明珠,尤其是在互联网大潮来临后,数据生产呈现爆炸式增长,如何快速准确的检索需要的数据,成为了算法工程师的终极梦想。这方面的技术仍然在不断的进化演进,ELK就是在大数据领域的一个搜索引擎成果包。简而言之,ELK由三个子包构成,E代表elasticsearch,可升缩的查找引擎;L代表logstash,这里我们比较通用的将其理解为数据解析转换器,而非日志;K代表kibana,可视化的一套组件。放在一起就是,logstash将生产的数据,按照规则,解析过滤转换为结构化的数据,提交给elasticsearch,kibana提供简洁丰富的可视化界面,方便用户查找elasticsearch中的数据。

下面看看如何搭建最基本的ELK环境。

首先,下载相关的包

官网国内下载地址过慢,可以找国内镜像下载

https://elasticsearch.thans.cn/downloads/logstash/logstash-6.4.3.tar.gz

https://artifacts.elastic.co/downloads/logstash/logstash-6.4.3.tar.gz

其次,安装启动elasticsearch

elastic 高版本出现一些错误打印,不再研究,考虑下载低版本

下载6.4版本,启动,提示killed

修改config目录下的jvm options配置文件,将虚拟机内存要求降低,从1G到512M

再次运行,提示错误can not run elasticsearch as root

因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户,用非root用户启动,提示

Exception in thread "main" java.nio.file.AccessDeniedException: /home/work/ELK/elasticsearch-6.4.3/config/jvm.options

是因为目录没有非root用户的执行权限,用root用户chmod -R 777 安装目录

然后再次启动elasticsearch,成功

在机器内部执行curl -get http://127.0.0.1:9200可以访问,说明elasticsearch启动成功

curl -get http://127.0.0.1:9200

{

  "name" : "DxD9f_v",

  "cluster_name" : "elasticsearch",

  "cluster_uuid" : "7z49ZWMyQR2QYdCfghiVkg",

  "version" : {

    "number" : "6.4.3",

    "build_flavor" : "default",

    "build_type" : "tar",

    "build_hash" : "fe40335",

    "build_date" : "2018-10-30T23:17:19.084789Z",

    "build_snapshot" : false,

    "lucene_version" : "7.4.0",

    "minimum_wire_compatibility_version" : "5.6.0",

    "minimum_index_compatibility_version" : "5.0.0"

  },

  "tagline" : "You Know, for Search"

}

但是外部网络访问不了,打开config下的yml配置文件,将里面的net host项打开,并指定外部访问的IP地址 0.0.0.0

重启服务,提示max fs过小,vm max mem过小

对max fs过小,按照网上的,修改/etc/security/limits配置文件,将65535改成65536

对于vm max mem过小,按照网上修改,将/etc/sysctl.conf配置文件,增加一行vm配置,按照elasticsearch启动时提示的错误信息,补充需要的大小,21xxx44

执行sysctl -p 使配置生效

对于第一个修改的生效,需要重新登录

之后,再次启动elasticsearch成功,在浏览器中访问192.168.0.108:9200 成功

向elasticsearch插入数据,需要指定头部

curl -XPUT 'http://localhost:9200/twitter/_doc/1?pretty' -H 'Content-Type: application/json' -d '

{

    "user": "kimchy",

    "post_date": "2009-11-15T13:12:00",

    "message": "Trying out Elasticsearch, so far so good?"

}'

获取内容

curl -XGET 'http://localhost:9200/twitter/_doc/1?pretty=true'

{

  "_index" : "twitter",

  "_type" : "_doc",

  "_id" : "1",

  "_version" : 1,

  "found" : true,

  "_source" : {

    "user" : "kimchy",

    "post_date" : "2009-11-15T13:12:00",

    "message" : "Trying out Elasticsearch, so far so good?"

  }

}

查看elasticsearch的状态

curl -X GET "localhost:9200/_cat"

可以查看到支持命令列表

 =^.^=

/_cat/allocation

/_cat/shards

/_cat/shards/{index}

/_cat/master

/_cat/nodes

/_cat/tasks

/_cat/indices

/_cat/indices/{index}

/_cat/segments

/_cat/segments/{index}

/_cat/count

/_cat/count/{index}

/_cat/recovery

/_cat/recovery/{index}

/_cat/health

/_cat/pending_tasks

/_cat/aliases

/_cat/aliases/{alias}

/_cat/thread_pool

/_cat/thread_pool/{thread_pools}

/_cat/plugins

/_cat/fielddata

/_cat/fielddata/{fields}

/_cat/nodeattrs

/_cat/repositories

/_cat/snapshots/{repository}

/_cat/templates

查看节点健康状态

curl -X GET "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

1699100535 20:22:15  elasticsearch yellow          1         1     30  30    0    0       15             0                  -                 66.7%

查看节点的状态

curl -X GET "localhost:9200/_cat/nodes?v"

ip           heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name

192.168.0.99           60          96   2    0.00    0.00     0.00 mdi       *      DxD9f_v

查看索引

curl -X GET "localhost:9200/_cat/indices?v"

health status index                           uuid                   pri rep docs.count docs.deleted store.size pri.store.size

green  open   .monitoring-kibana-6-2020.04.05 dEiKRojsQv-o22ZL7POLVA   1   0      25917            0      3.2mb          3.2mb

green  open   .monitoring-es-6-2020.04.05     dosbfiHqR_uQcDNS6KTXGw   1   0      95077          200     36.2mb         36.2mb

yellow open   bank                            9X6hpCfMRgG0Hg_pldRghA   5   1       1000            0      483kb          483kb

yellow open   blog                            TWYzd5SgRsCR5VEu1szVSg   5   1       1110            0    329.1kb        329.1kb

green  open   .monitoring-es-6-2020.04.12     L2kP2a1sRJmYv32WJiR9ug   1   0      34872            0     14.9mb         14.9mb

green  open   .monitoring-kibana-6-2020.04.13 7JMe7HYlQaKr_SEAocLXuA   1   0         15            0     81.4kb         81.4kb

green  open   .monitoring-es-6-2020.04.06     VIwdUGpxQ_q3GUNDaiBrFQ   1   0      10283          216        5mb            5mb

green  open   .monitoring-kibana-6-2020.04.04 L3uJIJ9GQ2WxtDFUVqT0Xg   1   0      13629            0      1.9mb          1.9mb

yellow open   test                            3wkfLrXHRXS-HZsWXkDYjg   5   1          2            0     10.8kb         10.8kb

green  open   .monitoring-kibana-6-2020.04.12 7okTRX0VTrya7qCKusG6kQ   1   0       9184            0      1.1mb          1.1mb

green  open   .monitoring-kibana-6-2020.04.06 Bq9YykB7Smi3IqY7KqSUew   1   0       2361            0      326kb          326kb

green  open   .monitoring-es-6-2020.04.04     X05uCpFqTtupA5x9OKFCvA   1   0      45040           46     16.7mb         16.7mb

green  open   .monitoring-kibana-6-2020.04.08 bpTl2-TdSn6hRKFG2WdPlQ   1   0          8            0     48.3kb         48.3kb

green  open   .monitoring-es-6-2020.04.13     ku_cSQXDRIG88gKRmZy3cw   1   0        147           44    234.6kb        234.6kb

green  open   .monitoring-es-6-2020.04.07     _GTr8c30Q1iam0Jq49MacQ   1   0      27084          203     11.2mb         11.2mb

green  open   .monitoring-kibana-6-2020.04.07 or0a2MePRuiQ815Q7SQKlw   1   0       7180            0   1000.2kb       1000.2kb

green  open   .monitoring-es-6-2023.11.04     UDOLcrBPSRGo0w_5XGuxuQ   1   0       3674          135      2.1mb          2.1mb

green  open   .kibana                         32YGBWOgSTK5cxPAyz1ZUA   1   0          5            0     27.5kb         27.5kb

查看索引的文档,如果不存在,会提示错误

curl -X GET "localhost:9200/_cat/indices/blog"

yellow open blog TWYzd5SgRsCR5VEu1szVSg 5 1 1110 0 329.1kb 329.1kb

查询索引中的数据,pretty会让数据美化输出,主要是按照层次结构输出,下面命令中,search应该是内置命令字

curl -X GET "localhost:9200/blog/_search?pretty"

执行accounts数据示例,注意, 会提示bulk命令需要一个回车换行,其实是在accounts文件尾部增加一个回车换行

curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"

现在就向elasticsearch中增加了bank这个索引,并有1000个文档数据

curl "localhost:9200/_cat/indices?v"

查询所有索引,可以看到有bank索引

检索特定索引,这里是刚创建的bank索引

curl -X GET "localhost:9200/bank/_search?q=*&sort=account_number:asc&pretty"

?后面是参数列表,以&分割。q表示匹配所有参数,sort表示按照accountsnumber升序排列,pretty表示美化输出

以上可以在安装包的Readme中查找到使用例子

===========================================================

下一步,安装并启动logstash

logstash-6.4.3/bin/logstash --help

Unrecognized VM option 'UseParNewGC'

Error: Could not create the Java Virtual Machine.

Error: A fatal exception has occurred. Program will exit.

注释掉config/jvm.options文件中的 -XX:+UseParNewGC 行即可

运行出现exit,查看输出日志,是因为更新了JDK到11所致,这个版本的JDK需要降低,使用jdk1.8.0,Logstash启动成功。

===========================================================

最后,安装并启动kibana

发现启动kibana后,elasticsearch就会出现killed

进一步分析发现,kibana在启动过程中会连接elasticsearch

对于killed现象初步分析可能是jvm 内存出错导致,很可能是内存不够

之前的Hadoop相关java进程都是以1g内存参数启动jvm的,在elasticsearch中将其修改为512了,这一点上两块使用java前后有所不同步

其次,是否是因为这些java进程的存在,消耗了大量jvm内存,导致后面再开新的java进程会崩溃,由于内存不够

关闭Hadoop相关进程,使用jps,重新运行elasticsearch和kibana,成功,可以通过web看到kibana的页面

jps只有elasticsearch一个进程,kibana难道不是java进程启动????

原来因为kibana是使用node.js写的,所以进程在node中。但是查找到的node进程不一定就是kibana的,

所以还需要根据端口进一步确认,直接查看5601端口的占用情况,确定下进程ID,然后在查看下node进程的ID,

如果一致,就可以确定该node进程就是kibana的进程了。

这是很关键的一点。之前出现过关闭elasticsearch后,再次启动elasticsearch后,出现kibana启动后卡住,CPU占比接近100%的情况

无意中发现此时kibana的web端仍然是可用工作的,才想起来它可能在后台工作,并没有退出。

此时,可通过netstat 查看5601端口是否仍然在工作

 netstat -anlp | grep 5601

(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

tcp        0      0 0.0.0.0:5601            0.0.0.0:*               LISTEN      78985/bin/../node/b

进一步的找到进程78985

ps aux | grep 78985

ywg       78985  1.2  8.3 1439760 184632 ?      Sl   06:59   2:37 bin/../node/bin/node --no-warnings bin/../src/cli

此即为kibana关联的node进程

===========================================================

进一步的,测试数据的流动

Logstash 的配置文件中使用了网络的例子,

input {

  file {

    path => "/var/log/bootstrap.log"         

    start_position => "beginning"

    type => "test"

  }

}

输入使用了上述日志文件,并以beginning为开始标记

使用echo命令向上述日志文件中增加内容,可以在Logstash的日志中看到新内容解析

{

    "message" => "Mytest ELK",

    "@timestamp" => 2023-11-04T14:20:08.571Z,

          "path" => "/var/log/bootstrap.log",

          "type" => "test",

          "tags" => [

        [0] "_grokparsefailure"

    ],

    "host" => "ubuntu",

    "@version" => "1"

}

从kibana中可以看到日志信息及统计信息变化

如果要添加索引项目,可以在manager中添加索引匹配模式

下一步就是熟悉elasticsearch的数据结构,这样在后续使用中才可以做到从心所欲。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/116708.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

5G物联网关相较有线网关有哪些独特优势

5G为产业物联网应用带来了质的飞跃,5G技术实现更高速率、更低延迟和更大带宽,使得物联网能够接入更多数量的设备,实现更稳定、高效的连接和数据传输,在提高生产效率的同时,也进一步促进了物联网的应用发展和升级。 针对…

心理咨询服务预约小程序的效果如何

心理咨询机构很多,随着人们生活压力提升及生活多样化,部分人群在心理方面可能会面对各种不适,因此寻找心理咨询机构成为优先选项。 对商家来说,市场中拥有很多需求客户,且具备跨区域服务性,传统线下引流拓…

面试算法51:节点值之和最大的路径

题目 在二叉树中将路径定义为顺着节点之间的连接从任意一个节点开始到达任意一个节点所经过的所有节点。路径中至少包含一个节点,不一定经过二叉树的根节点,也不一定经过叶节点。给定非空的一棵二叉树,请求出二叉树所有路径上节点值之和的最…

在pycharm中配置GPU训练环境(Anaconda)(yolov5)

目录 1. 具体的配置过程: 2. 在指定位置(路径)创建虚拟环境: 3. conda常用命令: 4: 在跑模型时候遇到的一些问题: 4.1: conda添加python解释器找不到对应的python.exe文件 4.2: 报错“OSError: [WinErr…

描述低轨星座的特点和通信挑战,以及它们在5G和B5G中的作用。

文章目录 2章4 章5章(没看)6章(没看) 2章 将卫星星座中每个物理链路中可实现的数据速率、传播延迟和多普勒频移与3GPP技术报告中的参数进行分析和比较[3]。 相关配置 面向连接的网络,预先简历链路 卫星和地面终端有…

LV.12 D16 轮询与中断 学习笔记

一、CPU与硬件的交互方式 轮询 CPU执行程序时不断地询问硬件是否需要其服务,若需要则给予其服务,若不需要一段时间后再次询问,周而复始 中断 CPU执行程序时若硬件需要其服务,对应的硬件给CPU发送中断信号&#xff0c…

Linux中的进程等待

文章目录 1.进程等待1.1进程等待必要性1.1.1为什么有进程等待这个概念1.1.2进程等待是什么?1.1.3进程等待具体干什么? 1.2进程退出方法: 2.具体代码实现 1.进程等待 1.1进程等待必要性 1.1.1为什么有进程等待这个概念 之前讲过&#xff0c…

2-爬虫-代理池搭建、代理池使用(搭建django后端测试)、爬取某视频网站、爬取某视频网站、bs4介绍和遍历文档树

1 代理池搭建 2 代理池使用 2.1 搭建django后端测试 3 爬取某视频网站 4爬取某视频网站 5 bs4介绍和遍历文档树 1 代理池搭建 # ip代理-每个设备都会有自己的IP地址-电脑有ip地址---》访问一个网站---》访问太频繁---》封ip-收费:靠谱稳定--提供api-免费&#xff…

WebGL:基础练习 / 简单学习 / demo / canvas3D

一、前置内容 canvas:理解canvas / 基础使用 / 实用demo-CSDN博客 WebGL:开始学习 / 理解 WebGL / WebGL 需要掌握哪些知识 / 应用领域 / 前端值得学WebGL吗_webgl培训-CSDN博客 二、在线运行HTML 用来运行WebGL代码,粘贴--运行&#xff…

【教3妹学编程-java基础5】java多态详解

3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包” 2哥 :3妹,什么事呀这么开心呀。 3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。 2哥&…

基于STM32HAL库看门狗(独立看门狗)-简述

目录 概述 一、开发环境 二、STM32CubeMx配置 三、编码 四、运行结果 五、总结 概述 一个成熟靠谱的项目,离不开“看门狗”的必选项,凡是人写的程序多少都会有出现bug的情况(或芯片外设受外界干扰导致故障程序卡死、跑飞的情况&#xf…

vue基于ElementUI/Plus自定义的一些组件

vue3-my-ElementPlus 源码请到GitHub下载使用MyTable、MySelect、MyPagination 置顶|Top | 使用案例: 1.0 定义表格数据(测试使用) data() {return {tableData: [],value:[],valueList: [],}; },// 构造表格测试数据// 1 第一行&#xf…

重生奇迹mu召唤师怎么加点?

召唤师在重生奇迹mu游戏里面是一个智力型的职业,所以智力自然就成为主要加点属性,但是此职业却又算是近身攻击,因为她的技能范围并不算远,而且还是呈现出一种半径趋势,一方面是攻击伤害,另一方面则是辅助造…

Python 中的 Gzip 解压

我们将介绍Python中的gzip解压。 我们还将介绍如何使用 gzip 解压缩来解压缩压缩内容。 Python 中的 Gzip 解压 Python 中构建了许多用于压缩和解压缩目的的库,但我们将介绍 Gzip 库。 它是一种流行的数据压缩工具。 我们可以使用 gzip 通过将数据编码为人类无法读…

ruby语言怎么写个通用爬虫程序?

Ruby语言爬虫是指使用Ruby编写的网络爬虫程序,用于自动化地从互联网上获取数据。其中,CRawler是一个基于文本的小型地牢爬虫,它被设计为可扩展,所有游戏数据均通过JSON文件提供,程序仅处理游戏引擎。除此之外&#xff…

【Java对象】一文读懂 Java 对象庐山真面目及指针压缩

文章目录 版本及工具介绍Java 对象结构对象头mark word 标记字mark word 标记字解析Lock Record class point 类元数据指针 实例数据对齐填充为什么需要对齐填充 常见 Java 数据类型对象分析ArrayListLongStringByteBoolean 其它指针压缩前置知识:32位操作系统为什么…

音频修复增强软件iZotope RX 10 mac中文特点

iZotope RX 10 mac是一款音频修复和增强软件。 iZotope RX 10 mac主要特点 声音修复:iZotope RX 10可以去除不良噪音、杂音、吱吱声等,使音频变得更加清晰干净。 音频增强:iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限制器等处…

宠物医院服务预约小程序的效果如何

随着养宠家庭增多及对爱宠的照顾加深,除了食品、服饰外,宠物医院近些年也迎来了较高发展,部分城市甚至聚集着众多品牌,以单店或多店品牌的方式拓展市场。 对宠物医院来说,一般都是拓展同市客户,或者多门店…

MongDB 的安装 无废话

MongDB 的安装 1 安装 MongDB https://www.mongodb.com/try/download/community-kubernetes-operator 这里我们选择 ZIP 解压到文件夹 创建 data 文件 在 data 文件夹里面创建 db 和 logs 文件夹 进入 bin 目录 输入 cmd 回车 2 启动 MongDB 输入启动命令 mongod --dbpath..\…

Technology strategy Pattern 学习笔记3-Creating the Strategy-Industry context

Creating the Strategy-Industry context 1 SWOT 1.1 create steps 1.与内部各方沟通 了解企业的人、流程和技术,包括与其它企业的不同了解哪些创新可以做竞争者及市场信息企业可以支撑的类似业务 按SWOT四象限分类,先做列表后放入象限 1.2 四象限…