11:日志分析系统ELK|Elasticsearch|kibana

news2025/1/12 20:50:11

日志分析系统ELK|Elasticsearch|kibana

  • 日志分析系统ELK
    • ELK概述
    • Elasticsearch
    • 安装Elasticsearch
    • 部署Elasticsearch集群
    • Elasticsearch插件
  • 熟悉Elasticsearch的API调用
    • _cat API
    • 创建 tedu 索引使用 PUT 方式
    • 增加数据
    • 查询数据
    • 修改数据
    • 删除数据
  • Kibana
    • Kibana安装配置
    • 导入日志并绘制图表

日志分析系统ELK

ELK概述

  • Elasticsearch:负责日志检索和存储
  • Logstash:负责日志的收集和分析、处理
  • Kibana:负责日志的可视化
  • ELK是一整套解决方案,是三个软件产品的首字母缩写,很多公司都在使用 如:Sina 携程 华为 美团等
  • 这三款软件都是开源软件,通常是配合使用,而且又先后归于Elastic.co公司名下,故被简称为ELK

ELK组件在海量日志系统的运维中,可用于解决:
分布式日志数据集中查询和管理
系统监控,包含系统硬件和应用各个组件的监控
故障排查
安全信息和事件管理
报表功能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Elasticsearch

是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful API的web接口,其是用java开发的,使用apache许可条款的开源软件,是当前流程的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,快速,可靠,安装使用方便。
在这里插入图片描述

安装Elasticsearch

最低配置: 2cpu,2G内存,20G硬盘
在这里插入图片描述

步骤一:先准备一台虚拟机

1.更改主机名,配置IP,搭建第三方yum源
# 在跳板机上把 elk 软件加入自定义 yum 仓库
[root@ecs-proxy ~]# cp -a elk /var/ftp/localrepo/elk
[root@ecs-proxy ~]# cd /var/ftp/localrepo/
[root@ecs-proxy localrepo]# createrepo --update .
2.安装elasticsearch
# 配置主机名解析
[root@es-0001 ~]# vim /etc/hosts
192.168.1.41    es-0001
[root@es-0001 ~]# yum makecache
[root@es-0001 ~]# yum install -y java-1.8.0-openjdk elasticsearch
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
55:  network.host: 0.0.0.0
# 设置开机自启
[root@es-0001 ~]# systemctl enable --now elasticsearch
[root@es-0001 ~]# curl http://192.168.1.41:9200/
{
  "name" : "War Eagle",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.3.4",
    "build_hash" : "e455fd0c13dceca8dbbdbb1665d068ae55dabe3f",
    "build_timestamp" : "2016-06-30T11:24:31Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.0"
  },
  "tagline" : "You Know, for Search"
}

部署Elasticsearch集群

使用5台虚拟机组建 elasticsearch 集群
最低配置: 2cpu,2G内存,20G硬盘
虚拟机:
192.168.1.41 es-0001
192.168.1.42 es-0002
192.168.1.43 es-0003
192.168.1.44 es-0004
192.168.1.45 es-0005

1.更改hosts文件
[root@es-0001 ~]# vim  /etc/hosts
192.168.1.41    es-0001
192.168.1.42    es-0002
192.168.1.43    es-0003 
192.168.1.44    es-0004 
192.168.1.45    es-0005
2.更改配置文件
[root@es-0001 ~]# yum install -y java-1.8.0-openjdk elasticsearch
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
17:  cluster.name: my-es # 集群名称
23:  node.name: es-0001 # 本机主机名
55:  network.host: 0.0.0.0
68:  discovery.zen.ping.unicast.hosts: ["es-0001", "es-0002"] # 介绍人
[root@es-0001 ~]# systemctl enable --now elasticsearch
[root@es-0001 ~]# curl http://192.168.1.41:9200/_cluster/health?pretty
{
  "cluster_name" : "my-es",
  "status" : "green",
  "timed_out" : false,
  "number_of_nodes" : 5,
  "number_of_data_nodes" : 5,
   ... ...
}
3) 其他机器(1.42-1.45)一样操作,安装elasticsearch和java-1.8.0-openjdk,同步配置文件在步骤一已经安装了一台elasticsearch,这里只需再准备四台即可
4)访问测试,如图-1所示:
可以访问任意一台主机, 集群的节点都是5台,ES 集群验证:返回字段解析:
”status”: ”green“ 集群状态:绿色为正常、黄色表示有问题但不是很严重、红色表示严重故障
”number_of_nodes”: 5, 表示集群中节点的数量

