ELK企业级日志分析系统(分布式文件系统与企业级应用)

news2024/9/24 19:26:33

一、ELK 概述

1、ELK简介

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。

ElasticSearch

是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。

Logstash

作为数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置,一般会发送给 Elasticsearch。

Logstash 由JRuby 语言编写,运行在 Java 虚拟机(JVM)上,是一款强大的数据处理工具, 可以实现数据传输、格式处理、格式化输出。Logstash 具有强大的插件功能,常用于日志处理。

Kiabana

是基于 Node.js 开发的展示工具,可以为 Logstash 和 ElasticSearch 提供图形化的日志分析 Web 界面展示,可以汇总、分析和搜索重要数据日志。

Filebeat

轻量级的开源日志文件数据搜集器。通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进行解析,或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。

2、为什么要使用 ELK?

日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

往往单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。如果你管理数十上百台服务器,你还在使用依次登录每台机器的传统方法查阅日志。这样是不是感觉很繁琐和效率低下。当务之急我们使用集中化的日志管理,例如:开源的syslog,将所有服务器上的日志收集汇总。集中化管理日志后,日志的统计和检索又成为一件比较麻烦的事情,一般我们使用grep、awk和wc等Linux命令能实现检索和统计,但是对于要求更高的查询、排序和统计等要求和庞大的机器数量依然使用这样的方法难免有点力不从心。

一般大型系统是一个分布式部署的架构,不同的服务模块部署在不同的服务器上,问题出现时,大部分情况需要根据问题暴露的关键信息,定位到具体的服务器和服务模块,构建一套集中式日志系统,可以提高定位问题的效率。

3、完整日志系统基本特征

收集:能够采集多种来源的日志数据

传输:能够稳定的把日志数据解析过滤并传输到存储系统

存储:存储日志数据

分析:支持 UI 分析

警告:能够提供错误报告,监控机制

4、ELK 的工作原理

