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.mfbz.cn/a/97687.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

0201hdfs集群部署-hadoop-大数据学习

文章目录 1 前言2 集群规划3 hadoop安装包上传与安装3.1 上传解压 4 hadoop配置5 从节点同步和环境变量配置6 创建用户7 集群启动8 问题集8.1 Invalid URI for NameNode address (check fs.defaultFS): file:/// has no authority. 结语 1 前言 下面我们配置下单namenode节点h…

地下管线三维自动建模软件MagicPipe3D V3.0发布

2023年9月1日经纬管网建模系统MagicPipe3D V3.0正式发布,该版本经过众多用户应用和反馈,在三维地下管网建模效果、效率、适配性方面均有显著提升!MagicPipe3D本地离线参数化构建地下管网模型(包括管道、接头、附属设施等&#xff…

GPT能否辅助数学学习

GPT4.0的数学能力怎么样?我们使用镜像站进行实验,通过不同水平的数学看看GPT4.0的数学能力得到进步没有。镜像站的地址我们放在了最后,各位读者也可以自行去测试。 笔者在ChatGPT镜像站进行测试,我们的实验是让GPT4.0自行出数学题…

[javaWeb]Socket网络编程

网络编程:写一个应用程序,让这个程序可以使用网络通信。这里就需要调用传输层提供的 api。 Socket套接字 传输层提供协议,主要是两个: UDP和TCP 提供了两套不同的 api,这api也叫做socket api。 UDP和 TCP 特点对比: UDP: 无连…

【Redis从头学-13】Redis哨兵模式解析以及搭建指南

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Re…

安防监控/视频汇聚平台EasyCVR调用rtsp地址返回的IP不正确是什么原因?

安防监控/云存储/磁盘阵列存储/视频汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有GB28181、RTSP/Onvif、RTMP等,以及厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等,能对外分发RTSP、RT…

QML Book 学习基础4(状态和转换)

目录 states(状态) Transition(过渡) states(状态) 用户界面的某些部分可以用状态来描述。状态定义一组属性更改,并且可以由特定条件触发。 QML 中定义状态,该元素需要绑定到任何项…

JavaScript中的事件委托(event delegation)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript事件委托⭐ 事件冒泡(Event Bubbling)⭐ 事件委托的优点⭐ 如何使用事件委托⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启…

RuntimeError: scatter_cpu_(): Expected self.dtype to be equal to src.dtype

1. 问题描述 如下图,输入scatter_时报错! 2. 报错原因 查阅资料发现是因为要填充的value与要被填充的tensor类型不同!如下图 3. 解决办法 将其转换成一样的类型即可,如下图,测试没有报错:

深度学习怎么学?

推荐这本小白看的《深度学习:从基础到实践(上下册)》。 深度学习:从基础到实践(上下册) 深入浅出的讲述了深度学习的基本概念与理论知识,不涉及复杂的数学内容,零基础小白也能轻松掌…

为什么删除Windows 11上的Bloatware可以帮助加快你的电脑速度

如果你感觉你的电脑迟钝,彻底清除软件会有所帮助,而且这个过程对Windows用户来说越来越容易。 微软正在使删除以前难以删除的其他预装Windows应用程序成为可能。专家表示,这项新功能可能会改变用户的游戏规则。 科技公司Infatica的主管Vlad…

三个视角解读ChatGPT在教学创新中的应用

第一,我们正处于一个学生使用ChatGPT等AI工具完成作业的时代,传统的教育方法需要适应变化。 教育工作者不应该因为学生利用了先进技术而惩罚他们,相反,应该专注于让学生去挑战超越AI能力范围的任务。这需要我们重新思考教育策略和…

开源vue动态表单组件

一、项目简介 vueelement的动态表单组件,拖拽组件到面板即可实现一个表单 二、实现功能 支持拖拽 支持输入框 支持文本框 支持数字输入框 支持下拉选择器 支持多选框 支持日期控件 支持开关 支持动态表格 支持上传图片 支持上传文件 支持标签 支持ht…

数据可视化工具中的显眼包:奥威BI自带方案上阵

根据经验来看,BI数据可视化分析项目是由BI数据可视化工具和数据分析方案两大部分共同组成,且大多数时候方案都需从零开始,反复调整,会耗费大量时间精力成本。而奥威BI数据可视化工具别具匠心,将17年经验凝聚成标准化、…

零撸大肉,赛博尔Seppol游戏,无限制闯关打碎片,装备,直接变现项目。

2023年7月10日,在上海外滩酒店—— 由来自硅谷、华尔街的技术先锋,与中国科技翘楚阿里、腾讯的骨干团队联手呈现,区块链元宇宙游戏塞波尔 Seppol于上海精彩亮相路演。 1,栖息之地,宠物可放入栖息之地进行挖矿&#xf…

高效利用隧道代理实现无阻塞数据采集

在当今信息时代,大量的有价值数据分散于各个网站和平台。然而,许多网站对爬虫程序进行限制或封禁,使得传统方式下的数据采集变得困难重重。本文将向您介绍如何通过使用隧道代理来解决这一问题,并帮助您成为一名高效、顺畅的数据采…

Spring 如何解决循环依赖问题 - 三级缓存

1. 什么是循环依赖问题 ? 循环依赖问题是指对象与对象之间存在相互依赖关系,而且形成了一个闭环,导致两个或多个对象都无法准确的完成对象的创建和初始化。 两个对象间的循环依赖: 多个对象间的循环依赖 : 解决 Spring 中的循环…

信看课堂笔记—LDO和DC-DC电路打PK

LDO(low dropout voltage regulator,低压差线性稳压器)和DC-DC(Direct current-Direct current converter,直流电压转直流电压转换器)电源是非常常见的电源电路,LDO 出来的比较早,像老戏骨一样,…

接口优化通用方案

目录 批量异步、回调缓存预取池化并行锁粒度索引大事务海量数据 批量 批量思想:批量操作数据库 优化前: //for循环单笔入库 for(TransDetail detail:transDetailList){ insert(detail); } 优化后: batchInsert(transDetailList); 异步、回…