简单认识ELK日志分析系统

这篇具有很好参考价值的文章主要介绍了简单认识ELK日志分析系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. ELK日志分析系统概述

1.ELK 简介

ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。
好处
(1)提高安全性
(2)集中存放日志
(3)缺陷:对日志的分析困难

2.ELK日志分析系统组成

1 、ElasticSearch

概述
(1)提供了一个分布式多用户能力的全文搜索引擎,通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。
(2)Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。

ElasticSearch核心概念(作用)
(1)接近实时
(2)集群(es数据日志搜索)
(3)节点
(4)索引(es)
索引(库)——类型(表)——文档(记录)
(5)分片和副本(备份——每个都有副本,如其中一个挂了,副本还可以继续正常工作、容灾)

2 、Kiabana

概念
通常与 Elasticsearch 一起部署,Kibana 是 Elasticsearch 的一个功能强大的数据可视化 Dashboard,Kibana 提供图形化的 web 界面来浏览 Elasticsearch 日志数据,可以用来汇总、分析和搜索重要数据。

总:将Elasticsearch中的数据优化可视化的展示出来

主要功能
(1)Elasticsearch无缝之集成
(2)整合数据,复杂数据分析
(3)让更多团队成员受益
(4)接口灵活,分享更容易
(5)配置简单,可视化多数据源
(6)简单数据导出

3、 Logstash

概念
(1)一款强大的数据数据处理工具
(2)可实现数据传输,格式处理,格式化输出(输出给es)
(3)数据输入,数据加工(如过滤、改写等)以及数据输出
Logstash主要组件
(1)shipper:主要负责监控日志,日志变动,集新的日志
(2)indexer:存储(日志存储者)主要是日志接收和写入本地
(3)broker:连接组件,并对组件进行搜索日志文件存储另一个平台上
(4)search and storage:搜索和存储
(5)web interface:展示web界面

Logstash理念、作用
input(数据采集) filter(数据过滤) output(数据输出)

4、 可以添加的其它组件

Filebeat
Filebeat概念

(1)轻量级的开源日志文件数据搜集器。

(2)通常在需要采集数据的客户端安装 Filebeat,并指定目录与日志格式,Filebeat 就能快速收集数据,并发送给 logstash 进或是直接发给 Elasticsearch 存储,性能上相比运行于 JVM 上的 logstash 优势明显,是对它的替代。常应用于 EFLK 架构当中。行解析

Filebeat 结合 logstash 带来好处
(1)通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力
(2)从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取
(3)将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件
(4)使用条件数据流逻辑组成更复杂的处理管道

缓存/消息队列(redis、kafka、RabbitMQ等)
可以对高并发日志数据进行流量削峰和缓冲,这样的缓冲可以一定程度的保护数据不丢失,还可以对整个架构进行应用解耦。

Fluentd
概念

是一个流行的开源数据收集器。

特点
由于 logstash 太重量级的缺点:

(1)解决Logstash 性能低、资源消耗比较多等问题,随后就有 Fluentd 的出现。
(2)相比较 logstash,Fluentd 更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为 logstash 的一种替代方案,常应用于 EFK 架构当中。在 Kubernetes 集群中也常使用 EFK 作为日志数据收集的方案。
(3)在 Kubernetes 集群中一般是通过 DaemonSet 来运行 Fluentd,以便它在每个 Kubernetes 工作节点上都可以运行一个 Pod。 它通过获取容器日志文件、过滤和转换日志数据,然后将数据传递到 Elasticsearch 集群,在该集群中对其进行索引和存储。

3.为什么要使用 ELK

(1)由于会通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因。经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。

(2)单台机器的日志我们使用grep、awk等工具就能基本实现简单分析,但是当日志被分散的储存不同的设备上。数十上百台服务器会很繁琐并且效率低下,使用集中化的日志管理:开源的syslog,将所有服务器上的日志收集汇总

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

总:日志集中化、集中化管理

提高效率、性能安全

4.完整日志系统基本特征

收集:能够采集多种来源的日志数据
传输:能够稳定的把日志数据解析过滤并传输到存储系统
存储:存储日志数据
分析:支持 UI 分析
警告:能够提供错误报告,监控机制

5.ELK 的工作过程

1、 ELK 的工作原理

(1)在所有需要收集日志的服务器上部署Logstash;或者先将日志进行集中化管理在日志服务器上,在日志服务器上部署 Logstash。
(2)Logstash 收集日志,将日志格式化并输出到 Elasticsearch 群集中。
(3)Elasticsearch 对格式化后的数据进行索引和存储。
(4)Kibana 从 ES 群集中查询数据生成图表,并进行前端数据的展示。