(1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。

(2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。

(3)Elasticsearch 对格式化后的数据进行索引和存储。

(4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

实验要求:

es主机内存至少4个G;

103&&104

先连接103和104;

主机名进行修改,并同步会话;

关闭防火墙,和内核安全机制;

且永久关闭,基础参数设置之后可能要重启系统;

为两个主机创建运行es的程序用户;

并设置密码,方便该用户提权,且加入到wheel组;

(系统内定的一个组,默认该组的成员提权有all权限;)

设置该组的成员不需要密码登录;

切换到es的用户环境下;

提权安装java-11版本的环境;


检查一下;

打开用户资源限制的文件,添加语句;

添加软限制及硬限制;

1:es用户运行的进程最多打开的文件数;

2:es用户最多打开的进程数量;

3: 对es用户内存不锁定;

修改内核参数的配置文件;

为系统提供最大的区域数量;

基本参数设置之后,重启一下系统;


重启之后再连接到es用户下;

将所需的软件包拉入进去;

103:

104:

解压:两台主机同时进行;

该包是二进制的,不需要编译等动作,只需要移动到方便管理的目录下即可;

然后进入到安装目录下的config目录,修改该文件;

内存为java虚拟机分配缓冲区的大小;

再修改这个文件;注意,该文件中的语法要求特别严格;

首先修改集群的名字和节点名字;

注意空格,不要多,也不要少;

存储数据的路径,注释符去掉,等下创建出来;

应用程序运行过程中产生的日志,而不是采集日志的路径;

物理内存的锁定改为不锁定;

修改监听的地址和端口;

列举集群中各节点的主机名称;

在该集群中要把哪个节点初始化为master;

此时104的参数已经修改完毕了,可以把会话同步关闭掉,单独配置master的参数;

103:

支持用web服务访问数据;

允许谁访问web服务提供的数据;*号通配所有;

然后再把会话同步起来,创建配置文件中指定的目录;

创建目录并且设置归属;且设置es程序所在目录的归属;

查看;

同时启动es程序,该程序启动需要一定的时间;稍后再查进程相关的信息;

注:&符为后台运行;

如果从节点一直报错,那么可能是hosts文件没修改;

再打开一个终端,写入hosts文件即可;

然后用web服务查看节点的信息;

末尾的*号在哪个节点,哪个节点就是master;

安装head插件(103)

》查看一下head包

》安装所需要的依赖环境

注释:直接安装是没有这些的,找ali的仓库

》把阿里的仓库复制进来

rm -rf /etc/yum.repos.d/*

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

yum clean all

注释:直接放进去权限不够

》切换到root用户,再放进去

》上传ali仓库

rm -rf /etc/yum.repos.d/*

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo

yum clean all

》再切换为es用户

》安装依赖环境

》解压head的包

》切换到解压目录下

》设置国内node包的仓库

注释:npm在安装nodejs的时候也有依赖包,这个依赖包也要从网上下载;

》安装nodejs包

注释:安装的时候,需要切换的包的目录下,再安装

》启动

注释:安装、启动都需要在这个包的目录下

到这需要回车一下

注释:9100这个端口是elasticserch-head这个插件的访问端口,通过这个端口可以访问它的web界面

》查看有没有这个9100端口

》打开浏览器

注释:elk1:星号说明是master

二、logstash(102)

1、打开xshell102

2、先给logstash命名

3、关闭防火墙并设置为永久关闭

4、安装java环境

5、把logstash包上传到服务器

6、解压

7、对解压目录进行重命名

8、为data目录设置权限

9、测试安装结果

》直接将消息输出到屏幕

注意:执行该命令后稍微等一下,会出现一个消息格式,可以输入一些字符串,作为该消息的内容

退出按Ctrl+C,如果命令失败,删除logstash目录的的data子目录

例如下列显示:

nihao

{

    "@timestamp" =>2020-03-14T03:20:24.229Z,

      "@version" =>"1",

          "host" =>"elk1",

       "message" =>"nihao "

}

》将消息输出到es(如果没有安装head组件,此步骤省去)

bin/logstash -e 'input {stdin{}} output{stdout{codec=>rubydebug}} output{elasticsearch{hosts=>["192.168.10.103:9200"]}}'

稍等一下可以输入一些字符串作为消息

再打开http://192.168.10.103:9100/查看消息内容

10、logstash读取messages里面的信息

三、fliebeat(101)

1、把filebeat上传

2、把防火墙、se关闭

3、yum安装apache

4、测试页面

5、启动apache

6、测试一下

7、查看一下日志

8、解压一下filebeat

9、移动解压目录,并重命名

10、查看filebeat目录下的文件

注释:filebeat.yml是一个模板配置文件

11、移动filebeat模板配置文件,并重命名

12、重新写一个filebeat配置文件

注释:yml文件语法的严谨;两两空格

问题:假如日志文件有多个,该怎么写?

加入输出的目的地,不是一个logstash,而是一群logstash又该怎么写?

13、启动filebeat

14、jobs -l查看是否运行

四、logstash(102)----修改logstash对应的信息

1、切换到/etc/logstash/config目录下,创建一个专门处理由101filebeat发过来的日志

2、启动

注释:每一个logstash在运行的时候,都有一个独立的存放数据的目录;

两个不同的实例,不能共用同一个数据目录

五、kibana(103或104都可以)----安装在103

1、也是在es用户下运行的;

2、解压kibana

3、移动解压目录,重命名

4、检查一下归属

注释:sudo chown -R es:es /etc/kibana/是修改归属的

5、修改配置文件

6、启动

7、浏览器测试

注释:点击add

8、再次打开配置文件

9、查看进程

10、杀死进程

11、再启动

12、再用浏览器查看

注释:没有内容,

访问一下

检索的方式

2024-08-15T23:23:42

2024-08-15T23:24:42

注释:logstash也可以查询

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

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

相关文章

笔记整理—uboot启动过程(4)BL2干了什么及内存排布

uboot的第一阶段结束于start_armboot,第二阶段的uboot代码主要负责soc外部硬件(inand、网卡、......)、uboot本身构建(uboot指令、环境变量、......)最后进入命令行,等待命令然后倒数,等待bootc…

Pytest框架环境切换实战教程

测试人员每天都跟不同的环境打交道,比如线上环境,测试环境,预上线环境等等,那么作为自动化测试人员写的代码,我们也要具备能自由切换环境的能力,那么今天小编就给大家聊一下,如何能让我们python…

linux 安装kafaka单体服务

1.下载kafka的linux安装包 前往Apache Kafka官方网站下载页面(Apache Kafkahttps://kafka.apache.org/downloads),选择最新稳定版的Kafka二进制分发文件,通常是以.tgz结尾的文件。 手动下载kafka_2.13-3.8.0.tgz到本地&#xff0…

Spring Boot 与 Spring Security 的集成及 OAuth2 实现

我的主页:2的n次方_ 在现代 Web 应用开发中,安全性是至关重要的。无论是保护用户的敏感数据,还是确保 API 只允许经过授权的请求访问,开发者都需要一个强大且灵活的安全框架来实现这些需求。Spring Security 作为 Spring 框架的…

MATLAB 生成指定范围、角度、厚度的含噪平面点云(77)

模拟生成点云并可视化显示,可以验证算法有效性,尤其是针对验证算法的某方面 MATLAB 生成指定范围、角度、厚度的含噪平面点云(77) 一、算法介绍二、使用步骤1.代码2.效果一、算法介绍 如题,模拟生成一组平面点云,含有噪声点,确定算法稳定性,可以指定生成平面的范围,厚…

混合A*算法

混合A*算法是一种改进版的A*算法,特别针对车辆动力学进行了优化。这种算法在经典A*的基础上引入了新的维度和概念,以生成更加实际可行的路径。 首先,混合A*算法不仅考虑x和y的位置,还引入了θ维度来表示车辆的朝向。这意味着搜索…

Unity视频播放插件-VideoPro(Windows)

Unity视频播放插件-VideoPro-windows 🌮介绍🍤使用方法🥙示例🌳rtsp🌳本地视频🌳网络视频 🌮介绍 1.支持播放格式:rtsp、http、本地视频。 2.exe试用🌈 3.经测试i9 cpu 空…

【STM32开发笔记】搭建基于ST官方VSCode扩展的STM32开发环境

搭建基于ST官方VSCode扩展的STM32开发环境 一、安装软件1.1 安装VSCode1.2 安装STM32CubeMX1.3 安装STM32CubeCLT1.4 安装ST-MCU-FINDER-PC 二、安装插件2.1 安装 STM32 VS Code Extension 三、创建项目3.1 创建STM32CubeMX项目3.2 查阅原理图3.3 修改引脚功能3.4 生成CMake项目…

完成单位信息宣传工作考核投稿别输在投稿方法上

在信息化迅速发展的今天,弘扬社会正能量已经成为各个企事业单位的重要使命。作为单位的信息宣传员,我深知信息宣传工作的重要性和复杂性。每个月,我们都肩负着信息宣传考核的任务,需要在指定的媒体上投稿发表文章。然而,刚接触这一工作时,我却经历了一段艰辛而焦虑的历程。 我一…

ubuntu install Miniconda3(轻量级conda)

ubuntu install Miniconda3(轻量级conda) Miniconda3 是一个包含 conda 和 Python 的小型发行版,适合需要灵活定制python环境的用户。 一、下载Miniconda3 sudo apt-get update wget https://repo.anaconda.com/miniconda/Miniconda3-latest…

elasticsearch快照存储到linux本地路径或分布式存储系统mioio

一、使用linux本地目录做快照存储 1.编辑 elasticsearch.yml 文件,添加以下配置: path.repo: ["/path/to/your/backup/dir"]2.创建一个文件系统类型的快照仓库 PUT /_snapshot/my_local_repository {"type": "fs",&quo…

WIN 10 注册表损坏怎么办

系统修复功能 打开“设置”-“更新和安全”-“恢复”-“立即重新启动” 然后就会进入到恢复模式,在里面点“疑难解答”-“高级选项”-“启动修复” SFC工具 在电脑搜索框中输入“命令提示符”,右键点击“命令提示符”选择“以管理员身份运行”。随后在…

前端算法 === 计数排序

目录 计数排序算法的起源 算法的基本原理 算法的实现 代码示例 算法的优势与局限性 计数排序的应用场景 计数排序是一种简单而高效的排序算法,特别适合于处理一定范围内的整数排序问题。它的核心思想是利用额外的存储空间来记录数组中每个元素出现的次数&…

Ansible远程自动化运维

目录 概念 安装ansible modules模块和语法 命令行语法 模块 1. command 基础模块 常用的参数 2. shell模块 3. cron定时任务模块 4. user用户管理模块 参数 5. copy复制模块 参数 6. file模块 设置文件属性 参数 实验:批量创建目录 7…

staticHeader(静态标头)

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>staticHeader(静态标头)</title> </head…

C语言函数介绍(上)

函数概念库函数标准库和头文件库函数的使用方法头文件包含库函数文档的一般格式 自定义函数函数的语法形式函数例子 形参和实参实参形参实参和形参的关系 return 语句数组做函数参数 函数概念 数学中我们其实就见过函数的概念&#xff0c;比如&#xff1a;一次函数 ykxb &…

msvcp120.dll丢失是怎么回事?几种靠谱修复msvcp120.dll的方法

在使用基于Windows的计算机进行日常工作或娱乐时&#xff0c;您可能会遇到一个错误消息&#xff1a;“无法启动此程序&#xff0c;因为计算机中丢失msvcp120.dll。”这样的提示通常在尝试启动某些程序或游戏时弹出&#xff0c;导致应用无法正常运行。这个问题通常与系统中的某个…

redis是什么?看着一篇就够了

目录 介绍一下 redis 数据库&#xff1f; redis数据类型与应用场景 redis 为什么更快&#xff1f; redis 怎么实现持久化的&#xff1f; AOF 日志是如何实现的&#xff1f; RDB 快照是如何实现的呢&#xff1f; 混合持久化 redis 单线程在多核机器里使用会不会浪费…

LABVIEW数据保存文件

这里推荐选用CSV文件&#xff1f;为什么&#xff1f; 下表是格式差异造成的容量差异。 具体原因&#xff0c;总结为以下两点&#xff1a; 首先&#xff0c;CSV文件能使用EXCEL打开&#xff0c;方便查阅和借助EXCEL工具进一步处理。 第二&#xff0c;相对来说&#xff0c;CSV…

Web自动化测试:selenium使用详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 说到自动化测试&#xff0c;就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自动化测试工具之一&#xff0c;支持快速开发自动化测试框架&#xff0c;…