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.rhkb.cn/news/112407.html

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

相关文章

【JAVA基础】数据类型,逻辑控制

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 数据类型整型变量 int长整型变量 long单精度浮点数 float双精度浮点数 double字符类型 char字节…

C#_特性反射详解

特性是什么? 为程序元素额外添加声明信息的一种方式。 字面理解:相当于把额外信息写在干胶标签上,然后将其贴在程序集上。 反射是什么? 反射是一种能力,运行时获取程序集中的元数据。 字面理解:程序运行…

oracle 启停操作

1. 监听端口启停 # 根据实际情况 切换至oracle用户 su - oracle# 状态查看 lsnrctl stat# 启动1521端口监听 lsnrctl start# 关闭1521监听 lsnrctl stop 2. 数据库服务启停 # 立即关闭服务 shutdown immediate# 启动服务 startup

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…

linux下安装Mycat

1 官网下载mycat 官方网站: 上海云业网络科技有限公司http://www.mycat.org.cn/ github地址: MyCATApache GitHubMyCATApache has 34 repositories available. Follow their code on GitHub.https://github.com/MyCATApache 2 Mycat安装 1 把MyCat…

【Java】基础入门 (十六)--- 异常

1.异常 1.1 异常概述 异常是指程序在运行过程中出现的非正常的情况,如用户输入错误、除数为零、文件不存在、数组下标越界等。由于异常情况再程序运行过程中是难以避免的,一个良好的应用程序除了满足基本功能要求外,还应具备预见并处理可能发…

Linux服务器安装部署MongoDB数据库 – 【无公网IP远程连接】

文章目录 前言1.配置Mongodb源2.安装MongoDB数据库3.局域网连接测试4.安装cpolar内网穿透5.配置公网访问地址6.公网远程连接7.固定连接公网地址8.使用固定公网地址连接 前言 MongoDB是一个基于分布式文件存储的数据库。由 C 语言编写,旨在为 WEB 应用提供可扩展的高…

LeetCode-160. 相交链表

这是一道真的非常巧妙的题,题解思路如下: 如果让他们尾端队齐,那么从后面遍历就会很快找到第一个相交的点。但是逆序很麻烦。 于是有一个巧妙的思路诞生了,如果让短的先走完自己的再走长的,长的走完走短的,…

lib61850 学习笔记一 (概念)

IEC61850 定义60多种服务满足变电站通信需求。支持在线获取数据模型,也支持IED水平通信(GOOSE报文) 术语定义 间隔 bay: 变电站由据应公共功能紧密连接的子部分组成。 例如 介于进线或者 出线 和母线之间的断路器;二条母线之间…

mq与mqtt的关系

文章目录 mqtt 与 mq的区别mqtt 与 mq的详细区别传统消息队列RocketMQ和微消息队列MQTT对比:MQ与RPC的区别 mqtt 与 mq的区别 mqtt:一种通信协议,规范 MQ:一种通信通道(方式),也叫消息队列 MQ…

深入解析SNMP协议及其在网络设备管理中的应用

SNMP(Simple Network Management Protocol,简单网络管理协议)作为一种用于网络设备管理的协议,在实现网络设备的监控、配置和故障排除方面发挥着重要的作用。本文将深入解析SNMP协议的工作原理、重要概念和功能,并探讨…

uniapp实现:点击拨打电话,弹出电话号码列表,可以选择其中一个进行拨打

一、实现效果: 二、代码实现: 在uni-app中,使用uni.showActionSheet方法实现点击拨打电话的功能,并弹出相关的电话列表供用户选择。 当用户选择了其中一个电话后,会触发success回调函数,并通过res.tapInde…

OpenGL精简案例一

文章目录 案例一 绘制点线面定义Renderer顶点着色器片段着色器内置的特殊变量 应用场景工具ShaderHelper工具 TextResourceReader效果图如下 结论 案例一 绘制点线面 定义Renderer import android.content.Context; import android.opengl.GLES20; import android.opengl.GLSu…

Vue3.0 新特性以及使用变更总结

Vue3.0 在2020年9月正式发布了,也有许多小伙伴都热情的拥抱Vue3.0。去年年底我们新项目使用Vue3.0来开发,这篇文章就是在使用后的一个总结, 包含Vue3新特性的使用以及一些用法上的变更。 图片.png 为什么要升级Vue3 使用Vue2.x的小伙伴都熟悉…

Vue中如何为Echarts统计图设置数据

在前端界面接收后端数据后,将数据赋值给ECharts中的data时出现了,数据读取失败的问题(可能是由于数据渲染的前后顺序问题)。后通过如下方式进行了解决: 1、接下来将介绍UserController中的countUsers方法,…

vue实现富文本

效果图展示 一、安装依赖 npm install vue-quill-editor --save二、具体使用 html <template><!-- 富文本 --><quill-editorref"myQuillEditor"v-model"content":options"editorOption"blur"onEditorBlur($event)"…

【模拟】算法实战

文章目录 一、算法原理二、算法实战1. leetcode1576 替换所有的问号2. leetcode495 提莫攻击3. leetcode6 N字形变换4. leetcode38 外观数列5. leetcode1419 数青蛙 三、总结 一、算法原理 模拟就是用计算机来模拟题目中要求的操作&#xff0c;模拟题目通常具有代码量大、操作…

Docker - Docker安装MySql并启动

因为项目需要连接数据库&#xff0c;但是远程服务器上的mysql我不知道账户和密码&#xff0c;这个时候便是docker发挥作用的关键时刻了&#xff01; 目录 docker安装安装gcc卸载老docker&#xff08;如有&#xff09;安装软件包设置镜像仓库更新yum软件包索引安装docker启动doc…

2023_Spark_实验二:IDEA安装及配置

一、下载安装包 链接&#xff1a;百度网盘 请输入提取码 所在文件夹&#xff1a;大数据必备工具--》开发工具(前端后端)--》后端 下载文件名称&#xff1a;ideaIU-2019.2.3.exe &#xff08;喜欢新版本也可安装新版本&#xff0c;新旧版本会存在部分差异&#xff09; IDEA …

线性代数的学习和整理11: 子式与余子式

目录 1 原始矩阵A 2 子式&#xff08;都是行列式&#xff09; 2.1 k阶子式&#xff08;行数列数即可&#xff09; 比如1阶子式&#xff1a;因为只有1行1列 比如2阶子式&#xff1a;因为有2行2列 比如3阶子式&#xff1a;因为有3行3列 2.2 k阶主子式 {行序号数组} {列序号…