ELK 日志分析搭建

2023-11-12

  

目录

         一、ELK概述

         1.1 概述

         1.1.1  Elasticsearch概述

        1.1.2 Logstash概述

        1.1.3 kibana概述

        1.2 ELK解决处理的事务

        1.3 ELK优点

       二、ELK 搭建操作

        2.1 实验配置环境

        2.2 实际操作

        2.3 安装Elasticsearch-head插件

        2.4 安装安装phantomjs

        2.5 安装elasticsearch-head

        2.6 ELK Logstash 部署


         一、ELK概述

         1.1 概述

        ELK是由Elasticsearch(日志存储和搜索)、Logstash(日志收集)、Kibana(查看日志)三个开源软件的组成的一个组合体,ELK是elastic公司研发的一套完整的日志收集、分析和展示的企业级解决方案,在这三个软件当中,每个软件用于完成不同的功能,ELK又称为ELKstack。

         1.1.1  Elasticsearch概述

        一个高度可扩展的开源全文搜索和分析引擎,它可实现数据的实时全文搜索、支持分布式可实现高可用、提供API接口,可以处理大规模日志数据,比如Nginx、Tomcat、系统日志等功能。

        工作原理:

        原始数据会从多个来源〈包括日志、系统指标和网络应用程序)输入到Elasticsearch中。数据采集指在,Elasticsearch中进行索引之前解析、标准化并充实这些原始数据的过程。这些数据在Elasticsearch 中索引完成之后,用户便可针对他们的数据运行复杂的查问,并使用聚合来检索自身数据的复杂汇总。在 Kibana中,用户可以基于自己的数据创建强大的可视化,分享仪表板,并对Elastic Stack进行管理。

        1.1.2 Logstash概述

        Logstash 是一个具有实时传输能力的数据收集引擎,其可以通过插件实现日志收集和转发,支持日志过滤,支持普通 log、自定义 json 格式的日志解析,最终把经过处理的日志发送给 elasticsearch。

        1.1.3 kibana概述

        Kibana 为 elasticsearch 提供一个查看数据的 web 界面,其主要是通过elasticsearch 的 API 接口进行数据查找,并进行前端数据可视化的展现,另外还可以针对特定格式的数据生成相应的表格、柱状图、饼图等。

        功能:Elasticsearch无缝之集、整合数据,复杂数据分析、让更多团队成员受益、接口灵活,分享更容易、配置简单,可视化多数据源、简单数据导出

        1.2 ELK解决处理的事务

        ELK 组件在海量日志系统的运维中,可用于解决以下主要问题:- 分布式日志数据统一收集,实现集中式查询和管理:故障排查、安全信息和事件管理、报表功能

        1.3 ELK优点

处理方式灵活 elasticsearch是实时全文索引,具有强大的搜索功能 (支持任意key全文搜索)
配置相对简单 elasticsearch的API全部使用JSON接口,logstash使用模块配置,kibana的配置文件部分更简单。
检索性能高效 基于优秀的设计,虽然每次查询都是实时,但是也可以达到百亿级数据的查询秒级响应。
集群线性扩展 elasticsearch和logstash都可以灵活线性扩展,节点读写出现瓶颈可以扩容(3 5 7 11个服务器)
前端操作绚丽 kibana的前端设计比较绚丽,而且操作简单(早期比较简单)

       二、ELK 搭建操作

        2.1 实验配置环境

主机a:192.168.162.100
主机b:192.168.162.111
主机c:apache服务器:192.168.162.101

        2.2 实际操作

##初始化操作
[root@lppdff ~]# systemctl stop firewalld.service  ##关闭防火墙
[root@lppdff ~]# setenforce 0
[root@lppdff ~]# hostnamectl set-hostname node1    ##改名

##添加主机记录
[root@node2 ~]# echo "
> 192.168.162.102 node1
> 192.168.162.111 node2
> 192.168.162.101 apache">>/etc/hosts

##在apache服务器中查看Java环境是否支持
[root@node1 ~]#java -version


##主机a与b中将安装包放入并升级
[root@node1 opt]#rpm -ivh elasticsearch-5.5.0.rpm 


##切换文件位置下
[root@node1 opt]# cd /etc/elasticsearch/
##备份文件
[root@node1 elasticsearch]# cp elasticsearch.yml{,.bak}
##编辑文件
[root@node1 elasticsearch]# vim elasticsearch.yml

 

 

