ELK日志收集系统

目录

一、概述

二、组件

一、logstash

一、工作过程

二、INPUT

三、FILETER

四、OUTPUTS

二、elasticsearch

三、kibana

三、架构类型

一、ELK

二、ELKK

三、ELFK

四、ELFKK

五、EFK

四、配置ELK日志收集系统集群实验的步骤文档

五、配置ELK日志收集系统集群

一、开启三台机器

二、两台机器分别设置 hosts 文件

三、两台机器分别安装 elasticsearch 、Java环境

四、测试通讯性

五、配置文件更改

六、启动服务并查看状态

七、验证

八、查看集群健康状态

九、健康检查颜色解析

十、安装包

十一、修改配置文件

十二、启动服务

十三、网页验证及内容验证

十四、安装包

十五、三种测试

十六、网页验证

十七、logstash日志收集

十八、更改配置文件

十九、网页验证

二十、安装kibana

二十一、更改配置文件

二十二、验证

二十三、企业案例、安装httpd 和 logstash

二十四、配置文件

二十五、建立一个软连接

二十六、导入配置

二十七、输入索引验证


一、概述

ELK由三个组件构成

  1. Elasticsearch:Elasticsearch 是一个基于 Lucene 的开源搜索和分析引擎。它可以实时存储、检索和分析大量数据。Elasticsearch 提供了分布式的搜索和分析能力,支持高可用和可伸缩性。

  2. Logstash:Logstash 是一个用于收集、处理和转发日志和事件数据的开源工具。它可以从各种来源(如文件、数据库、消息队列等)收集数据,并进行过滤、转换和传输到 Elasticsearch 或其他目的地。

  3. Kibana:Kibana 是一个基于 Web 的用户界面,用于可视化和分析 Elasticsearch 中的数据。它提供了丰富的图表、仪表板和搜索功能,使用户可以轻松地查询和探索数据,并创建交互式的数据可视化。

这三个组件结合在一起,构成了一个功能强大的日志和数据分析平台。Logstash 用于收集和处理数据,Elasticsearch 用于存储和分析数据,而 Kibana 则提供了用户友好的界面,方便用户查询和可视化分析数据。

作用

日志收集、分析、可视化

为什么会使用elk

日志对于分析系统、应用的状态十分重要,但一般日志的量会比较大,并且比较分散。

如果管理的服务器或者程序比较少的情况我们还可以逐一登录到各个服务器去查看、分析。但如果服务器或者程序的数量比较多了之后这种方法就显得力不从心。基于此,一些集中式的日志系统也就应用而生。目前比较有名成熟的有,Splunk(商业)、FaceBook 的Scribe、Apache的Chukwa Cloudera的Fluentd、还有ELK等等。

二、组件

一、logstash

日志收集

搜集、分析、过滤日志的工具

一、工作过程

一般工作方式为c/s架构,Client端安装在需要收集日志的服务器上,Server端负责将收到的各节点日志进行过滤、修改等操作,再一并发往Elasticsearch上去

Inputs → Filters → Outputs

输入-->过滤-->输出

二、INPUT

File:从文件系统的文件中读取,类似于tail -f命令

Syslog:在514端口上监听系统日志消息,并根据RFC3164标准进行解析

Redis:从redis service中读取

Beats:从filebeat中读取

三、FILETER

Grok:解析任意文本数据,Grok 是 Logstash 最重要的插件。它的主要作用就是将文本格式的字符串,转换成为具体的结构化的数据,配合正则表达式使用。

官方提供的grok表达式:logstash-patterns-core/patterns at main · logstash-plugins/logstash-patterns-core · GitHub

Grok在线调试:Grok Debugger

Mutate:对字段进行转换。例如对字段进行删除、替换、修改、重命名等。

Drop:丢弃一部分Events不进行处理。

Clone:拷贝Event,这个过程中也可以添加或移除字段。

Geoip:添加地理信息(为前台kibana图形化展示使用)

四、OUTPUTS

Elasticsearch:可以高效的保存数据,并且能够方便和简单的进行查询。
File:将Event数据保存到文件中。

Graphite:将Event数据发送到图形化组件中,踏实一个当前较流行的开源存储图形化展示的组件。

二、elasticsearch

日志分析

开源的日志收集、分析、存储程序

特点

分布式

零配置

自动发现

索引自动分片

索引副本机制

Restful风格接口

多数据源

自动搜索负载

三、kibana

日志可视化        Grafana

为Logstash和ElasticSearch在收集、存储的日志基础上进行分析时友好的Web界面,可以帮助汇总、分析和搜索重要数据日志。

