ELK 日志分析系统部署

ELK/ELFK日志分析系统部署 阅读详情

ELK 日志分析系统

在这里插入图片描述

组件简介
0、beats :日志收集客户端
1、Logstash:日志收集服务端
2、Elasticsearch :日志搜索引擎持久化
3、Kinaba :数据分析工具
Beats可以直接(或者通过Logstash)将数据发送到Elasticsearch,在那里你可以进一步处理和增强数据,然后在Kibana中将其可视化。
在这里插入图片描述
Beats是个工具集,它包含了filebeat,winlogbeat、metricbeat等等数据收集子工具,一般我们使用的日志文件收集工具,因此filebeat用的最多也是最普遍的使用方式。

Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。(当然,我们最喜欢的是Elasticsearch)
Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。

  • Logstash 能够动态地转换和解析数据,不受格式或复杂度的影响:
  • 利用 Grok 从非结构化数据中派生出结构
  • 从 IP 地址破译出地理坐标
  • 将 PII 数据匿名化,完全排除敏感字段
  • 整体处理不受数据源、格式或架构的影响
    在这里插入图片描述
    以上是数据处理各种类型的常见方式

数据的持久化,因为这里我们重点是搜索引擎的作为持久化数据。我们也可以把数据放入缓存中持久化,在大数据中也可以作为Hadoop的数据源作为大数据持久化,流式数据处理中也可以作为jstom数据的流式数据源。

组件部署

内容整理进行中…

Elasticsearch

参考我前面的篇章:ELK第一篇:Elasticsearch安装
https://blog.youkuaiyun.com/zjcjava/article/details/78643542

elasticsearch-7.3.0\bin中,双击启动执行 elasticsearch.bat
centos启动

bin/elasticsearch &

用浏览器访问:http://192.168.199.179:9200/

Kinaba

1 kibana下载 https://www.elastic.co/cn/downloads/
2 解压文件
3 需改配置文件:config\kibana.yml
配置文件里面有很多重要的默认配置信息,去掉前面的#注释即可:

server.port: 5601
server.host: "localhost"
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"
logging.dest: D:\mnt\kibana.log 

还有ES的账号密码。
这些配置根据需要进行修改,例如:ES和kibana不在一个主机,那就需要改ip。
这里软件都在同一个主机,kibana的配置保持不变即可。
4 启动: bin\kibana.bat(windos启动)
6 浏览:http://localhost:5601/

filebeat

windows直接下载解压,修改 filebeat.yml

paths:
    #- /var/log/*.log
    - D:\mnt\min-tool\nginx-1.16.0\logs\access.log
  tags: ["log1"]
output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

启动filebeat

 .\filebeat -e -c filebeat.yml

如果你有nginx的话就使用nginx,同时配置nginx.config的日志格式如下

log_format  main  '$remote_addr - $remote_user [$time_local] $http_host $request_method "$uri" "$query_string" '
                  '$status $body_bytes_sent "$http_referer" $upstream_status $upstream_addr $request_time $upstream_response_time '
                  '"$http_user_agent" "$http_x_forwarded_for"' ;
    access_log  logs/access.log  main;

以上配置的日志格式输出数据如下

192.168.0.200 - - [12/Aug/2019:23:08:18 +0800] 192.168.0.200 GET "/index.html" "name=bamboo" 304 0 "-" - - 0.000 - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-"
192.168.0.200 - - [12/Aug/2019:23:10:43 +0800] 192.168.0.200 GET "/index.html" "name=bamboo" 304 0 "-" - - 0.000 - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-"

如果你没有的话直接贴如上面的数据到acces.log中即可,没贴一行保存,beats就会触发一次发送日志到logstash中。

Logstash

windows直接下载解压,使用命令启动如下

#输出数据到控制台,调试时使用
logstash -e "input { stdin { } } output { stdout { codec => rubydebug } }"
#输出数据到elasticsearch 并配置号ip
logstash -e "input { stdin { } } output { elasticsearch { hosts => localhost } }"

控制台模式输入数据控制台打印信息

{                                               
      "@version" => "1",                        
    "@timestamp" => 2019-08-11T16:47:41.155Z,   
          "host" => "DESKTOP-VLO4B8K",          
       "message" => "hello\r"                   
}                                               