总结:logstash作为日志搜集器,从数据源采集数据,并对数据进行过滤,格式化处理,然后交由Elasticsearch存储,kibana对日志进行可视化处理。

2、 ELK 的数据流图示

简单认识ELK日志分析系统,elk,jenkins,运维

二.部署ELK日志分析系统

web服务器部署logstash+kibana:192.168.116.50
es节点1:192.168.116.60
es节点2:192.168.116.70

1.节点服务器安装elasticsearch

(1)需要先准备好相关的安装包(后三个用于前端图形化展示es状态)

简单认识ELK日志分析系统,elk,jenkins,运维
(2)部署jdk环境

yum -y install java-1.8.0-openjdk-devel.x86_64

简单认识ELK日志分析系统,elk,jenkins,运维
(3)安装es
简单认识ELK日志分析系统,elk,jenkins,运维
(4)修改配置文件

vim /etc/elasticsearch/elasticsearch.yml
#yml键值对格式 键: 值(冒号后面要加一个括号)
cluster.name: my-elk-cluster    #集群名称
node.name: node1       #当前节点名称
node.master: true      #开启主节点
node.data: true        #开启数据节点(两个都开启是混合模式)
 
path.data: /var/lib/elasticsearch    #数据文件
path.logs: /var/log/elasticsearch    #日志文件
 
bootstrap.memory_lock: true     #锁定使用内存(禁用交换分区使性能下降)
 
network.host: 192.168.116.60    #监听地址(本机ip)
http.port: 9200                 #es和客户端通信的端口(默认9200)
transport.tcp.port: 9300        #es节点之间通信的端口(默认9300)
 
#启用发现机制(es内置发现模块,通过单播发现集群内的服务节点)
discovery.zen.ping.unicast.hosts: ["192.168.116.60:9300", "192.168.116.70:9300"]

另一台节点配置文件也修改
简单认识ELK日志分析系统,elk,jenkins,运维
ES三类节点说明

master主节点:
主要功能:维护元数据,管理集群节点状态;不负责数据写入和查询。
配置要点:内存可以相对小一些,但是机器一定要稳定,最好是独占的机器。
配置格式:node.master: true ;node.data: false

data数据节点
主要功能:负责数据的写入与查询,压力大。
配置要点:大内存,最好是独占的机器。
配置格式:node.master: false;node.data: true

client客户端节点
主要功能:负责任务分发和结果汇聚,分担数据节点压力。
配置要点:大内存,最好是独占的机器。
配置格式:node.master: false; node.data: false

还有一种混合节点 node.master: true 和 node.data: true ,这种在生产环境中不建议使用,我们这里的实验测试环境会将主节点和数据节点放在一台主机上。

三类节点分配比例

一般来说,主节点最多3台,数据节点可以为每个主节点分配 2~4 台(3个主节点就是一共6~12台),客户端可以为数据节点总数的1/3左右。
根据读写情况来决定,写多则数据节点多,读多则客户端多。

(5)优化系统(放开内存、进程数和文件限制)
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
(6)优化es拥有的内存使用权限

    由于ES构建基于lucene,而lucene设计强大之处在于lucene能够很好的利用操作系统内存来缓存索引数据,以提供快速的查询性能。lucene的索引文件segements是存储在单文件中的,并且

不可变,对于OS来说,能够很友好地将索引文件保持在cache中,以便快速访问。因此,我们很有必要将一半的物理内存留给lucene,另一半的物理内存留给es(TM heap)。

  • 在ES内存设置方面,可以遵循以下原则

      当机器内存小于64G时,遵循通用的原则,508给ES,50%留给操作系统,供lucene使用;
      当机器内存大于64G时,遵循原则:建议分配给Es分配4~32G 的内存即可,其它内存留给操作系统,供lucene使用。
    

简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
(7)启动(注意es启动最低需要4G内存)
简单认识ELK日志分析系统,elk,jenkins,运维
(8)依次安装其余三个软件

#安装node.js(大约10分钟)
cd /opt
tar zxvf node-v8.2.1.tar.gz
cd node-v8.2.1/
./configure
make && make install
 
#安装phantomjs
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd phantomjs-2.1.1-linux-x86_64/bin/
cp phantomjs /usr/local/bin
 
#安装 Elasticsearch-head-master 数据可视化工具
unzip elasticsearch-head-master.zip
cd elasticsearch-head-master/
npm install

(9)在es配置文件中添加跨域访问配置,并重启服务

vim /etc/elasticsearch/elasticsearch.yml
#添加
http.cors.enabled: true
http.cors.allow-origin: "*"
 
#重启服务加载配置
systemctl restart elasticsearch.service

