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

简介: 实验模拟搭建 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" 或类似的错误消息。

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
WGLOG日志管理系统是怎么收集日志的
WGLOG通过部署Agent客户端采集日志,Agent持续收集指定日志文件并上报Server,Server负责展示与分析。Agent与Server需保持相同版本。官网下载地址:www.wgstart.com
|
6月前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
595 122
基于docker搭建监控系统&日志收集
|
9月前
|
监控 API 开发工具
HarmonyOS Next的HiLog日志系统完全指南:从入门到精通
本文深入解析HarmonyOS Next的HiLog日志系统,涵盖日志级别、核心API、隐私保护与高级回调功能,助你从入门到精通掌握这一重要开发工具。
|
6月前
|
Ubuntu
在Ubuntu系统上设置syslog日志轮替与大小限制
请注意,在修改任何系统级别配置之前,请务必备份相应得原始档案并理解每项变更可能带来得影响。
763 2
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
873 90
|
存储 前端开发 数据可视化
Grafana Loki,轻量级日志系统
本文介绍了基于Grafana、Loki和Alloy构建的轻量级日志系统。Loki是一个由Grafana Labs开发的日志聚合系统,具备高可用性和多租户支持,专注于日志而非指标,通过标签索引而非内容索引实现高效存储。Alloy则是用于收集和转发日志至Loki的强大工具。文章详细描述了系统的架构、组件及其工作流程,并提供了快速搭建指南,包括准备步骤、部署命令及验证方法。此外,还展示了如何使用Grafana查看日志,以及一些基本的LogQL查询示例。最后,作者探讨了Loki架构的独特之处,提出了“巨型单体模块化”的概念,即一个应用既可单体部署也可分布式部署,整体协同实现全部功能。
4903 69
Grafana Loki,轻量级日志系统
|
8月前
|
存储
WGLOG日志管理系统可以采集网络设备的日志吗
WGLOG日志审计系统提供开放接口,支持外部获取日志内容后发送至该接口,实现日志的存储与分析。详情请访问:https://www.wgstart.com/wglog/docs9.html
|
12月前
|
存储 消息中间件 缓存
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
基于阿里云SelectDB,MiniMax构建了覆盖国内及海外业务的日志可观测中台,总体数据规模超过数PB,日均新增日志写入量达数百TB。系统在P95分位查询场景下的响应时间小于3秒,峰值时刻实现了超过10GB/s的读写吞吐。通过存算分离、高压缩比算法和单副本热缓存等技术手段,MiniMax在优化性能的同时显著降低了建设成本,计算资源用量降低40%,热数据存储用量降低50%,为未来业务的高速发展和技术演进奠定了坚实基础。
541 1
MiniMax GenAI 可观测性分析 :基于阿里云 SelectDB 构建 PB 级别日志系统
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
269 10
|
存储 监控 安全
5款 Syslog集中系统日志常用工具对比推荐
集中管理Syslog有助于持续监控网络中的恶意活动,确保日志的搜索和分析更为便捷。常用工具包括Rsyslog、Syslog-ng、Logstash和Fluentd,它们各有优劣。Rsyslog通过多种协议确保日志传输的安全性;Syslog-ng支持高效收集和转发日志;Logstash能解析多源日志并索引;Fluentd将日志转换为JSON格式。卓豪EventLog Analyzer则提供一体化的日志管理,支持日志分析、报表生成、用户行为分析及实时告警,是全面的日志管理解决方案。
360 0