message是我们输入的内容,其他信息是logstash自带的信息。后面的日志解析也是围绕这message展开,和Hadoop处理行数据原理有些相似。

调试模式,启动后访问端口可以看到配置信息
http://localhost:9600/

使用配置文件启动
这里创建一个文件 logstash.conf

cd config
cp  logstash-sample.conf  logstash.conf

配置文件 ,这里先用控制台输入方式输入日志信息,便于调试,成功后再打开beats

# Sample Logstash configuration for creating a simple
# Beats -> Logstash -> Elasticsearch pipeline.

input {
stdin { } 
# beats {
#   port => 5044
# }


}


filter {  # 配置过滤器
    grok {
        match => { 
         "message" =>"%{IPORHOST:remote_addr} - - \[%{HTTPDATE:log_timestamp}\] %{HOSTNAME:http_host} %{WORD:request_method} \"%{URIPATH1:uri}\" \"%{URIPARM1:param}\" %{BASE10NUM:http_status} %{BASE10NUM:body_bytes_sent} \"(?:%{URI1:http_referrer}|-)\" (%{BASE10NUM:upstream_status}|-) (?:%{HOSTPORT:upstream_addr}|-) (%{BASE16FLOAT:upstream_response_time}|-) (%{BASE16FLOAT:request_time}|-) (?:%{QUOTEDSTRING:user_agent}|-) \"(%{WORD:x_forword_for}|-)\""
        }
    }

    mutate { # beats传递过来的一些附加数据并不是我们想要的,同时把message数据也去掉,只保留我们想要的数据即可
                remove_field => ["message","host","log","agent","ecs","input","tags"]
    }

    date {  
    	match => [ "log_timestamp", "yyyy-MMM-dd-HH:mm:ss Z" ]
    	locale => "cn"
  	} 
}

output {

 stdout {
    codec => rubydebug  # 将日志输出到当前的终端上显示
  }

  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "nginx-%{[@metadata][version]}-%{+YYYY.MM.dd}" #日志索引按日期生成格式nginx-7.3.0-2019.08.12
	}

}

检查配置并启动Logstash

bin/logstash -f logstash.conf --config.test_and_exit

(画外音:–config.test_and_exit选项的意思是解析配置文件并报告任何错误)

bin/logstash -f logstash.conf --config.reload.automatic

(画外音:–config.reload.automatic选项的意思是启用自动配置加载,以至于每次你修改完配置文件以后无需停止然后重启Logstash)

测试数据

192.168.0.200 - - [12/Aug/2019:23:10:43 +0800] 192.168.0.200 GET "/index.html" "name=bamboo" 304 0 "-" - - 0.000 - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36" "-"

控制台打印如下数据则说明正确

{                                                                                                  
                "@timestamp" => 2019-08-12T15:10:48.166Z,                                          
                  "@version" => "1",                                                               
           "body_bytes_sent" => "0",                                                               
    "upstream_response_time" => "0.000",                                                           
            "request_method" => "GET",                                                             
                 "http_host" => "192.168.0.200",                                                   
               "http_status" => "304",                                                             
             "log_timestamp" => "12/Aug/2019:23:10:43 +0800",                                      
                "user_agent" => "\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KH
TML, like Gecko) Chrome/76.0.3809.100 Safari/537.36\"",                                            
               "remote_addr" => "192.168.0.200",                                                   
                      "tags" => [                                                                  
        [0] "_dateparsefailure"                                                                    
    ],                                                                                             
                       "uri" => "/index.html",                                                     
                     "param" => "name=bamboo"                                                      
}                                                                                                                                                                                                                                                                                                                   

这里面去掉了beats中附加的一些数据,只保留我们需要的日志信息就可以了。

如果控制台打印的数据符合我们的要求,则把logstash配置文件输入部分beats、输出到ES的部分注释去掉,如果你启动了nginx的话刷新首页即可看到acces.log日志增加一行同时,logstash的控制台也会输出数据,最后logstash把日志信息发送到ES中。

同时打开es-head插件页面可以看到索引已经生成。
在这里插入图片描述
可以查看到索引nginx-7.3.0-2019.08.12的数据如下,说明已经基本搭建成功了
在这里插入图片描述