简单认识ELK日志分析系统,elk,jenkins,运维
(10)启动可视化工具(开启端口为9100)

cd /opt/elasticsearch-head-master/
npm run start &

简单认识ELK日志分析系统,elk,jenkins,运维

简单认识ELK日志分析系统,elk,jenkins,运维
(11)测试插入索引

#通过命令插入一个测试索引,索引为 index-demo,类型为 test。
curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"user":"zhangsan","mesg":"hello world"}'

简单认识ELK日志分析系统,elk,jenkins,运维

简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
(12)删除索引

curl -X DELETE '192.168.116.60:9200/index-demo'

简单认识ELK日志分析系统,elk,jenkins,运维

2.web服务器安装logstash和kibana

(1)准备logstash和kibana的安装包,和jdk环境

简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
(2)安装启动logstash,并将命令加入系统识别路径
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
(3)测试使用logstash

logstash [选项] ...
-f   通过这个选项可以指定 Logstash 的配置文件,根据配置文件配置 Logstash 的输入和输出流。
-e   从命令行中获取,输入、输出后面跟着字符串,该字符串可以被当作 Logstash 的配置(如果是空,则默认使用 stdin 作为输入,stdout 作为输出)。
-t   测试配置文件是否正确,然后退出。

使用命令行输入标准输出到屏幕
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
测试命令行输入,标准输出到es的节点中
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
(4)测试无误后,自定义logstash配置文件

Logstash 配置文件基本由三部分组成:input、output 以及 filter(根据需要选择使用)
        input{...}:表示从数据源采集数据,常见的数据源如Kafka、日志文件等。
        output{...}:表示将logstash收集的数据经由过滤器处理之后输出到Elasticsearch。
        filter{...}:表示数据处理层,包括对数据进行格式化处理、数据类型转换、数据过滤等,支持正则表达式.
        grok:对若干个大文本字段进行再分割成一些小字段(?<字段名>正则表达式)字段名:正则表达式匹配到的内容。
        date:对数据中的时间格式进行统一和格式化。
        mutate:可以重命名,删除,替换和修改事件中的字段。比如对一些无用的字段进行剔除,或增加自定义的字段。
        mutiline:对多行数据进行统一编排,将多行数据汇总为一个单一的行。
#在logstash配置文件目录下,创建配置文件
cd /etc/logstash/conf.d/
ls

简单认识ELK日志分析系统,elk,jenkins,运维
(5)加载配置文件,实现日志输出到es

logstash -f 配置文件名        

简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维

3.安装使用kibana

(1)安装和修改配置文件,并启动kibana
简单认识ELK日志分析系统,elk,jenkins,运维

vim /etc/kibana/kibana.yml
#修改主要配置
#取消注释,Kiabana 服务的默认监听端口为5601
server.port: 5601
#取消注释,设置 Kiabana 的监听地址,0.0.0.0代表所有地址
server.host: "0.0.0.0"
#取消注释,配置es服务器的ip,如果是集群则配置该集群中master节点的ip
elasticsearch.url:  ["http://192.168.116.60:9200","http://192.168.116.70:9200"] 
#取消注释,设置在 elasticsearch 中添加.kibana索引
kibana.index: ".kibana"
#取消注释,配置kibana的日志文件路径(需手动创建),不然默认是messages里记录日志
logging.dest: /var/log/kibana.log
 
#创建日志文件,并修改归属权限
touch /var/log/kibana.log
chown kibana:kibana /var/log/kibana.log
 
#启动kibana
systemctl start kibana.service

简单认识ELK日志分析系统,elk,jenkins,运维
(2)使用kibana

访问kibana服务器的5601端口
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维

三.Filebeat+ELK 部署

nginx服务器部署filebeat:192.168.116.40
logstash+kibana服务器:192.168.116.50
es节点1:192.168.116.60
es节点2:192.168.116.70
#关闭防火墙和selinux
systemctl stop firewalld
setenforce 0
#下载nginx,添加测试页面
#配置nginx官方源
cd /etc/yum.repos.d/
vim nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
 
#下载并启动
yum -y install nginx
systemctl enable --now nginx
 
#添加测试页面
cd /usr/share/nginx/html/
echo '<h1>this is nginxlog test1 webpage</h1>' > test1.html
echo '<h1>this is nginxlog test2 webpage</h1>' > test2.html

准备filebeat安装包,解压安装
简单认识ELK日志分析系统,elk,jenkins,运维

tar xf filebeat-6.7.2-linux-x86_64.tar.gz
mv filebeat-6.7.2-linux-x86_64 /usr/local/filebeat

修改filebeat配置文件 /usr/local/filebeat/filebeat.yml