在这里插入图片描述
在这里插入图片描述

Elasticsearch插件

  • head插件
    它展示ES集群的拓扑结构,并且可以通过它来进行索引和节点级别的操作,他提供一组针对集群的查询API,并将结果以json和表格的形式返回,它提供一些快捷菜单,用以展现集群的各种状态。
    在这里插入图片描述

在这里插入图片描述
使用 head插件访问集群
购买云主机: 1cpu,1G内存,20G硬盘,并安装 apache
虚拟机:
192.168.1.48 web

安装 apache,并把 apache 和 es-0001 服务发布到互联网上
安装 apache
[root@web ~]# yum install -y httpd
[root@web ~]# tar zxf head.tar.gz
[root@web ~]# mv elasticsearch-head /var/www/html/head
[root@web ~]# systemctl enable --now httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
2)授权访问head插件访问 es-0001
[root@es-0001 ~]# vim /etc/elasticsearch/elasticsearch.yml
# 配置文件最后追加
http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type,Content-Length
[root@es-0001 ~]# systemctl restart elasticsearch.service

在这里插入图片描述

五角星 是master 主节点 是程序内部自己选的

熟悉Elasticsearch的API调用

在这里插入图片描述
在这里插入图片描述

在Linux中curl 是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持多种请求模式,自定义请求头等强大功能,是一款综合工具。
使用格式:curl -X 请求方法 http://请求地址
curl -H 自定义请求头 http://请求地址

_cat API

_cat 关键字用来查询集群状态,节点信息等
显示详细信息(?v),显示帮助信息(?help)
例如查询集群中的master是谁

[root@localhost~]# curl -XGET http://es-0001:9200/_cat/master?v

在这里插入图片描述

创建 tedu 索引使用 PUT 方式

[root@es-0005 bin]# curl -XPUT -H "Content-Type: application/json" 'http://es-0001:9200/tedu' -d '{
    "settings":{
        "index":{
            "number_of_shards": 5, 
            "number_of_replicas": 1
        }
    }
}'
{"acknowledged":true}

增加数据

[root@es-0005 bin]# curl –XPUT -H "Content-Type: application/json" 'http://es-0001:9200/tedu/teacher/1' -d \
> '{
>   "职业": "诗人",
>   "名字": "李白",
>   "称号": "诗仙",
>   "年代": "唐"
> }' 
{"_index":"tedu","_type":"teacher","_id":"1","_version":1,"_shards":{"total":2,"successful":2,"failed":0},"created":true}

查询数据

[root@es-0005 bin]# curl -XGET http://es-0001:9200/tedu/teacher/1?pretty
{
  "_index" : "tedu",
  "_type" : "teacher",
  "_id" : "1",
  "_version" : 1,
  "found" : true,
  "_source" : {
    "职业" : "诗人",
    "名字" : "李白",
    "称号" : "诗仙",
    "年代" : "唐"
  }
}

修改数据

[root@es-0005 bin]# curl -XPOST -H "Content-Type: application/json" http://es-0001:9200/tedu/teacher/1/_update -d \
> '{ 
>     "doc": {
>         "年代": "公元701"
>     }
> }'
{"_index":"tedu","_type":"teacher","_id":"1","_version":2,"_shards":{"total":2,"successful":2,"failed":0}}

删除数据

注:删除时候可以是文档,也可以是索引,但不能是类型

[root@es-0005 bin]# curl –XDELETE -H "Content-Type: application/json" http://es-0001:9200/tedu/teacher/1
{"found":true,"_index":"tedu","_type":"teacher","_id":"1","_version":3,"_shards":{"total":2,"successful":2,"failed":0}}
[root@es-0005 bin]# curl -XDELETE -H "Content-Type: application/json" http://es-0001:9200/tedu
{"acknowledged":true}

Kibana

kibana 是数据可视化平台工具
特点:

  • 灵活的分析和可视化平台
  • 实时总结流量和数据的图标
  • 为不同的用户显示直观的界面
  • 即时分享和嵌入的仪表板

Kibana安装配置