常用的组合结构

elk只是基本结构,当随着数据量和服务集群的增多,那么高并发和大数据量的情况就需要对结构进行优化,如下图是斗鱼ELK日志分析平台实践的模式,使用kafka中间件作为数据缓冲,最终把数据分流到不同的数据处理组件服务上(除了logstash,还用到了hangout,custom自定义处理器),从而达到数据分流削峰队列化减少对处理组件下游的数据并发量的方式达到服务稳定。
斗鱼ELK日志分析平台实践

参考资料

filebeat部署
https://www.cnblogs.com/cjsblog/p/9445792.html
window下部署beat
https://blog.youkuaiyun.com/weixin_33973600/article/details/93638199
elk部署
https://blog.youkuaiyun.com/calvin4cn/article/details/84982256
斗鱼基于ELK的亿级实时日志分析平台实践
https://www.jianshu.com/p/ec130853bb9d

第三篇:AMD 和 Intel 它像“乐高积木”一样,可以通过标准化的接口与其他部分组合,构建复杂系统。理解组件后,你会发现从操作系统到微服务,现代软件本质上都是组件的组合! 阅读详情

相关推荐

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制。

Pangenes的博客 1332

超详细部署ELK日志分析系统!每一步骤都有记录!ELK的详细使用!

一、ELK简介 日志分析是运维工程师解决系统故障,发现问题的主要手段。日志主要包括系统日志、应用程序日志和安全日志。系统运维和开发人员可以通过日志了解服务器软硬件信息、检查配置过程中的错误及错误发生的原因,经常分析日志可以了解服务器的负荷,性能安全性,从而及时采取措施纠正错误。 日志是一个非常庞大的数据,并且常常被分散在不同的设备上,这样排查问题的时候找日志就非常繁琐困难。 这时,一个专门处理日志的系统就非常必要,这里介绍其中的一种,ELK日志分析系统(ELasticsearch+Logstash+Kiba

qq_41786285的博客 5531

优惠券管理

(请设计一个优惠券兑换码生成方案,可以支持20亿以上的唯一兑换码,兑换码长度不超过10,只能包含字母数字,并且要保证生成和校验算法的高效)最后把签名值的后14位、新鲜值(4位)、自增序列(32位)拼接,得到一个50位二进制数,然后与一个较大的质数做异或运算加以混淆,再基于Base32或Base64转码,即可的对兑换码。现在,就剩下防止爆刷了。自增id从1增加到Integer的最大值,可以达到40亿以上个数字,而占用的字节仅仅4个字节,也就是32个bit位,距离50个bit位的限制还有很大的剩余,符合要求!

qq_36312661的博客 2204

ELK日志分析系统

一、ELK日志分析系统简介 1、日志服务器的优缺点 优点 提高安全性 集中存放日志 缺点 对日志的分析困难 2、ELK 日志简化分析的管理工具,由Elasticsearch(ES)、Logstash、Kibana三个开源工具组成,官方网站: https://www.elastic.co/products ES(nosql非关数据库):存储功能和索引 Logstash(收集日志):到应用服务器上拿取log,并进行格式转换后输出到es中 通过input功能来收集/采集log filter过滤器:格式化数据 o

weixin_51720711的博客 1099

YOLOv10改进策略【注意力机制篇】| 2024 蒙特卡罗注意力(MCAttn)模块,提高小目标的关注度

本文记录的是基于蒙特卡罗注意力(MCAttn)模块的YOLOv10目标检测改进方法研究。利用提高的跨尺度特征提取能力,使模型能够更好地传递和融合提取的多尺度特征,提高对小目标的关注度。Exploiting Scale-Variant Attention for Segmenting Small Medical Objects使用一种基于随机采样的池化操作来生成尺度无关的注意力图。它从三个不同尺度(3×33×33×3、2×22×22×2和1×11×11×1,即池化张量)中随机选择一个1×11×11×1注意力图

Limiiiing的博客 2186

OPPO 后端校招面试,过于简单了!

你好,我是 Guide。2026 届秋招陆续开奖公司的越来越多了,今天来看一家手机厂 OPPO。前几天,已经分享了和今年校招开奖的情况。其中,小红书的薪资最为炸裂,大白菜一年都能给到 51w+。不过,相对应的工作强度和压力也是真的难顶,确实很难有钱多又轻松的活!OV (OPPO 和 Vivo)这几年发展真还可以的,这两家的高端机口碑都不错。本人也是最近入手了一款 Vivo 的上一代旗舰,拍照是真的不错啊!每个月会有 1.2k 生活补贴,生活费是按照 8 % 缴纳。

JavaGuide 748

强大的ELK日志分析系统!

ELK日志分析系统一.ELK日志分析系统简介1.日志服务器的优缺点2.ELK简介3.Logstash管理包含四种工具4.elk工作原理二.Elasticsearch介绍三.Elasticsearch的基础核心概念:1.接近实时(NRT)2.集群(cluster)3.节点(node)4.索引(index)5.类型(type)6.文档(document)7.分片和副本(shards & replicas)四.logstash介绍1.logStash的主要组件:2.LogStash主机分类:五.Kiban

guguai7的博客 9995

逻辑电平(TTL/CMOS/LVDS/LVPECL/CML)

逻辑电平介绍 TTL------晶体管-晶体管逻辑门(Transistor-Transistor Logic gate) TTL采用5V电源

sinat_15677011的博客 2万+

部署ELK日志分析系统——超详细

选择**”Discover“**选项卡,在中间下拉列表中选择刚添加的apache_access-*索引,可以查看相应的图表及日志信息,还可以根据Fields进行归类显示。打开浏览器访问http://192.168.93.101:9200、http://192.168.93.102:9200,可以查看到节点node1、node2的信息。登录Kibana,单击**”Create Index Pattern“**按钮添加索引。选择**“概览”**选项卡,还可以看到索引默认被分片成5个,且存在一个副本。

weixin_73059729的博客 1686

Scratch全攻略:从入门到实践的编程之旅

Scratch 是一款由麻省理工学院(MIT)开发的图形化编程工具 ,它诞生的初衷是为了让编程教育更加普及,尤其是让孩子们能够轻松接触和学习编程。与传统的基于文本代码的编程方式不同,Scratch 通过将编程指令以图形化的积木形式呈现,极大地降低了编程的门槛,让编程变得如同搭积木一样简单有趣。

邓邓子的博客 1万+

【FreeSwitch开发实践】外呼网关配置(拨打电话)

FreeSwitch开发一个重要应用是外呼,所谓外呼就拨打真实电话或手机号呼叫,配合语音机器人可以实现智能客服的功能。外呼配置主要是配置外呼服务器,外呼服务器主要指SIP网关,每个外呼服务器就是一个SIP节点,FreeSwitch服务也可以是一个SIP节点。本文主要介绍了FreeSwitch外呼相关配置,主要有外呼配置的模式,包括注册模式和非注册模式网关加载的查看方法拨号中常见的呼出配置和呼入配置如果觉得有些帮助或觉得文章还不错,请关注一下博主,你的关注是我持续写作的动力。............

xiao2macf的专栏 1万+

ELK日志分析系统,ELFK详解部署

ELK日志分析系统是一个开源的日志管理平台,它由三个主要组件组成,分别是Elasticsearch、Logstash和Kibana。这三个组件协同工作,提供了一个完整的解决方案,用于收集、存储、搜索、分析和可视化大规模的日志数据。以下是ELK日志分析系统的主要组件及其功能:Elasticsearch:基于Lucene的分布式存储检索引擎,用于存储各类日志。通过RESTful Web接口进行通信,允许用户通过浏览器与Elasticsearch交互。实时、分布式、可扩展的搜索引擎,支持全文和结构化搜索。通常用于

qq_51545656的博客 2113

【Unity动画优化插件】BT - OptiAnimX —— AAA级动画优化框架深度剖析

BT - OptiAnimX 是一款面向 Unity 的高性能动画优化框架,核心目标是解决多角色动画场景中的性能瓶颈问题。该插件对标《战争机器5》和《巫师3》等 AAA 游戏中的动画优化技术,通过一整套自动化与智能化的优化策略,将动画性能提升与视觉质量控制结合在一起。它适用于从移动端、VR 到高端 PC 的多平台项目,尤其在“多人角色 + 高频动画”的场景中表现突出,例如 MMO、开放世界、动作游戏等。BT - OptiAnimX 本质上是一套“动画性能调度系统”,而不仅仅是优化工具。

2403_88403568的博客 432

ELK日志分析系统概述及部署

①ElasticSearch是基于Lucene(一个全文检索引擎的架构)开发的分布式存储检索引擎,用来存储各类日志。②Elasticsearch 是用 Java 开发的,可通过 RESTful Web 接口,让用户可以通过浏览器与 Elasticsearch 通信。③Elasticsearch是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大容量的日志数据,也可用于搜索许多不同类型的文档。就是提供了一个分布式多用户能力的全文搜索引擎。

rmh0713的博客 1521

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

ELK日志分析系统(二)之ELK搭建部署

由于es服务启动之后,访问界面比较丑陋,为了更好的查看索引库当中的信息,我们可以通过安装el

qq_45088125的博客 3905

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ELK日志分析系统部署

这个模块在上面的内容中没有对它详细介绍,它是一款轻量的日志收集代理,用来部署在客户端当中,这个服务较Logstash来说能够节省资源,一般在生产环境中大多采用这种架构,但是这种架构有一个弊端,那就是当Logstash出现故障后,则会造成日志的丢失。Elasticsearch+Logstash+Kibana:这种架构是最常见的一种,也是最简单的一种架构,这种架构通过Logstash收集日志,运用Elasticsearch分析日志,最后通过Kibana中展示日志信息。

啥也不会的云计算小白 1274

ELK 日志分析系统和部署

在日常工作中会面临很多问题,一般通过工作经验和软件自带的日志或者系统日志来解决问题,如果1台或者几台服务器,我们可以通过 linux命令,tail、cat通过grep、awk等过滤去查询定位日志查问题,如果有几十台几百台的话这样的操作太繁琐效率低也不现实。所以建立出了一套集中式的方法1. 收集**系统日志**:为监控做准备,要收集tomcat系统日志,tomcat所在节点的日志2. 收集**服务日志**:比如数据库mysql,收集慢查询日志、错误日志、普通日志,要收集tomcat服务日志。3. 收集**业务

WuDan_1112的博客 1567

ELK 日志分析系统的部署

收集**系统日志**:为监控做准备,要收集tomcat系统日志,tomcat所在节点的日志 收集**服务日志**:比如数据库mysql,收集慢查询日志、错误日志、普通日志,要收集tomcat服务日志。 收集**业务日志**(业务日志必须收集):业务口子日志在log4j,log4j是由java环境开发的,跑在tomcat上1.接近实时ElasticSearch是一个接近实时的搜索平台这就是说,我们从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟(通常是1秒)2.集群化集群每一台服务器都有自己的一个唯一标

m0_59579177的博客 253

ELK日志分析系统之ELK搭建部署

ELK搭建与部署

weixin_71429790的博客 3982

ELK企业级日志分析系统,ELK部署

ELK平台是一套完整的日志集中处理解决方案,将ElasticSearch、Logstash和Kibana三个开源工具配合使用,满足更强大的用户对日志的查询、排序、统计需求。ELK是Elasticsearch、Logstash、Kibana的缩写,这三工具组合,用于数据收集、存储、搜索和可视化分析。ELK 的核心价值是“集中化收集 + 高效检索 + 可视化分析”

sk13587280072的博客 746

基于Docker容器部署ELK日志分析系统

部署ELK日志分析系统,比较消耗计算机硬件,如果使用虚拟机进行测试部署,建议分配较多的硬件资源,否则,当elk容器运行后,会使其无法正常运行。我这里将分配给docker主机5G内存,四个CPU。 一、环境准备 我这里使用一台docker主机(如需要部署docker服务,可以参考博文:Docker的安装详细配置),其IP地址为192.168.20.6,在其之上运行elk容器。 二、配置docker主...

lvjianzhaoa的博客 805

ELK 日志分析系统介绍与部署

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

2301_78106979的博客 1454
上一篇: 服务追踪Zipkin+Spring Cloud Sleuth
下一篇: Windows 上安装 ElasticSearch7.X
牧竹子
博客等级 码龄17年 572粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值