这里填写标题
1. docker-compose ELK
1.1. 简介
ELK 是三个开源软件的缩写, 分别表示: Elasticsearch, Logstash, Kibana, 它们都是开源软件。新增了一个 FileBeat, 它是一个轻量级的日志收集处理工具 (Agent), Filebeat 占用资源少, 适合于在各个服务器上搜集日志后传输给 Logstash, 官方也推荐此工具。
Elasticsearch 是个开源分布式搜索引擎, 提供搜集、分析、存储数据三大功能。它的特点有: 分布式, 零配置, 自动发现, 索引自动分片, 索引副本机制, restful 风格接口, 多数据源, 自动搜索负载等。主要负责将日志索引并存储起来, 方便业务方检索查询。
Logstash 主要是用来日志的搜集、分析、过滤日志的工具, 支持大量的数据获取方式。一般工作方式为 c/s
架构, client 端安装在需要收集日志的主机上, server 端负责将收到的各节点日志进行过滤、修改等操作在一并发往 elasticsearch 上去。是一个日志收集、过滤、转发的中间件, 主要负责将各条业务线的各类日志统一收集、过滤后, 转发给 Elasticsearch 进行下一步处理。
Kibana 也是一个开源和免费的工具, Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面, 可以帮助汇总、分析和搜索重要数据日志。
更多详情可参见这篇文章: https://blog.csdn.net/qq_41475058/article/details/89840468
1.2. docker-compose.yml
from:
- https://elk-docker.readthedocs.io/
- https://github.com/spujadas/elk-docker
version: '3.7'
services:
elk:
container_name: elk
image: sebp/elk
ports:
- "5601:5601"
- "9200:9200"
- "5044:5044"
environment:
ES_JAVA_OPTS: -Xmx256m -Xms256m
LS_JAVA_OPTS: -Xmx256m -Xms256m
ulimits:
memlock:
soft: -1
hard: -1
1.3. troubleshooting
shell on host machine:
sudo sysctl -w vm.max_map_count=262144
from: https://www.elastic.co/guide/en/elasticsearch/reference/5.0/vm-max-map-count.html#vm-max-map-count
1.4. docs
- Elasticsearch: http://localhost:9200
- Logstash: http://localhost:5044
- Kibana: http://localhost:5601
1.5. other elk
https://www.robertobandini.it/2021/01/31/how-to-install-the-elk-stack-using-docker-compose/
这个 elk docker 如果和 datadog 在同一台电脑上运行的话可能会有 5000 端口被占用的冲突, 可以参考这里解决 https://github.com/DataDog/datadog-agent/issues/4229#issuecomment-830210940。