##将主机a配置文件导入主机b并覆盖
[root@node1 elasticsearch]# scp /etc/elasticsearch/elasticsearch.yml node2:/etc/elasticsearch/

##修改主机b的配置文件
node.name: node2

 ##当你安装时会自动生成一个用户,注意其权限

##主机a与b创建配置文件中的文件
[root@node2 opt]# mkdir -p /data/elk_data
[root@node2 opt]# chown -R elasticsearch.elasticsearch /data/elk_data/
##开机自启,并立即运行
[root@node2 opt]# systemctl enable --now elasticsearch.service


##过滤出服务查看服务是否运行
[root@node2 opt]# netstat -ntap|grep 9200

 网页验证

        2.3 安装Elasticsearch-head插件

##安装所需编译环境
[root@node2 elasticsearch]# yum install gcc gcc-c++ make -y

##上传软件包到主机a与主机b
##上传node-v8.2.1.tar.gz到/opt
[root@node1 opt]#tar xf node-v8.2.1.tar.gz
[root@node1 opt]#cd node-v8.2.1/
[root@node1 node-v8.2.1]#./configure
[root@node1 node-v8.2.1]#make -j2 && make install

        2.4 安装安装phantomjs

##上传软件包到主机a与主机b
[root@node1 opt]#tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2  -C /usr/local/src/
[root@node1 src]#cd phantomjs-2.1.1-linux-x86_64/
[root@node1 phantomjs-2.1.1-linux-x86_64]#ln -s /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/* /usr/local/bin/

        2.5 安装elasticsearch-head

[root@node2 opt]#tar zxf elasticsearch-head.tar.gz  -C /usr/local/src/
[root@node1 opt]#cd /usr/local/src/elasticsearch-head/
[root@node1 elasticsearch-head]#npm install
##修改主机a与b的配置文件
[root@node1 ~]# vi /etc/elasticsearch/elasticsearch.yml   ####下面配置文件,插末尾##
http.cors.enabled: true
http.cors.allow-origin: "*"
[root@node1 ~]# systemctl restart elasticsearch

 

##后台开启服务
[root@node1 elasticsearch-head]# npm run start &

##网页访问
http://192.168.162.102:9100/

 

##添加索引记录验证

[root@node1 elasticsearch-head]# curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"lpp","mesg":"hello world"}'

        2.6 ELK Logstash 部署

##在Apache 节点上操作
[root@apache ~]# yum install httpd -y
##将logstash包放入
##将包安装
[root@apache opt]# rpm -ivh logstash-5.5.1.rpm
##切换文件位置下做软链接
[root@apache opt]# cd /usr/share/logstash/
[root@apache logstash]# ln -s /usr/share/logstash/bin/logstash /usr/local/bin/
输入采用标准输入 输出采用标准输出---登录192.168.91.100  在Apache服务器上
[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{} }'

 使用rubydebug显示详细输出,codec为一种编解码器

[root@apache opt]# logstash -e 'input { stdin{} } output { stdout{ codec=>rubydebug } }'

##将输出结果导入服务器a
[root@apache logstash]# logstash -e 'input { stdin{} } output { elasticsearch { hosts=>["192.168.162.102:9200"] } }'

[root@apache opt]# chmod o+r /var/log/messages ##设置其它权限只读
[root@apache opt]# ll /var/log/messages
[root@apache opt]# vim /etc/logstash/conf.d/system.conf 
input {
       file{
        path => "/var/log/messages"
        type => "system"
        start_position => "beginning"
        }
      }
output {
        elasticsearch {
          hosts => ["192.168.162.102:9200"]
          index => "system-%{+YYYY.MM.dd}"
          }
        }
[root@apache opt]# systemctl restart logstash.service

 

##在主机a上安装kibana
##将包放入
[root@node1 ~]# cd /usr/local/src/
[root@node1 src]# rpm -ivh kibana-5.5.1-x86_64.rpm
##切换目录
[root@node1 src]# cd /etc/kibana/
##备份文件
[root@node1 kibana]# cp kibana.yml kibana.yml.bak
##开启记录
[root@node1 kibana]# vim /etc/kibana/kibana.yml