简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
启动filebeat

nohup ./filebeat -e -c filebeat.yml        nohup后台启动(不会因为退出终端而终端)
 -e        同时输出到屏幕(便于实验),也可以使用重定向到文件中
 -c        指定配置文件

简单认识ELK日志分析系统,elk,jenkins,运维
修改logstash配置文件

简单认识ELK日志分析系统,elk,jenkins,运维
启动logstash
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
测试索引收集日志

简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
但是此索引包含了nginx的access.log和error.log,我们可以在配置文件中添加条件判断分割日志,然后重启服务测试
简单认识ELK日志分析系统,elk,jenkins,运维
简单认识ELK日志分析系统,elk,jenkins,运维
在客户端访问nginx测试页面,然后刷新es,出现了分割的索引
简单认识ELK日志分析系统,elk,jenkins,运维
在kibana中创建对应索引

简单认识ELK日志分析系统,elk,jenkins,运维
之后就可以查看了
简单认识ELK日志分析系统,elk,jenkins,运维文章来源地址https://www.toymoban.com/news/detail-633067.html

到了这里,关于简单认识ELK日志分析系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ELK (一)部署ELK+Filebeat日志收集分析系统

    说明:此安装流程只适用于8.0.0以下的版本 1.1 下载ElasticSearch的wget指令: 1.2 解压安装包到指定目录 指定解压缩到 /usr/local 目录下 1.3 修改配置文件 (1)elasticsearch.yml 分别创建 path.data、path.logs 对应的 data、logs文件夹。 详细配置: (2)limits.conf 末尾追加以下内容: (3)s

    2024年02月08日
    浏览(48)
  • ELK 日志分析系统

    目录 一、日志管理方案 二、完整日志系统基本特征 三、ELK 简介 ELK组件: 1、ElasticSearch 2、Logstash 3、Kibana  可以添加的其它组件:  1、Filebeat 2、缓存/消息队列(redis、kafka、RabbitMQ等) 3、Fluentd 三、ELK 的工作原理 四、ELK部署 1、Elasticsearch部署  ①关闭防火墙和安全机制  

    2024年01月21日
    浏览(43)
  • ELK日志监控分析系统

    那么,ELK 到底是什么呢? “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等“存储库”

    2024年02月15日
    浏览(38)
  • 【ELK企业级日志分析系统】安装与部署ELK详解

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash和kibana三个开源工具配合使用 , 完成更强大的,用户对日志的查询、排序、统计需求。 ElasticSearch ElasticSearch:是基于Lucene(一个 全文检索引擎的架构 )开发的分布式存储检索引擎,用来存储各类日志。 El

    2024年02月16日
    浏览(43)
  • 【ELK企业级日志分析系统】部署Filebeat+ELK详解

    接上文安装与部署ELK详解 (1)在Filebeat节点上,安装Apache服务 (2)修改Apache服务的配置文件 (3)开启Apache服务 (4)浏览器访问,验证Apache服务 (1) 安装Filebeat (2)设置filebeat的主配置文件 (3)启动filebeat (4)在Logstash组件所在节点上,新建一个Logstash配置文件(CentOS 7-3) (

    2024年02月16日
    浏览(45)
  • Linux--ELK日志分析系统

            ELK是一套针对日志数据做解决方案的框架,分别代表了三款产品: - E: ElasticSearch(ES),负责日志的存储和检索; - L:Logstash,负责日志的收集,过滤和格式化; - K:Kibana,负责日志的展示统计和数据可视化; ElasticSearch ElasticSearch是一个基于Lucene的搜索服务器。它

    2023年04月27日
    浏览(73)
  • ELK、ELFK日志分析系统

    ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 1.1.1 ElasticSearch ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。 E

    2024年02月13日
    浏览(50)
  • ELK+FileBeat日志分析系统

    ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。 Elasticsearch是个开源分布式搜索引擎

    2024年02月08日
    浏览(39)
  • ELK 企业级日志分析系统的概念、ELK Elasticsearch 集群部署

    1、ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ==ElasticSearch、Logstash 和 Kiabana ==三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch 是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。 E

    2024年02月16日
    浏览(51)
  • ELK日志分析系统和ELFK

    目录 什么要做日志分析平台 一、 Elasticsearch elasticsearch核心概念 二、Logstash Logstash 的主要组件 三、Kibana 介绍 功能 ELK搭建 四、Filebeat Filebeat工作方式 Filebeat工作原理 五、Filebeat和Logstash 为什么使用filebeat收集日志更好 Filebeat结合Logstash的好处 六、ELK+Filebeat+Kafka+Zookeeper ELK 是

    2023年04月08日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包