实验模拟搭建 elfk 日志分析系统

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 实验模拟搭建 elfk 日志分析系统

一    elfk 日志分析系统简要概述

1,是什么

feilbeat + Logstash + Elasticsearch + Kibana模式

这是一种更加完善和灵活的架构,适合处理复杂的日志数据。 在这种模式下,filebeat (beats)负责收日志文件,并将其发送到Logstash进行处理。logstash可以对日志数据进行更多的过滤、转换和增强的操作,并将其发 送到Elasticsearch进行索引。kibana则可以用来查看和分析日志数据

2,架构图

3,为什么要在logstash 前面加filebeat

3.1 为什么Logstash 要被换掉

logstash 搜集数据再输出 但是logstash是java写的程序,会占用内存

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

3.2 filebeat 结合 logstash 带来好处

1)通过 Logstash 具有基于磁盘的自适应缓冲系统,该系统将吸收传入的吞吐量,从而减轻 Elasticsearch 持续写入数据的压力

2)从其他数据源(例如数据库,S3对象存储或消息传递队列)中提取

3)将数据发送到多个目的地,例如S3,HDFS(Hadoop分布式文件系统)或写入文件

4)使用条件数据流逻辑组成更复杂的处理管道

 

二    实验模拟elfk

1, 实验环境

Node1节点(2C/4G):node1/192.168.217.77                   Elasticsearch  Kibana

Node2节点(2C/4G):node2/192.168.217.88                    Elasticsearch

Apache节点:apache/192.168.217.99                                  Logstash  Apache

Filebeat节点:filebeat/192.168.217.66                                   Filebeat

 

2, 搭建elk 框架

具体步骤见 笔者上一篇博客,已经详尽备述。

3, 在Filebeat节点 安装filebeat

3.1 安装filebeat

3.2   编辑filebeat 配置文件

代码如下:

------------filebeat.prospectors-------------------
- type: log         #指定 log 类型,从日志文件中读取消息
  enabled: true
  paths:
    - /var/log/messages       #指定监控的日志文件
    - /var/log/*.log
  fields:           #可以使用 fields 配置选项设置一些参数字段添加到 output 中
    service_name: filebeat
    log_type: log
    service_id: 192.168.10.16
 
 
--------------Elasticsearch output-------------------
(全部注释掉)
 
 
 
----------------Logstash output---------------------
output.logstash:
  hosts: ["192.168.217.99:5044"]      #指定 logstash 的 IP 和端口
3.3  启动 filebeat

4,   在 Logstash 组件所在(99机器)节点上新建一个 Logstash 配置文件

4.1 手写子配置文件

代码如下:

加这个 stdout {

       codec => rubydebug

   }

意义 可以在logstash机器显示传输过程,更好判断,如果出现故障是哪个节点的原因

cd /etc/logstash/conf.d
 
vim logstash.conf
input {
    beats {
        port => "5044"
    }
}
output {
    elasticsearch {
        hosts => ["192.168.217.77:9200"]
        index => "%{[fields][service_name]}-%{+YYYY.MM.dd}"
    }
    stdout {
        codec => rubydebug
    }
}
4.2 重新启动 logstash 并指定配置文件

5, 测试elfk  实验结果

5.1 访问 es-head 页面

可以看到多了  以filebeat- 时间      这个索引的日志,这写日志,就是先从filebeat, 再到logstash,再到es 机器,再通过es-head 友好显示

5.2 访问 kibana 页面 添加索引

浏览器访问 http://192.168.217.77:5601 登录 Kibana,单击“Create Index Pattern”按钮添加索引“filebeat-*”,单击 “create” 按钮创建,单击 “Discover” 按钮可查看图表信息及日志信息。

 

三   扩展排错思路

我是客户机 怎么检测 服务器的某个端口开没开

方法 1:使用命令行工具 Telnet

如果您使用的客户机是运行 Windows 或类 Unix/Linux 系统,并且支持 Telnet 客户端(在某些现代操作系统中可能需要手动启用),可以使用 Telnet 命令进行端口检查。操作步骤如下:

Windows:

  1. 打开命令提示符(Windows 用户可以通过搜索栏输入 "cmd" 找到)或 PowerShell。
  2. 输入以下命令,替换 <server_ip> 为服务器的 IP 地址,<port_number> 为要检查的端口号:
    Cmd

1telnet <server_ip> <port_number>

  1. 例如:
    Cmd

1telnet 192.168.1.100 80

Unix/Linux/MacOS:

  1. 打开终端。
  2. 输入类似命令:
    Bash

1telnet <server_ip> <port_number>

  1. 例如:
    Bash

1telnet 192.168.1.100 80

如果端口开放且服务响应,您将看到一个空白屏幕(或欢迎信息,取决于服务类型)。如果端口未开放或无响应,通常会显示类似于 "Could not open connection to the host, on port <port_number>: Connection refused" 的错误消息。

方法 2:使用 nc (Netcat) 或 ncat

如果您使用的客户机支持 Netcat(ncncat,具体取决于系统版本),这是一个更灵活的网络工具,可用于端口检查。操作如下:

Unix/Linux/MacOS:

Bash

1nc -vz <server_ip> <port_number>

Bash

1ncat -vz <server_ip> <port_number>

Windows(如果安装了 Nmap 包含的 Ncat):

Cmd

1ncat -vz <server_ip> <port_number>

-v 参数表示详细输出,-z 参数表示进行扫描而不真正建立连接。如果端口开放,命令会显示类似 "Connection succeeded!" 或 "succeeded!" 的信息。否则,会提示 "Connection refused" 或类似的错误消息。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
2月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
33 0
|
2月前
|
存储 消息中间件 人工智能
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
早期 MiniMax 基于 Grafana Loki 构建了日志系统,在资源消耗、写入性能及系统稳定性上都面临巨大的挑战。为此 MiniMax 开始寻找全新的日志系统方案,并基于阿里云数据库 SelectDB 版内核 Apache Doris 升级了日志系统,新系统已接入 MiniMax 内部所有业务线日志数据,数据规模为 PB 级, 整体可用性达到 99.9% 以上,10 亿级日志数据的检索速度可实现秒级响应。
AI大模型独角兽 MiniMax 基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志系统,PB 数据秒级查询响应
|
2月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
1月前
|
JSON 缓存 fastjson
一行日志引发的系统异常
本文记录了一行日志引发的系统异常以及作者解决问题的思路。
|
7天前
使用装饰器实现自动化日志系统
使用装饰器实现自动化日志系统
10 0
|
2月前
|
存储 监控 数据可视化
在Linux中,如何查看系统日志?
在Linux中,如何查看系统日志?
|
2月前
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
2月前
|
运维 监控 Ubuntu
在Linux中,如何查看系统日志文件?
在Linux中,如何查看系统日志文件?
|
2月前
|
存储 消息中间件 监控
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统ELK、日志收集分析
Java日志详解:日志级别,优先级、配置文件、常见日志管理系统、日志收集分析。日志级别从小到大的关系(优先级从低到高): ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF 低级别的会输出高级别的信息,高级别的不会输出低级别的信息
|
2月前
|
网络安全
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
【Azure Service Bus】启用诊断日志来获取客户端访问Azure Service Bus的IP地址 [2024-03-26 实验结果失败]
下一篇
无影云桌面