当前位置: 首页 > news >正文

【监控系列】ELK

ELK Stack,现常称为Elastic Stack,是一个功能强大的开源工具组合,专为实时数据采集、存储、分析和可视化设计。以下是对其核心组件、工作流程、应用场景及挑战的详细解析:


​一、核心组件

  1. Elasticsearch

    • 角色:分布式搜索和分析引擎,基于Apache Lucene构建。
    • 功能
      • 存储大规模数据,支持近实时搜索。
      • 提供倒排索引、结构化查询、全文检索和聚合分析。
      • 分布式架构支持水平扩展和高可用性。
  2. Logstash

    • 角色:数据采集和处理管道。
    • 功能
      • 支持多种输入源(日志文件、Kafka、Beats等)。
      • 使用过滤器(如Grok、Mutate)解析、转换数据。
      • 输出到Elasticsearch、Kafka等存储或消息队列。
  3. Kibana

    • 角色:数据可视化和分析平台。
    • 功能
      • 创建交互式图表、仪表盘、地图等。
      • 提供开发工具(如Console)管理Elasticsearch。
      • 支持机器学习、APM(应用性能监控)等高级功能。
  4. Beats​(扩展组件)

    • 角色:轻量级数据采集器家族。
    • 常见工具
      • Filebeat:收集日志文件。
      • Metricbeat:采集系统和服务指标。
      • Packetbeat:网络流量分析。
      • Winlogbeat:Windows事件日志收集。

​二、典型工作流程

  1. 数据采集:Beats或Logstash从服务器、应用等来源收集日志或指标。
  2. 数据处理:Logstash解析、过滤数据(如提取字段、转换格式)。
  3. 数据存储:处理后的数据存入Elasticsearch,建立索引以便快速检索。
  4. 数据可视化:通过Kibana查询数据,生成图表和仪表盘,支持实时监控和分析。

三、部署ELK

1. 下载数据包
wget  https://artifacts.elastic.co/packages/7.x/yum/7.2.0/elasticsearch-7.2.0-x86_64.rpm
wget https://artifacts.elastic.co/packages/7.x/yum/7.2.0/logstash-7.2.0.rpm
wget https://artifacts.elastic.co/packages/7.x/yum/7.2.0/kibana-7.2.0-x86_64.rpm
2. 安装ES
rpm -ivh elasticsearch-7.2.0-x86_64.rpm
#vim /etc/elasticsearch/elasticsearch.yml
  path.data: /var/lib/elasticsearch
  path.logs: /var/log/elasticsearch
  network.host: 0.0.0.0
  http.port: 9200
  cluster.initial_master_nodes: ["127.0.0.1", "0.0.0.0"]
systemctl enable elasticsearch
systemctl start elasticsearch
systemctl status elasticsearch
netstat -tunlp
curl localhost:9200
3. 安装kibana
rpm -ivh kibana-7.2.0-x86_64.rpm
#vim /etc/kibana/kibana.yml
  server.port: 5601
  server.host: "0.0.0.0"
  elasticsearch.hosts: ["http://localhost:9200"]
systemctl enable kibana
systemctl start kibana
systemctl status kibana
netstat -tunlp
curl localhost:5601 -L
4. 安装logstash
rpm -ivh logstash-7.2.0.rpm
systemctl start logstash
systemctl enable logstash
systemctl status logstash
netstat -nlpt
5. 测试
/usr/share/logstash/bin/logstash -e 'input { stdin { } } output { stdout {} }'
直至出现 Successfully started Logstash API endpoint。输入“hello world”回车,即可打印出输出。
6. 创建instance,观察kibana
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test.conf --path.data=/var/lib/logstash/test &
/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/yun.conf --path.data=/var/lib/logstash/yun &

#cat /etc/logstash/conf.d/yun.conf 
  input {
      file {
          path => ["/tmp/yun.log"]
          sincedb_path => "/dev/null"
          start_position => "beginning"
      }
  }
  filter {
  }
  output {
      elasticsearch {
          hosts => ["http://localhost:9200"]
      }

cat /tmp/yun.log
  yy01
7. 安装filebeat
rpm -ivh filebeat-1.3.0-x86_64.rpm 
# grep -Ev '^$|#' /etc/filebeat/filebeat.yml
  filebeat:
    prospectors:
      -
        paths:
          - /var/log/*.log
        input_type: log
    registry_file: /var/lib/filebeat/registry
  output:
    logstash:
      hosts: ["localhost:9600"]
  shipper:
  logging:
    files:
systemctl start filebeat
systemctl status filebeat

# cat /etc/logstash/conf.d/file.conf 
  input {
      beats {
          port => "9600"
          client_inactivity_timeout => 3000
      }
      stdin {}
  }
  output {
      elasticsearch {
          hosts => ["http://localhost:9200"]
          index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
      }
  }
systemctl restart logstash
systemctl status logstash
netstat -tunlp

8. 查看索引
#查索引
curl http://192.168.88.23:9200/_cat/indices?v
#索引里搜索数据
curl http://192.168.88.23:9200/filebeat-test--2022.04.29/_search

相关文章:

  • 《水上安全》杂志社水上安全编辑部水上安全杂志2025年第3期目录
  • 持续集成与持续交付:这里有从开发到部署的全流程优化
  • Linux 基础入门操作 第十二章 TINY Web 服务器
  • MyBatis StatementHandler是如何创建 Statement 对象的? 如何执行 SQL 语句?
  • mac怎么安装pycharm?
  • 【加密社】币圈合约交易量监控,含TG推送
  • 简单描述一下,大型语言模型简史
  • 内网穿透的应用-本地部署ChatTTS教程:Windows搭建AI语音合成服务的全流程配置
  • JavaScript数组和对象
  • DeepSeek面试——模型架构和主要创新点
  • C# SerialPort 类中清空缓存区的方法
  • AI对软件工程(software engineering)的影响在哪些方面?
  • JVM常用垃圾回收器
  • UE4学习笔记 FPS游戏制作17 让机器人持枪 销毁机器人时也销毁机器人的枪 让机器人射击
  • 【YOLO V3】目标检测 Darknet 训练自定义模型
  • uniapp超简单ios截屏和上传app store构建版本方法
  • 什么是视图,数据库的视图本质上就是个提前写好的sql语句,创建的一个虚拟表
  • VMWare Ubuntu 详细安装教程
  • 贪心算法(11)(java)加油站
  • Flask接口开发--引入mysql
  • 广东省副省长刘红兵跨省调任湖南省委常委、宣传部长
  • 体坛联播|欧冠半决赛阿森纳主场不敌巴黎,北京男篮险胜山西
  • 一位排球青训教练的20年时光:努力提高女排球员成才率
  • 来伊份一季度净利减少近八成,今年集中精力帮助加盟商成功
  • 上海灵活就业人员公积金新政有哪些“创新点”?
  • 江苏银行一季度净赚近98亿增逾8%,不良贷款率微降