首页 > 其他分享 >ELK基础使用

ELK基础使用

时间:2023-09-19 12:07:42浏览次数:27  
标签:ELK sudo 基础 apt Elasticsearch result 使用 数据 es

一、ELK的简介

ELK 是三个开源项目的首字母缩写,分别是:

  • Elasticsearch:一个分布式全文搜索引擎,提供了文档索引和查询、分布式搜索、实时搜索、数据分析等功能。
  • Logstash:一个用于数据转换、日志收集、处理和派发的工具。它可以接收来自多种数据源的数据,并对数据进行过滤、转换和聚合等操作,并将处理后的数据输出到目标位置,如 Elasticsearch、数据库等。
  • Kibana:一个数据可视化工具,提供了强大的数据仪表板、可视化图表、搜索和查询等功能。它可以将 Elasticsearch 中的数据用图表和表格的形式展示出来,让用户可以通过仪表板更好地了解数据。

在 ELK 中,Logstash 常用于收集和预处理数据,Elasticsearch 用于存储数据,并实现搜索和查询功能,Kibana 则可以在 Elasticsearch 中的数据上创建丰富的可视化仪表板。三个组件合起来可以方便地实现日志管理和搜索、IT 基础设施监控、业务分析和数据可视化等应用场景。

二、ubuntu上面安装部署ELK

下面是在 Ubuntu 18.04 上安装部署 ELK 的步骤:

  1. 安装 Java

ELK 运行需要 Java 环境,可以通过以下命令安装 OpenJDK 8:

sudo apt update
sudo apt install -y openjdk-8-jdk
  1. 安装 Elasticsearch

可以使用 Elasticsearch 的官方 APT 仓库来安装最新版本的 Elasticsearch,执行以下命令:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install -y elasticsearch

安装完成后,使用以下命令启动 Elasticsearch 服务:

sudo systemctl start elasticsearch
  1. 安装 Kibana

可以使用 Kibana 的官方 APT 仓库来安装最新版本的 Kibana,执行以下命令:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install -y kibana

安装完成后,使用以下命令启动 Kibana 服务:

sudo systemctl start kibana
  1. 安装 Logstash

可以使用 Logstash 的官方 APT 仓库来安装最新版本的 Logstash,执行以下命令:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update
sudo apt-get install -y logstash

安装完成后,Logstash 默认会在 /etc/logstash/conf.d 目录下查找配置文件。可以在该目录下创建对应的配置文件,例如:

sudo vi /etc/logstash/conf.d/01-example.conf
input {
  file {
    path => "/var/log/syslog"
    type => "syslog"
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
  }
  stdout { codec => rubydebug }
}

上述配置会监听 /var/log/syslog 文件,将日志数据输出到 Elasticsearch,同时也会将数据在控制台输出以进行调试。

使用以下命令启动 Logstash 服务:

sudo systemctl start logstash

至此,ELK 的安装部署完成。

三、通过python将数据传递给Elasticsearch并且展示在kibana看板上面

Elasticsearch 实际上提供了一系列 Restful API 来进行存取和查询操作,可以使用 curl 等命令来进行操作,但毕竟命令行模式没那么方便,所以这里就直接介绍利用 Python 来对接 Elasticsearch 的相关方法。


Python 中对接 Elasticsearch 使用的就是一个同名的库,安装方式非常简单:


pip3 install elasticsearch

创建 Index

from elasticsearch import Elasticsearch
es = Elasticsearch([{"host": "localhost", "port": 9200}])
result = es.indices.create(index='news', ignore=400)
print(result)

删除 Index

from elasticsearch import Elasticsearch
es = Elasticsearch([{"host": "localhost", "port": 9200}])
result = es.indices.delete(index='news', ignore=[400, 404])
print(result)

插入数据

Elasticsearch 就像 MongoDB 一样,在插入数据的时候可以直接插入结构化字典数据,插入数据可以调用 create() 方法,例如这里我们插入一条新闻数据:

from elasticsearch import Elasticsearch
es = Elasticsearch([{"host": "localhost", "port": 9200}])
es.indices.create(index='news', ignore=400)

result = es.create(index='news', doc_type='politics', id=1, body=data)
print(result)

更新数据

更新数据也非常简单,我们同样需要指定数据的 id 和内容,调用 index() 方法即可(delete()方法也可以,但是目前我调用会报错),代码如下:

from elasticsearch import Elasticsearch
es = Elasticsearch([{"host": "localhost", "port": 9200}])
data = {'title': '车辆与流程管理测试2', 
        'url': 'http://10.24.98.91:8000/docs#' ,
       'date': '2023-05-18'
}
result = es.index(index='news', doc_type='politics', body=data, id=1)
print(result)

index() 方法可以代替我们完成两个操作,如果数据不存在,那就执行插入操作,如果已经存在,那就执行更新操作,非常方便。

删除数据