三、架构类型

一、ELK

es        logstash      kibana

二、ELKK

es        logstash      kafka      kibana

三、ELFK

es       logstash (重量级  占用系统资源较多) 

filebeat (轻量级  占用系统资源较少)   kibana

四、ELFKK

es       logstash       filebeat       kafka       kibana

五、EFK

es       logstash       fluentd       kafka       kibana

四、配置ELK日志收集系统集群实验的步骤文档

软件包(完成集群操作需要如下软件包,注意此集群,不支持中文,所以碰到中文的地方要改正,配置文件也是一样,此集群相当耗费配置和内存,建议最少要赋予2核4G,否则会出现内存已满死机的状态

按下方流程操作即可成功配置日志收集系统

五、配置ELK日志收集系统集群

一、开启三台机器

第一台机器 IP 192.168.115.7 作为node节点1

第二台机器 IP 192.168.115.6 作为node节点2

第三台机器 IP 192.168.115.8 作为服务器访问

首先

将两台节点机器 主机分别改名为 node1 和 node2

软件包(完成集群操作需要如下软件包,注意此集群,不支持中文,所以碰到中文的地方要改正,配置文件也是一样,此集群相当耗费配置和内存,建议最少要赋予2核4G,否则会出现内存已满死机的状态

二、两台机器分别设置 hosts 文件

node1

vim /etc/hosts

node2

三、两台机器分别安装 elasticsearch 、Java环境

node1

node2 显示结果一样

四、测试通讯性

第一台服务 ping node2

第二台服务 ping node1  查看是否成功通信

注意,编译安装时间相当长,要有心理准备

五、配置文件更改

来到node1 配置  配置文件

vim /etc/elasticsearch/elasticsearch.yml

更改如下配置文件内容

更改完成后 重启服务 并将配置文件拷贝到 第二台机器 192.168.115.6 

来到第二台机器更改配置文件

六、启动服务并查看状态

重启服务,加载程序,设置开机自启

两边成功启动后,查看状态

七、验证

来到网站验证 查看节点信息

第一台结果

第二台结果

八、查看集群健康状态

验证

node1

node2

九、健康检查颜色解析

这个URL是Elasticsearch的健康检查接口。当你访问`http://192.168.115.6:9200/_cat/health`时,它将返回有关Elasticsearch集群的健康状态信息。

具体来说,以下是URL中的不同部分的含义:

- `http://`:这是用于指定使用HTTP协议进行通信的URL的前缀。
- `192.168.115.6`:这是Elasticsearch集群的主机名或IP地址。
- `9200`:这是Elasticsearch集群的HTTP REST API的默认端口。
- `/_cat/health`:这是指定要获取Elasticsearch集群健康状况的特殊端点。

通过访问该URL,你可以获取有关Elasticsearch集群健康状况的详细信息,如集群名称、节点数量、分片数量、节点状态等。健康状态信息通常以表格形式呈现,提供了对集群整体运行状况的快速了解。

健康状态的输出通常有以下几个字段:
- `epoch`:表示健康状态请求的时间戳。
- `timestamp`:显示日期和时间戳。
- `cluster`:显示集群名称。
- `status`:表示集群的整体状态,有`green`(绿色,表示健康状态)、`yellow`(黄色,表示有一些分片不可用)、`red`(红色,表示有严重问题)三种状态。
- `node.total`:显示集群中节点的总数。
- `node.data`:显示具有数据的节点数。
- `shards`:显示集群中总分片数量。
- `pri`:显示主分片数量。
- `rep`:显示副本分片数量。

根据你提供的URL `http://192.168.115.6:9200/_cat/health?v' --color`,其中的`v`和`--color`是一些参数,可以用于改变输出的格式和显示颜色。

- `v`参数是用于显示更详细的信息,例如节点的IP地址、分片的状态等。它提供了更具体的健康状态报告。
- `--color`参数是用于在终端中显示带有颜色的输出,以提高可读性。

因此,当你访问`http://192.168.115.6:9200/_cat/health?v' --color`时,它将返回对应Elasticsearch集群的健康状态信息,并以详细的形式呈现,并且终端中的输出将以带有颜色的方式显示。

请注意,这个URL在浏览器中打开可能不会显示预期的结果,因为浏览器通常不会显示控制台的颜色和格式化,所以它最适合在命令行终端中使用。

进入var下

less my-application.log

less my-application.log是一个命令,用于在终端中查看名为my-application.log的日志文件的内容。

当你执行less my-application.log时,终端上将显示文件的内容,并且你可以通过按键进行浏览和搜索。下面是一些常用的按键命令:

  • 使用上下箭头键或Page Up/Page Down键来上下滚动文件。
  • /键后输入关键字可进行搜索。按n键跳到下一个匹配项,按N键跳到上一个匹配项。
  • 输入q键来退出less的浏览。

通过使用less my-application.log命令,你可以方便地在终端中查看和浏览日志文件的内容,对于调试和故障排除非常有用。

十、安装包

在节点1上安装

十一、修改配置文件

两台服务更改配置文件

十二、启动服务

更改后启动服务

输入后,等他自己完成,在进行下一步操作(有点慢)

查看监听端口号 (成功启动)

十三、网页验证及内容验证

来到网页验证

将 localhost 改成 node1的IP

则成功可以查看到配置的两个节点 (集群健康值显示,正常)

输入内容 进行验证

curl  -XPUT  'localhost:9200/index-demo/test/1?pretty&pretty' -H  'Content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

如下图显示则说明正常  将localhost 改为ip

来到网页验证

说明成功添加

十四、安装包

十五、三种测试

测试一

输入 hello 会给回应

测试二

测试三 

十六、网页验证

来到网页验证 (多了一个索引)

十七、logstash日志收集

十八、更改配置文件

授权并编写配置文件

input {
file{
path =>"/var/log/messages"
type => "system"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.115.7:9200"]
index => "system-%{+YYYY.MM.dd}"
}
}
 

重启服务

systemctl restart logstash.service

十九、网页验证

网页验证 (多了一个system)

二十、安装kibana

安装 kibana

二十一、更改配置文件

进入配置文件更改

重启并查看监听端口

二十二、验证

网页验证 可成功访问

如下图显示则为成功

如果搜索不到则提示

二十三、企业案例、安装httpd 和 logstash

来到第三台服务器 192.168.115.8

yum 安装 httpd

二十四、配置文件

 vim /etc/logstash/conf.d/httpd.conf 更改配置文件没有则创建

input {
file{
path =>"/var/log/httpd/access_log"
type => "access"
start_position => "beginning"
}
}
output {
elasticsearch{
hosts =>["192.168.115.7:9200"]
index => "httpd_access-%{+YYYY.MM.dd}"
}
}

二十五、建立一个软连接

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

开启httpd服务

二十六、导入配置

logstash -f  /etc/logstash/conf.d/httpd.conf

二十七、输入索引验证

输入索引 则成功查看

到现在为止,ELK日志收集系统集群成功创建

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

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

相关文章

图像二值化

目录 1.固定值二值化 2.自适应阈值二值化 3.Android JNI完整代码 1.固定值二值化 固定阈值二值化是OpenCV中一种简单而常用的图像处理技术,用于将图像转换为二值图像。在固定阈值二值化中,像素值根据一个预定义的阈值进行分类,大于阈值的…

【JavaEE】Spring事务-@Transactional参数介绍-事务的隔离级别以及传播机制

【JavaEE】Spring 事务(2) 文章目录 【JavaEE】Spring 事务(2)1. Transactional 参数介绍1.1 value 和 transactionManager1.2 timeout1.3 readOnly1.4 后面四个1.5 isolation 与 propagation 2. Spring 事务隔离级别 - isolation…

利用torchvision库实现目标检测与语义分割

一、介绍 利用torchvision库实现目标检测与语义分割。 二、代码 1、目标检测 from PIL import Image import matplotlib.pyplot as plt import torchvision.transforms as T import torchvision import numpy as np import cv2 import randomCOCO_INSTANCE_CATEGORY_NAMES …

SQL server数据库-定制查询-指定查询列/行、结果排序和Like模糊查询

本篇讲述进阶查询方法,如有语句不明确,可跳转本文专栏学习基础语法 1、指定列查询 特点 只会显示你输入的列的数据,会根据你输入的顺序进行显示,可以自定义查询显示时的列名 (1)只会显示你输入的列的数…

C++ 面试题(一)--C++基础,面向对象,内存管理

目录 1.part1 C基础 1 C特点 2 说说C语言和C的区别 3 说说 C中 struct 和 class 的区别 4 include头文件的顺序以及双引号""和尖括号<>的区别 5 说说C结构体和C结构体的区别 6 导入C函数的关键字是什么&#xff0c;C编译时和C有什么不同&#xff1f; 7…

系统架构设计高级技能 · 云原生架构设计理论与实践

系列文章目录 系统架构设计高级技能 软件架构概念、架构风格、ABSD、架构复用、DSSA&#xff08;一&#xff09;【系统架构设计师】 系统架构设计高级技能 系统质量属性与架构评估&#xff08;二&#xff09;【系统架构设计师】 系统架构设计高级技能 软件可靠性分析与设计…

新能源汽车动力总成系统及技术

需要动力系统总成的请联&#xff1a;shbinzer 拆车邦 需要动力系统总成的请联&#xff1a;shbinzer 拆车邦 需要动力系统总成的请联&#xff1a;shbinzer 拆车邦 需要动力系统总成的请联&#xff1a;shbinzer 拆车邦 需要动力系统总成的请联&#xff1a;shbinzer …

使用Python构建网络爬虫:提取网页内容和图片资源

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫&#xff0c;提取网页内容和图片资源。   一、环境准备   1.安装Python环境   首先&#xff0c;确保您已经安装了Python环境。访问P…

kettle实现爬虫

步骤概览 获取请求 请求地址 东方财富网股票请求 自定义常量数据 获取HTTP请求之前&#xff0c;必须先定义一个URL常量作为HTTP client的输入 HTTP client 注&#xff1a;此处得到的数据并不是原生的json字符串&#xff0c;自己可以用文本文件输出测试以下。如下图 JavaScri…

QT登陆注册界面练习

一、界面展示 二、主要功能界面代码 #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QMainWindow(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setFixedSize(540,410); //设置固定尺寸th…

android Junit4编写自测用例

10多年的android开发经验&#xff0c;一直以来呢&#xff0c;也没有使用过android自带的测试代码编写。说来也惭愧。今天也花了点时间稍微研究了下。还挺简单。接下来就简单的说一下。 新建工程 直接默认新建一个工程&#xff0c;就会有两个目录androidTest和test(unitTest)两…

CSS中如何改变鼠标指针样式(cursor)?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS中改变鼠标指针样式&#xff08;cursor&#xff09;⭐ 示例&#xff1a;⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅…

免费OCR图像识别文字识别API

免费OCR图像识别文字识别API 一、OCR图像识别文字识别二、使用步骤1、接口2、请求参数3、请求参数示例4、接口 返回示例 三、温馨提示 一、OCR图像识别文字识别 光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;是指对文本资料的图像文件进行分析识别…

Visual Studio 2022的MFC框架——AfxWinMain全局对象和InitInstance函数

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 在看这篇帖子前&#xff0c;请先看我的另一篇帖子《Visual Studio 2022的MFC框架——应用程序向导》。 当程序调用了CWinApp类的构造…

No message found under code ‘-1‘ for locale ‘zh_CN‘.

导出中的报错&#xff1a;No message found under code -1 for locale zh_CN. 报错原因&#xff1a;页面中展示的数据和后端excel中的数据不一致导致 具体原因&#xff1a;

【记录】Truenas scale|NFSv4数据集的子目录或文件的ACL完全访问权限继承老是继承不了怎么回事

我遇到了数据集下新建文件夹或文件&#xff0c;新建的文件夹或文件没有和数据集的ACL设置相符合的情况。其根本原因是NFSv4的完全访问权限要想继承的话&#xff0c;它的访问设置权限要设置“用户”和“组”的&#xff0c;就是&#xff0c;一定要选择中文的那个设置。纯owner和g…

FairyGUI编辑器的弹窗操作【插件】

之前在FairyGUI编辑器菜单扩展中&#xff0c;我使用了App.Alert("复制失败")来提示操作是否成功。这篇则会说一下我们可以使用的弹窗提示&#xff0c;以及做到类似资源发布成功时的“发布成功”飘窗。 打开APP的API脚本&#xff0c;可以看到有很多公开方法&#xff…

数字化技术无限延伸,VR全景点亮智慧生活

随着互联网的发展&#xff0c;我们无时无刻不再享受着互联网给我们带来的便利&#xff0c;数字化生活正在无限延伸&#xff0c;各行各业也开始积极布局智能生活。要说智慧生活哪个方面应用的比较多&#xff0c;那应该就是VR全景了&#xff0c;目前VR全景已经被各个行业广泛应用…

HT for Web (Hightopo) 使用心得(6)- 3D场景环境配置(天空球,雾化,辉光,景深)

在前一篇文章《Hightopo 使用心得&#xff08;5&#xff09;- 动画的实现》中&#xff0c;我们将一个直升机模型放到了3D场景中。同时&#xff0c;还利用动画实现了让该直升机围绕山体巡逻。在这篇文章中&#xff0c;我们将对上一篇的场景进行一些环境上的丰富与美化。让场景更…

【C语言基础】变量类型,Static关键字的使用

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…