[root@node1 kibana]# systemctl start kibana.service    ###启动kibana服务
[root@node1 kibana]# systemctl enable kibana.service   ###开机启动kibana服务

 网页访问验证:使用浏览器输入192.168.162.102:5601

 

 

##对接Apache主机的Apache 日志文件
[root@apache opt]# cd /etc/logstash/conf.d/
[root@apache conf.d]# touch apache_log.conf
[root@apache conf.d]# vi apache_log.conf

[root@apache conf.d]# /usr/share/logstash/bin/logstash -f apache_log.conf

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ELK 日志分析搭建 的相关文章

  • docker-compose编排ELK,kibana报错Unable to revive connection: http://172.16.23.126:9200/

    问题描述 使用docker compose方式编排ELK环境 启动elasticsearch没有问题 浏览器访问内网es环境http 172 16 23 126 9200 cluster health pretty正常 但是kibana启动
  • Logstash安装logstash-integration-jdbc

    Logstash安装logstash integration jdbc 1 版本说明 logstash7 10 1 2 前置条件 logstash integration jdbc是使用ruby语言开发的 因此需安装gem gem是Ruby
  • ELK+Filebeat日志分析系统

    目录 一 ELK基本介绍 1 ELK是什么 2 组件简介 2 1 ELK组件介绍 2 2 ELFK组件介绍 2 3 其它组件 4 使用ELK的原因 5 完整日志系统的基本特征 二 Elasticsearch的介绍 三 Logstash的介绍
  • ES7.7中highlight的结果丢失部分文本的bug

    本bug在windows版本 ES 7 7 0 和 7 15 2 中都可以再现 ik分词器已安装 并导入了扩展停止词 extra stopword dic Step1 先建立一个索引 在此之前 请确保已经安装分词器插件ik PUT test
  • elasticsearch启动报错

    系统 操作centos7 虚拟机 bin elasticsearch 启动报错 es1 es1 software elasticsearch 6 3 1 bin elasticsearch Exception in thread main
  • ES学习之分片路由

    本文主要内容 1 路由一个文档到一个分片 2 新建 索引和删除请求 3 取回单个文档 4 局部单个文档 5 多文档模式 6 理解一下ES深度分页 from size 的劣势 路由一个文档到一个分片 当索引一个文档的时候 文档会被存储到一个主
  • 7.4.3-elasticsearch索引字段类型参数

    fielddata 大多数字段默认情况下都会建立索引方便查询 但是针对排序 聚合以及脚本访问字段值则需要另外的访问方式 查询操作需要回答 哪些doc包含查询的词 而排序和聚合则需要回答 doc中该字段的值是多少 大多数字段可以通过文档索引在
  • ELK系列(三)、安装Logstash插件及打包离线安装包

    Logstash有input output filter codec 四种插件类型 支持的种类也很丰富 功能特别强大 选对正确的插件可以节省很多的资源占用和开发效率 生产环境一般都无法连接到公网 所以本篇就带大家如何在线安装 以及打包离线安
  • es部署--生产环境--01--es单机

    es部署 生产环境 01 es单机 前提 使用hd用户登陆 完成基础环境搭建 https blog csdn net zhou920786312 article details 118212302 1 资源下载 elasticsearch
  • ELK多个日志文件创建多个项目索引

    一 背景 我的elk架构是filebeat redis logstash elasticsearch kibana 我的想法是 我一台服务器多个程序有多个日志文件 在kibana里面想创建不通项目索引 指定不同日志文件 二 问题及解决思路
  • 基于ELK的项目日志收集系统

    前言 Beats 是作为ELK技术栈前端数据收集平台的一个开源软件 Beats is the platform for building lightweight open source data shippers for many type
  • ES的java接口调用异常信息:java.lang.RuntimeException: Request cannot be executed; I/O reactor status: STOPPED

    我的处理方法是重启了连接ES的服务接口 我专门写的一个供APP调用的服务 这个服务去连接ES 出现了这个错误 估计还是客户端连ES的出了问题
  • 8.2.3-elasticsearch内置分词器之keyword/pattern

    ES默认提供了八种内置的analyzer 针对不同的场景可以使用不同的analyzer 1 keyword analyzer 1 1 keyword类型及分词效果 keyword analyzer视字符串为一个整体不进行分词处理 测试key
  • ES词典热加载-通过修改ik分词器源码实现热加载自定义词典

    逻辑 自定义词典的数据从mysql加载 只需要重启一次ES即可 后续热加载 实现 在自定义词典的init方法中实现每隔一定时间读取mysql并写入自定义词典的逻辑
  • ELK的优点和局限性

    ELK作为一种开源的日志管理解决方案 具有以下优点 实时性高 ELK可以实现实时索引和搜索 支持高效的日志收集和处理 可以帮助用户及时发现问题和异常 提高系统的响应速度和稳定性 可扩展性强 ELK的架构支持水平扩展和负载均衡 可以根据需要增
  • ELK企业级日志分析系统

    ELK概述 为什么要使用 ELK 日志主要包括系统日志 应用程序日志和安全日志 系统运维和开发人员可以通过日志了解服务器软硬件信息 检查配置过程中的错误及错误发生的原因 经常分析日志可以了解服务器的负荷 性能安全性 从而及时采取措施纠正错误
  • ELK系列(二)、在Kibana中使用RESTful操作ES库

    上一篇讲了如何安装ELK ELK系列 一 安装ElasticSearch Logstash Kibana Filebeat v7 7 0 这篇介绍如何使用kibana连接ES并操作 先介绍一下ES和关系型数据库的概念对应 在ES7以前的版本
  • Es修改索引别名

    在使用ES时有时候我们需要修改索引信息 本文总结了如何修改索引信息 ES修改索引结构 在 ElasticSearch 中索引就类似于关系型数据库中 Table 的概念 如果要修改索引的一些关键信息时 要重建索引 具体步骤如下 新建索引 复制
  • elasticsearch部署过程中各种报错解析

    elasticsearch bootstrap StartupException java lang RuntimeException can not run elasticsearch as root ES不能能使用root用户直接运行
  • 大数据笔记--ELK(第一篇)

    一 ELK介绍 1 什么是ELK ELK 是elastic公司提供的一套完整的日志收集以及展示的解决方案 是三个产品的首字母缩写 分别是ElasticSearch Logstash 和 Kibana 1 1 E ELASTICSEARCH