如果想删除一条数据可以调用 delete() 方法,指定需要删除的数据 id 即可,写法如下:

from elasticsearch import Elasticsearch
es = Elasticsearch([{"host": "localhost", "port": 9200}])
result = es.delete(index='news', doc_type='politics', id=1)
print(result)

四、数据kibana上面的看板展示

数据通过python在kibana上面建立索引(Index Management)后,创建索引模式,然后在Dashboard上面创建图表,通过Lens拖拽自定义数据展示看板

标签:ELK,sudo,基础,apt,Elasticsearch,result,使用,数据,es
From: https://blog.51cto.com/u_16270027/7523945

相关文章

  • 【接口工具ApiPost】使用Mock服务前端不用依赖后端接口实现API解耦(16)---(强力推荐本章
    释义:Mock:模仿,仿造。可理解为虚拟环境模拟数据Mock服务:模拟服务器提供API访问服务Mock服务使用路径:接口下面和Header、Query、Body、认证…Mock服务,如下图:使用前准备环境选择必须是Mock环境非mock环境mock服务是不起作用的。环境设置如下:路径:在小眼睛左边默认情况下是有一个官......
  • 【Android studio】使用 Database Inspector 调试数据库【MyAndroid】
    在AndroidStudio4.1及更高版本中,您可以利用DatabaseInspector在应用运行时检查、查询和修改应用的数据库。这对于数据库调试尤为有用。DatabaseInspector可处理普通的SQLite数据库以及在SQLite的基础上构建的库(例如Room)。注意:DatabaseInspector仅可与API级别26......
  • 编程基础
    类采用Class作为关键字进行定义的代码块,表示的是一种类别对象实例化之后的类,对类中的形参进行了赋值,赋予其真正的含义或数值方法使用def作为关键词,定义在类内的函数函数使用def作为关键词,但是没有在类内进行定义,即定义在类外属性类内的称呼,其实就是类内的变量,同一个类内......
  • 使用MediatR遇到的一个问题记录
    一直使用MediatR做进程内消息通信,到另一个项目后,也引入了MediatR。使用的时候发现一个问题,发送一次,消息会被订阅两次。查看是否手动重复注入了,并没有。然后想到这个项目使用了AutoFac,猜测是被自动注入了。查看注入逻辑,果然如此。解决办法在AutoFac注入的地方使用Where条件做筛......
  • 使用任务计划开机启动ASP.NET Core应用程序
    ASP.NETCore应用程序现在是一个控制台应用程序,在Windows上直接双击启动,但如果想让开发完成的ASP.NETCore应用程序开机启动,可以将ASP.NETCore应用程序修改成Windows服务运行,但这需要额外添加代码,也可以使用IIS来托管ASP.NETCore应用程序,但可能需要安装一些支持IIS的组件,第三个......
  • 【原创】BGP-2随笔(BGP使用场合以及在不同场合下如何建立peer关系)
        大家好,今天我给大家简单说一下BGP的使用场合,以及在不同抵涞牧诰咏⒑驮诓煌之间的peer邻接关系的建立,希望大家能够建立起一种对BGP的宏观上的概念。    BGP的使用场合:我们知道,BGP是一种能够与时俱进的无为而治的路由协议,它能够承载大量的路由,而且有着非常好的......
  • 30 秒内使用 Laf 将文本转换为萝莉音并大声朗诵
    laf一键创建云函数首先打开你的Laf在创建云函数这里看到推荐模板。没错就是函数模板,如果你点击更多模板就会发现。哦,我的老天鹅呀快看看这是什么,这就是刚刚出炉的云函数市场,这是个什么概念呢,任何人都可以在这里分享自己的云函数,别人如果想要使用只需要点一下立马同步到你的......
  • 【matplotlib基础】--几何图形
    除了绘制各类分析图形(比如柱状图,折线图,饼图等等)以外,matplotlib也可以在画布上任意绘制各类几何图形。这对于计算机图形学、几何算法和计算机辅助设计等领域非常重要。matplitlib中的patches类提供了丰富的几何对象,本篇抛砖引玉,介绍其中几种常用的几何图形绘制方法。其实matp......
  • 笔记 | QDialogButtonBox的使用
    QDialogButtonBox的基本用法QDialogButtonBox是Qt的QtWidgets模块中的一个小部件,您可以使用它轻松地添加标准按钮到对话框中。以下是一个基本的使用示例:#include<QDialog>#include<QDialogButtonBox>//创建一个对话框QDialog*dialog=newQDialog(this);//创建一个QDia......
  • 《基础语法篇》trunc的使用
    日期selectsysdatefromdual--当时日期selecttrunc(sysdate)fromdualselecttrunc(sysdate,'DD')fromdual--今天日期selecttrunc(sysdate,'d')+7fromdual--本周星期日selecttrunc(sysdate,'dy')+7fromdual--本周星期日selecttrunc(s......