快速搭建ELK毫秒级响应数据库

关于ELK以及其优势

简单GPT一下

ELK 是 Elasticsearch、Logstash 和 Kibana 三个开源项目的首字母缩写,通常一起使用构成一个强大的日志管理和分析解决方案。下面将介绍它们各自的功能和ELK的优势:
– Elasticsearch:
是一个基于 Lucene 构建的高性能搜索引擎。
主要用于全文搜索和分析。
具有高伸缩性,可以水平扩展,并且能够快速处理大量数据。
– Logstash:
是一个强大的数据处理管道工具。
能够动态地收集、处理和转发日志和事件数据
支持多种输入、过滤、编解码和输出插件。
– Kibana:
是一个为 Elasticsearch 提供数据可视化的 Web 应用程序。
允许用户创建和分享图表、地图、表格等,以图形化展示 Elasticsearch 索引中的数据。
通常用于日志和时间序列分析、应用监控等。

ELK 相比于 MySQL 的优势主要在以下几点:
1. 文本搜索处理能力: Elasticsearch 提供全文搜索功能,对于复杂的文本查询和大数据集的文本处理有明显优势。
2. 数据处理及实时分析: Logstash 能够实时处理和分析数据,适用于日志管理和复杂事件处理,而 MySQL 更多用于结构化数据存储。
3. 数据可视化: Kibana 提供了丰富的数据可视化选择,能够以图表、地图等形式直接在 Web 界面上展示数据分析结果。
4. 扩展性与高可用性: 集群/分你手机友好
5. 大数据兼容性: 对日志和非结构化数据友好

省流:

  • 优点:全文检索、毫秒级响应
  • 缺点:约三倍原文大小的索引

安装

由于网上都是Docker/二进制文件分开部署,让我非常烦躁,怎么这么好的东西就不能一次搞完呢!
PS:这样不方便集群管理,不过本地跑还是很爽的🤣

ELK不支持使用latest部署,我们需要自己指定版本
在测试中8.x版本无法正常部署,建议使用7.x

version: '3'
services:
  elasticsearch:
    image: elasticsearch:7.17.19
    environment:
      - ES_JAVA_OPTS=-Xms512m -Xmx512m
      - discovery.type=single-node
      - cluster.name=es-docker-cluster
      - http.host=0.0.0.0
    volumes:
      - ./es-data:/usr/share/elasticsearch/data
      - ./es-plugins:/usr/share/elasticsearch/plugins
      - ./es-logs:/usr/share/elasticsearch/logs
    networks:
      - elk-net
    ports:
      - "9200:9200"
      - "9300:9300"
    privileged: true

  kibana:
    image: kibana:7.17.19
    environment:
      - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
      - I18N_LOCALE=zh-CN
    networks: 
      - elk-net
    ports:
      - "5601:5601"
    depends_on:
      - elasticsearch

  logstash:
    image: logstash:7.17.19
    networks: 
      - elk-net
    ports:
      - "5044:5044"
      - "9600:9600"
    depends_on:
      - elasticsearch

networks:
  elk-net:
    driver: bridge

如果配置正常的话会自动连接配置,等一会访问 http://127.0.0.1:5601 就行

部分情况无法连接可以参考

docker log查看kibana的配置code(实际上并不需要,自动配置失败的话,只要访问那个端口就行)

http://0.0.0.0:5601/?code=xxxxxx

替换 http://0.0.0.0:5601 为 http://127.0.0.1:5601 访问Kibana的管理界面
在这个界面可能需要输入token,token可以docker log查看elasticsearch控制台
如果不行的话可以尝试

docker exec <DOKCER_ID> bin/elasticsearch-create-enrollment-token --scope kibana
# 返回如下
WARNING: Owner of file [/usr/share/elasticsearch/config/users] used to be [root], but now is [elasticsearch]
WARNING: Owner of file [/usr/share/elasticsearch/config/users_roles] used to be [root], but now is [elasticsearch]
<一串JWT密钥>

然后等配置了

完成

左边三道杠 -> Management(管理) -> 堆栈监测

可以看到ELK都正常工作

索引管理

左边三道杠 -> Management(管理) -> Stack Management

解析数据

logstash

TODO:等我nas配起来后去写这个,不然还没有地方存数据

发布者

正汰

永远是这样,山前面是山,天空上面是天空,道路前面还是道路,迷茫之后还有迷茫。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注