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:端口

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值