创建虚拟机并安装 kibana
最低配置: 1cpu,1G内存,10G硬盘
虚拟机IP: 192.168.1.46 kibana

步骤一:安装kibana
1)在另一台主机,配置ip为192.168.1.46,配置yum源,更改主机名

更改hosts文件
[root@kibana ~]# vim /etc/hosts
192.168.1.41    es-0001
192.168.1.42    es-0002
192.168.1.43    es-0003
192.168.1.44    es-0004
192.168.1.45    es-0005
192.168.1.46    kibana
[root@kibana ~]# yum -y install kibana

2)更改配置文件

[root@kibana ~]# vim /etc/kibana/kibana.yml
02  server.port: 5601
07  server.host: "0.0.0.0"
28  elasticsearch.hosts: ["http://es-0002:9200", "http://es-0003:9200"]
37  kibana.index: ".kibana"
40  kibana.defaultAppId: "home"
113 i18n.locale: "zh-CN"
[root@kibana ~]# systemctl enable --now kibana

web 页面访问

Firefox  http://192.168.1.46:5601

在这里插入图片描述

导入日志并绘制图表

  • 数据导入条件:必须指定 json格式 Content-Type:application/json
  • 导入关键字:_bulk
  • HTTP方法:POST
  • url编码格式:data-binary

导入数据

[root@localhost ~]# scp  /var/ftp/localrepo/elk/*.gz root@192.168.1.46:/root/
[root@kibana ~]# gzip  -d logs.jsonl.gz 
[root@kibana ~]# curl -XPOST -H "Content-Type: application/json" http://es-0001:9200/_bulk --data-binary @logs.jsonl

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
注意: 这里没有数据的原因是导入日志的时间段不对,默认配置是最近15分钟,在这可以修改一下时间来显示
kibana修改时间,选择Lsat 15 miuntes
在这里插入图片描述
在这里插入图片描述
除了柱状图,Kibana还支持很多种展示方式
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VS连接MySQL以及找不到libmysql.dll的解决方法

VS连接数据库需要在项目中进行配置,具体可见 https://blog.csdn.net/weixin_40582034/article/details/115562097?ops_request_misc%257B%2522request%255Fid%2522%253A%2522170891897216800213058288%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522…

Java基于微信小程序的校园二手物品交易系统,附源码

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Sora:引领AI视频创作新时代(浅聊)

目录 一. 技术基础与发展二. 潜力与应用Sora的技术特点1. 高度智能的图像识别与生成能力2. 强大的语音识别与生成能力3. 创新的交互式视频编辑体验4. 高效的视频处理能力 Sora的应用场景1. 影视制作2. 教育培训3. 娱乐与游戏4. 商业广告 三. 面临的挑战四. 未来展望1. 结论2. 那…

【设计模式】5种创建型模式详解

创建型模式提供创建对象的机制,能够提升已有代码的灵活性和复用性。 常用的有:单例模式、工厂模式(工厂方法和抽象工厂)、建造者模式。不常用的有:原型模式。一、单例模式 1.1 单例模式介绍 1 ) 定义 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,此模…

选择 Python IDE(VSCode、Spyder、Visual Studio 2022和 PyCharm)

前言 当选择 Python 开发工具时,你需要考虑自己的需求、偏好和项目类型。下面是对VSCode、Spyder、Visual Studio 2022和 PyCharm的对比推荐总结: 结论 1、如果你专注于“数据科学”,选择SpyDer没错。 内容 Visual Studio Code (VS Code)…

视频和音频使用ffmpeg进行合并

1.下载ffmpeg 官网地址:https://ffmpeg.org/download.html 2.配置环境变量 此电脑右键点击 属性 - 高级系统配置 -高级 -环境变量 - 系统变量 path 新增 文件的bin路径 3.验证配置成功 ffmpeg -version 返回版本信息说明配置成功4.执行合并 ffmpeg -i 武家坡20…

淘宝镜像地址停止运行了 安装插件是失败如果解决

由于淘宝镜像目前已经停止更新运营了,所以导致在使用npm install安装无法成功 先查看一下安装镜像 npm config get registry //查看当前是不是淘宝镜像如果是新的淘宝镜像 重新安装新的淘宝镜像 npm config set registry https://registry.npmmirror.com/ 再次查看…

鸿蒙开发【WebGL】简单了解

