Docker 部署 Elasticsearch-Filebeat-Kibana

目录

一、简介

1.Elasticsearch:

2.Filebeat:

3.Kibana:

二、工作流程

三、部署

1.创建docker网络

2.启动 elasticsearch 容器

3.创建 kibana 容器

4.客户端安装日志采集器filebeat

(1)docker安装

(2)rpm安装

四、访问测试


一、简介

1.Elasticsearch:

  • 是一个高度可扩展的开源全文搜索和分析引擎,能够快速近乎实时地存储、搜索、分析大量数据。
  • 常用于全文搜索、结构化搜索、分析以及复合查询。
  • 以其分布式本质而闻名,易于水平扩展,支持多租户。
  • 提供了丰富的 REST API,使得与其他应用交互变得容易。

2.Filebeat:

  • 是轻量级的日志文件数据船(shipper),用于捕获来自服务器上文件的日志数据,并将其转发到 Elasticsearch 或 Logstash 进行索引。
  • 能够监控日志文件或位置,收集日志并将其发送到配置的输出。
  • 支持自动多行事件组合,并能够处理文件旋转、文件截断等情况。
  • 是 Elastic Beats 平台的一部分,旨在轻量级数据采集。

3.Kibana:

  • 提供了 Elasticsearch 数据的可视化界面,允许用户创建基于搜索的交互式图表和报告。
  • 可以用于探索、可视化并及时了解 Elasticsearch 中的数据。
  • 提供了各种图形(如柱状图、线图、散点图、饼图等)和仪表板(Dashboards)。
  • 支持机器学习、地图、Canvas、工作流等高级功能。

二、工作流程

  1. 数据收集:Filebeat 安装在服务器上,监视指定的日志文件或目录,捕获日志数据。

  2. 数据处理和存储:Filebeat 将捕获的数据发送到 Elasticsearch。Elasticsearch 负责数据的索引、存储和搜索。

  3. 数据分析和可视化:Kibana 连接到 Elasticsearch,用户通过 Kibana 可以分析和可视化数据,创建仪表板,以便轻松地提取数据的洞察和价值。

三、部署

1.创建docker网络

docker network create logging

2.启动 elasticsearch 容器

# 创建容器
docker run -d \
--name=elasticsearch \
--net=logging \
-v=elasticsearch-data:/usr/share/elasticsearch/data \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx1g" \
-p 9200:9200 \
docker.elastic.co/elasticsearch/elasticsearch:8.10.2

# 查看创建的容器
docker ps

# 测试访问
curl http://127.0.0.1:9200/_cat/health

3.创建 kibana 容器

# 创建容器
docker run -d \
--name=kibana \
--net=logging \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e I18N_LOCALE=zh-CN \
-p 5601:5601 \
docker.elastic.co/kibana/kibana:8.10.2

# 查看容器
docker ps | grep kibana

# 测试访问
浏览器访问 IP:5601

4.客户端安装日志采集器filebeat

(1)docker安装

  • 启动容器
docker run -d \
  --name=filebeat \
  -v /etc/filebeat/filebeat.yml:/usr/share/filebeat \
  -v /var/log/:/var/log/ \
  --user=root \
  --network=host \
  harbor.daboluo.com/elk/filebeat:8.10.2
  •  修改配置
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
    - /var/log/nginx/error.log
  fields:
    project: filebeat
    app: nginx
- type: log
  enabled: true
  paths:
    - /var/log/messages
  fields:
    project: filebeat
    app: messages

setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"

output.elasticsearch:
  hosts: ["http://10.88.62.182:9200"]
  index: "%{[fields.project]}-%{[fields.app]}-%{+yyyy.MM.dd}"
  • 重启容器,使配置生效
docker restart filebeat

(2)rpm安装

# rpm包下载地址:
https://www.elastic.co/cn/downloads/past-releases

# 安装
rpm -ivh filebeat-8.10.2-x86_64.rpm
  • 修改配置:
vim /etc/filebeat/filebeat.yml
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /var/log/nginx/access.log
    - /var/log/nginx/error.log
  fields:
    project: ms
    app: nginx
- type: log
  enabled: true
  paths:
    - /var/log/messages
  fields:
    project: cu
    app: messages
    
setup.template.name: "filebeat"
setup.template.pattern: "filebeat-*"

output.elasticsearch:
  hosts: ["http://$elasticsearchIP:9200"]
  index: "%{[fields.project]}-%{[fields.app]}-%{+yyyy.MM.dd}"
  • 启动服务设置开机自启
systemctl start filebeat && systemctl enable filebeat

四、访问测试

浏览器访问kibana容器物理机的 ip:端口

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-29 05:10:07       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-29 05:10:07       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-29 05:10:07       82 阅读
  4. Python语言-面向对象

    2024-03-29 05:10:07       91 阅读

热门阅读

  1. ubuntu18.04找不到网络适配器,无法连接网络

    2024-03-29 05:10:07       41 阅读
  2. CUDA从入门到放弃(七):流( Streams)

    2024-03-29 05:10:07       45 阅读
  3. SHELL(01)

    2024-03-29 05:10:07       37 阅读
  4. 本人拟采购开发工具

    2024-03-29 05:10:07       38 阅读
  5. 幽默记忆TCP/UDP/DNS/三次握手

    2024-03-29 05:10:07       35 阅读
  6. IDEA 搭建 Otter 源码 DEBUG 环境

    2024-03-29 05:10:07       42 阅读
  7. nginx 设置跨域

    2024-03-29 05:10:07       42 阅读