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

日志分析系统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.mzph.cn/news/702937.shtml

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

相关文章

锂电池SOC估计 | PyTorch实现基于Basisformer模型的锂电池SOC估计

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 PyTorch实现基于Basisformer模型的锂电池SOC估计 锂电池SOC估计,全新【Basisformer】时间序列预测 1.采用自适应监督自监督对比学习方法学习时序特征; 2.通过双向交叉注意力机制计算历史序列和…

BL、万科、中海地产、碧桂园、华润置地、佳兆业、金地商置、龙湖、绿城、融创、时代中国、旭辉、中国建筑校招笔试题

为了帮助应聘者更好地备战地产公司的招聘考试,我将介绍以下13套校招试题资料,涵盖了24 BL、24万科、24中海地产、碧桂园、华润置地、佳兆业、金地商置、龙湖、绿城、融创、时代中国、旭辉和中国建筑等知名房地产企业,为您提供全方位的备考资源…

提高移动应用的安全性:策略与实践

提高移动应用的安全性:策略与实践 随着移动应用的普及,安全性问题变得日益重要。用户数据保护、应用逻辑安全、以及防止恶意攻击都是开发者必须关注的重点。本文将探讨如何通过一系列策略和实践来提高移动应用的安全性。 1. 数据加密与保护 敏感数据加…

2024年环境安全科学、材料工程与制造国际学术会议(ESSMEM2024)

【EI检索】2024年环境安全科学、材料工程与制造国际学术会议(ESSMEM2024) 会议简介 我们很高兴邀请您参加将在三亚举行的2024年环境安全科学、材料工程和制造国际学术会议(ESSMEM 2024)。 ESSMEM2024将汇集世界各国和地区的研究人员&…

初识Lombok

前言 最近读一些公司的业务代码,发现近几年的java项目工程中都使用了lombok,lombok是一个可以自动生成get,set、toString等模板类方法的工具框架,程序再引入lombok后,添加一个注解便可以不写get\set\toString等方法。 Lombok示例…

计算机组成原理(15)----输入/输出系统

目录 一.I/O系统的基本概念 (1)I/O硬件 (2)I/O控制方式 1.程序查询方式 2.程序中断方式 3.DMA(Direct Memory Access)控制方式 4.通道控制方式 (3)I/O软件 1.I/O指令 2.通…

全志H713/H618方案:调焦电机(相励磁法步进电机)的驱动原理、适配方法

一、篇头 全志H713平台,作为FHD投影的低成本入门方案,其公板上也配齐了许多投影使用的模组,本文即介绍投影仪调焦所用的步进电机,此模组的驱动原理、配制方法、调试方法。因为条件限制,本文采用的是H618香橙派Z3平台&…

Linux-进程-007

1进程 1.1进程基本概念 程序:存放在外存中的一段数据组成的文件 进程:是一个程序动态执行的过程,包括进程的创建,进程的调度,进程的消亡1.2进程相关命令 1.2.1打开任务管理器 【top】:动态查看当前系统…

国企招聘考试------笔试资料-校园招聘

国企招聘考试一直备受广大求职者的关注,因为国企招聘通常具有稳定的岗位、优厚的福利待遇和广阔的发展空间,因此备战国企招聘考试成为许多求职者的重要任务。为了帮助求职者更好地准备国企招聘笔试,我将为你介绍这套校招试题资料。 国企招聘…

idea集成git(实用篇)

0.Git常用命令 Git常用命令-CSDN博客 1.下载git Git - Downloads 一路傻瓜式安装即可(NEXT) 2.软件测试 在Windows桌面空白处,点击鼠标右键,弹出右键菜单 Git软件安装后,会在右键菜单中增加两个菜单 Git GUI He…

Go编译到linux运行出现 cannot execute binary file

1.初学Go就在windows上写了个"Hello,World!",在windown上编译了一下,生成了可执行文件。运行无问题 go build text.go .\text.exe Hello,World!2.但是按照网上的教程进行生成linux的可执行文件时出现报错 set CGO_ENABLED0 set GOOSlinux set GOARCHam…

程序媛的mac修炼手册-- 2024如何彻底卸载Python

啊,前段时间因为想尝试chatgpt的API,需要先创建一个python虚拟环境来安装OpenAI Python library. 结果,不出意外的出意外了,安装好OpenAI Python library后,因为身份认证问题,根本就没有获取API key的权限…

Git命令操作

什么是Git? Git是⼀个免费的,开源的分布式版本控制软件系统 git区域 存储区域:Git软件⽤于存储资源得区域。⼀般指得就是.git⽂件夹 ⼯作区域:Git软件对外提供资源得区域,此区域可⼈⼯对资源进⾏处理。 暂存区&am…

Escalate_Linux(3)--通过读取密码文件shadow来破解root用户的口令实现提权

通过读取密码文件shadow来破解root用户的口令实现提权 通过读取密码文件/etc/shadow来破解root用户的口令 ls -l /etc/shadow 普通用户无查看shadow权限 echo "cat /etc/shadow" >/tmp/ls ​ chmod 755 /tmp/ls ​ export PATH/tmp:$PATH ​ /home/user5/script…

019 Spring Boot+Vue 电影院会员管理系统(源代码+数据库+文档)

部分代码地址: https://github.com/XinChennn/xc019-cinema 一、系统介绍 cinema项目是一套电影院会员管理系统,使用前后端分离架构开发包含管理员、会员管理、会员卡管理、电影票、消费记录、数据统计等模块 二、所用技术 后端技术栈: …

RabbitMQ-消息队列:优先级队列、惰性队列

20、优先级队列 在我们系统中有一个订单催付的场景,我们的客户在天猫下的订单,淘宝会及时将订单推送给我们,如果在用户设定的时间内未付款那么就会给用户推送一条短信提醒,很简单的一个功能对吧。 但是,天猫商家对我…

【数据结构】周末作业

1.new(struct list_head*)malloc(sizeof(struct list_head*)); if(newNULL) { printf("失败\n"); return; } new->nextprev->next; prev->nextnew; return; 2.struct list_head* pprev->next; prev->nextp->next; p->next->prevpr…

【Java程序员面试专栏 算法思维】一 高频面试算法题:排序算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊排序算法,包括手撕排序算法,经典的TOPK问题以及区间合并,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间快速排序双指针+递归+基准值分…

一种基于道路分类特性的超快速车道检测算法

摘要: 本文介绍了一种新颖、简单但有效的车道检测公式。 车道检测是自动驾驶和高级驾驶员辅助系统 (ADAS) 的基本组成部分,在实际高阶驾驶辅助应用中,考虑车道保持、转向、限速等相关的控制问题,这种方式通常是通过受限的车辆计算…

MATLAB环境下基于图像处理的视网膜图像血管分割

预防糖尿病对每个人的健康至关重要,而糖尿病的早期症状在眼底视网膜血管会有所体现,如静脉血管扩张、轻度弯曲等。高血压作为常见疾病,在中国有多达2.45亿的患者。高血压的病情也会在眼底视网膜血管上有所体现,如交叉压迫征等反映…