WebGL的全称为Web Graphic Library(网页图形库),主要用于交互式渲染2D图形和3D图形。目前HarmonyOS中使用的WebGL是基于OpenGL裁剪的OpenGL ES,可以在HTML5的canvas元素对象中使用,无需使用插件,支持跨平台。WebGL程序是由JavaScr…

Linux7.9环境源码编译安装ffmpeg6.x

1.官网ffmpeg下载源码 https://ffmpeg.org/download.html#build-windows 2.未安装x264库则先安装配置 可以先查询x264库: whereis libx264 安装编译工具和依赖库: sudo yum install gcc make cmake mercurial git yasm pkgconfig autoconf automake libtool sudo…

【服务器数据恢复】ext3文件系统下硬盘坏道掉线的数据恢复案例

服务器数据恢复环境: 一台IBM某型号服务器上有16块FC硬盘组建RAID阵列。上层linux操作系统,ext3文件系统,部署有oracle数据库。 服务器故障&检测: 服务器上跑的业务突然崩溃,管理员发现服务器上有2块磁盘的指示灯…

力扣链表篇

以下刷题思路来自代码随想录以及官方题解 文章目录 203.移除链表元素707.设计链表206.反转链表24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链…

NPS配置内网穿透-Windows,PVE

Windows和PVE的区别就是下载客户端的时候一个选windows-amd64(64位的电脑)另一个选 linux-amd64(64位电脑),386对应的是32位的电脑. Releases ehang-io/nps (github.com) PVE的安装参考的是以下视频安装.利用PVE虚拟机,来打造属于自己的All In One系统吧&#xf…

ssm747普通话培训信息管理系统设计与实现(源码+调试+LW)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于ssm普通话培训信息管…

北航复试知识点总结

2024.2.25 住行 报道+机试+两天面试=4天 面试流程 (每个人大概20min,早一点到考场!) 形式:5位老师(一记录,四提问) 老师 陆峰 办公地址:北京航空航天大学新主楼H1033 电子邮箱: lufeng@buaa.edu.cn 个人主页:http://shi.buaa.edu.cn/lufeng/ 面试礼仪 于无形中…

【Python笔记-设计模式】代理模式

一、说明 代理模式是一种结构型设计模式,提供对象的替代品或其占位符。代理控制着对于原对象的访问,并允许在将请求提交给对象前后进行一些处理。 (一) 解决问题 控制对对象的访问,或在访问对象前增加额外的功能或控制访问 (二) 使用场景…

【前端素材】推荐优质后台管理系统Uena平台模板(附源码)

一、需求分析 后台管理系统(或称作管理后台、管理系统、后台管理平台)是一种专门用于管理网站、应用程序或系统后台运营的软件系统。它通常由一系列功能模块组成,为管理员提供了管理、监控和控制网站或应用程序的各个方面的工具和界面。以下…

银河麒麟操作系统安装Anaconda

下载 首先确认需要安装的版本 uname -maarch64https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?CM&OD 在上面网址中下载相应的版本 下载后,上传到服务器 安装 bash Anaconda3-2023.09-0-Linux-aarch64.sh 点击enter,继续 输入yes同意许…

【Python】Windows本地映射远程Linux服务器上的端口(解决jupyter notebook无法启动问题)

创作日志: 学习深度学习不想在本地破电脑上再安装各种软件,我就用实验室的服务器配置环境,启动jupyter notebook时脑子又瓦特了,在自己Windows电脑上打开服务器提供的网址,那肯定打不开啊,以前在其它电脑上…

【Linux】部署前后端分离项目---(Nginx自启,负载均衡)

目录 前言 一 Nginx(自启动) 2.1 Nginx的安装 2.2 设置自启动Nginx 二 Nginx负载均衡tomcat 2.1 准备两个tomcat 2.1.1 复制tomcat 2.1.2 修改server.xml文件 2.1.3 开放端口 2.2 Nginx配置 2.2.1 修改nginx.conf文件 2.2.2 重启Nginx服务 2…

Python爬虫之点触验证码的识别

点触验证码的识别 除了极验验证码,还有另一种常见且应用广泛的验证码,即点触验证码。 可能你对这个名字比较陌生,但是肯定见过类似的验证码,比如 12306 就是典型的点触验证码。 直接点击图中符合要求的图。所有答案均正确&#…