随机推荐

  • R语言中的t分布函数:学生t分布实践

    R语言中的t分布函数 学生t分布实践 学生t分布是统计学中常用的概率分布之一 在数据分析和假设检验中具有重要的应用 本文将介绍如何在R语言中使用学生t分布函数进行实践 并提供相应的源代码 首先 我们需要了解学生t分布的基本特性和应用场景 学
  • 华为OD机试 - 五子棋迷(Java)

    题目描述 张兵和王武是五子棋迷 工作之余经常切磋棋艺 这不 这会儿又下起来了 走了一会儿 轮张兵了 对着一条线思考起来了 这条线上的棋子分布如下 用数组表示 1 0 1 1 1 0 1 0 1 1 棋了分布说明 1代表白子 0代表空位 1
  • 华为OD机试 - 比较两个版本号的大小(Java )

    题目描述 输入两个版本号 version1 和 version2 每个版本号由多个子版本号组成 子版本号之间由 隔开 由大小写字母 数字组成 并且至少有一个字符 按从左到右的顺序比较子版本号 比较规则如下 子版本号前面的0不参与比较 比如
  • 利用强化学习进行股票操作实战(四)

    本次实战代码仍是在之前基础上进行了一些修改 之前只在一支股票上进行训练 这次我将模型放在多支股票上训练 并在多支股票上进行了测试 对于多支股票的训练策略 没有参考过别人的训练方案 做这个的比较少 我按自己的理解去训练 每一轮训练 都将每支股
  • 芯片面积估计方法

    一 概念 芯片面积的主要涵盖部分分为三部分 IO 芯片的信号及电源pad等 Standard cell 实现芯片的功能逻辑 Macro block 第三方IP PLL DAC POR Memory etc 芯片面积估计就是通过目标工艺的库信
  • Python:使用 print 打印“Hello World!”以及其它字符内容

    哈喽 大家好 我是wangzirui32 这是我的第一篇博文 发现内容有误还请多多提出 谢谢 今天 我们将使用Python的print 来帮助我们让程序输出指定内容 如果你的Python版本是3 x print 将作为一个Python内置函
  • 第五周总结&实验报告三

    实验三 String类的应用 实验目的 掌握类String类的使用 学会使用JDK帮助文档 实验内容 1 已知字符串 this is a test of java 按要求执行以下操作 要求源代码 结果截图 1 统计该字符串中字母s出现的次数
  • 全国计算机等级考试题库二级C操作题100套(第79套)

    第79套 给定程序中 函数fun的功能是 求ss所指字符串数组中长度最短的字符串所在的行下标 作为函数值返回 并把其串长放在形参n所指变量中 ss所指字符串数组中共有M个字符串 且串长
  • js 查找字符串中指定字符 模糊查询 不区分大小写

    js 查找特定字符 模糊查询 不区分大小写 var str hello world hello coder 查找 HELLO 是否存在 找不到返回null var reg new RegExp HELLO i var isHas str m
  • Opencv-C++笔记 (12) : opencv-仿射变化

    文章目录 一 概述 二 GetRotationMatrix2D 三 warpAffine 一 概述 介绍完图像的缩放和翻转后 接下来将要介绍图像的旋转 但是在OpenCV 4中并没有专门用于图像旋转的函数 而是通过图像的仿射变换实现图像的旋
  • Python笔记:在Pandas中处理NaN值

    关于NaN值 在能够使用大型数据集训练学习算法之前 我们通常需要先清理数据 也就是说 我们需要通过某个方法检测并更正数据中的错误 任何给定数据集可能会出现各种糟糕的数据 例如离群值或不正确的值 但是我们几乎始终会遇到的糟糕数据类型是缺少值
  • vue element plus对话框第二次点击时 选择器不显示

    第一次点击时下拉框出现正常 关闭窗口后再次进入 选择器的下拉框不会出现 可给选择器设置属性 teleported false
  • AutoHotkey中的变量名 全局与局部冲突问题 - double-ref 双重引用

    文章目录 test 测试脚本 AutoHotkey中 全局变量与局部变量的作用域要缕清 已知一个 变量名foo 被一个全局变量 和 一个函数中的局部变量 使用 在该函数中 foo默认是局部变量 直接使用foo 其内容为空 双重解引用的变量
  • C++语言导学 第三章 模块化 - 3.4 名字空间

    C 语言导学 第三章 模块化 3 4 名字空间 3 4 名字空间 3 4 名字空间 除了函数 类和枚举之外 C 还提供了一种称为名字空间 namespace 的机制 用来表达某些声明属于一个整体以及它们的名字不会与其他名字冲突 例如 我希望
  • nodejs开启局域网广播获取ip通信

    bonjour 纯JavaScript中的Bonjour Zeroconf协议实现 使用多播DNS在本地网络上发布服务或发现现有服务 安装 npm install bonjour 使用方法 局域网A主机 import bonjour fro
  • _cdecl、_stdcall和_fastcall的区别

    概述 在windows开发环境中有三种觉的调用协议 分别为 cdecl C调用 stdcall 标准调用 fastcall 快速调用 三种调用方式有参数传递和栈帧恢复的方式有所不同 本文在结合汇编代码简要说明一下有三种调用方式的区别 环境
  • 解决警告——warning C4018: “<”: 有符号/无符号不匹配

    今天遇到这个问题 虽然不影响程序运行 但作为完美主义者 有警告总感觉不舒服 所以就查了一下解决方法 出错代码 for int j 0 j
  • centos下mysql 看不到mysql数据库(密码无法更改)

    1 这可能是因为mysql数据库的user表里 存在用户名为空的账户即匿名账户 导致登录的时候是虽然用的是root 但实际是匿名登录的 2 解决方案 2 1 关闭mysql service mysqld stop 2 2 屏蔽权限 mysq
  • verilog中给变量指定的位赋值

    reg 15 0 Data reg 3 0 i reg 1 0 data r begin Data i i 1 lt data r end 此类赋值是错误的 我自己修改了语句 如下 begin Data i lt data r 1 Data
  • ELK 日志分析搭建

    目录 一 ELK概述 1 1 概述 1 1 1 Elasticsearch概述 1 1 2 Logstash概述 1 1 3 kibana概述 1 2 ELK解决处理的事务 1 3 ELK优点 二 ELK 搭建操作 2 1 实验配置环境 2