docker部署elk+filebeat日志收集分析系统

简介

ELK 是由三个开源项目组成的日志管理解决方案,分别是 Elasticsearch、Logstash 和 Kibana。这三个工具协同工作,提供强大的日志收集、处理、存储和可视化能力。通常,ELK 被用于大规模的日志分析和数据监控,帮助开发人员和运维团队快速发现问题、进行故障排查和性能优化。

环境

阿里云ecs,centos7.9 16c 32g

组件

ElasticSearch、Logstash 和 Kiabana +Filebeat

安装docker

源码方式:

可下载对应docker包,执行脚本部署,参考如下链接

https://blog.csdn.net/eighters/article/details/155743885?spm=1011.2415.3001.5331

https://download.docker.com/linux/static/stable/x86_64/

部署完成后需要配置daemon.json文件添加阿里云加速器

这里我还修改了docker数据的默认存放目录

安装elasticsearch

1.创建工作目录

mkdir -p /data/docker/elasticsearch/{plugins,data}

2.下载镜像并创建网络

docker pull elasticsearch:7.9.3

docker network create elk

3.配置系统参数

echo 'vm.max_map_count=262144' >>/etc/sysctl.conf

生效参数

sysctl -p

4.给es数据目录授权

chmod -R 777 /data/docker/

5.启动es

docker run -itd --name=es --network elk --restart=always -p 9200:9200 -p 9300:9300 -v /data/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /data/docker/elasticsearch/data:/usr/share/elasticsearch/data --privileged -e "discovery.type=single-node" -e "ES_JAVA_OPTS=-Xms256m -Xmx256m" elasticsearch:7.9.3

6.访问端口测试服务

安装kibana

1.下载镜像

docker pull kibana:7.9.3

2.启动服务

docker run -d --restart=always --name kibana --network elk -p 5601:5601 -e ELASTICSEARCH_HOSTS=http://es:9200 kibana:7.9.3

3.修改配置文件

添加中文

i18n.locale: "zh-CN"

4.验证服务

容器内测试 es容器

测试kibana服务

安装logstash

1.下载镜像

docker pull logstash:7.9.3

2.创建目录

mkdir -p -m 777 /data/docker/logstash/{pipeline.data.config}

3.启动一个基础容器,拷贝数据

docker run -d --name=logstash logstash:7.9.3

docker cp logstash:/usr/share/logstash /data/docker

4.修改配置文件

config/logstash.yml

config/pipelines.yml

pipeline/logstash.conf

5.重新创建logstash

docker run -d --name logstash --restart=always --privileged -p 5044:5044 -p 9600:9600 --network elk -v /etc/localtime:/etc/localtime -v /data/docker/logstash/config:/usr/share/logstash/config -v /data/docker/logstash/pipeline:/usr/share/logstash/pipeline -v /data/docker/logstash/data:/usr/share/logstash/data logstash:7.9.3

目标机器部署filebeat

1.下载版本包

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.9.3-linux-x86_64.tar.gz

2.解压及创建目录

tar -zxvf filebeat-7.9.3-linux-x86_64.tar.gz

mv filebeat-7.9.3-linux-x86_64 filebeat

mkdir /opt/filebeat/{data,log}

3.设置权限

chmod 777 filebeat -R

chmod 755 /opt/filebeat

chmod 755 /opt/filebeat/filebeat

chmod 600 /opt/filebeat/filebeat.yml

chmod 755 /opt/filebeat/log

chmod 700 /opt/filebeat/data

4.systemd程序

root@iZ2zei1gxlnqhosc4uizbmZ \~# systemctl cat filebeat

/etc/systemd/system/filebeat.service

Unit

Description=Filebeat Service

After=network.target

Service

Type=simple

User=root

ExecStart=/opt/filebeat/filebeat -c /opt/filebeat/filebeat.yml --path.home /opt/filebeat --path.data /opt/filebeat/data --path.logs /opt/filebeat/logs

Restart=on-failure

RestartSec=5

Install

WantedBy=multi-user.target

5.修改配置文件

input设置

此处定义了两个类型的日志,分别定义了不同的app名字(这块设置可用于页面日志搜索类别使用

kibana设置

output设置

6.启动服务查看日志

systemctl restart filebeat

tail -f /opt/filebeat/logs/filebeat

有这个harvester字符说明文件已经读到了

kibana页面访问查看docker

1.点击discover按提示创建索引,预期是可以看到索引数据

2.点击observability----日志,预期是可以看到日志并且点击实时流日志无报错

注意此处fields.app就是filebeat配置的app名字,可以根据这个名字去过滤你需要的日志

使用方法:

搜索处 fields.app : xxx

相关推荐
容器魔方5 分钟前
Karmada v1.18 版本发布!新增混合云溢出式调度能力
人工智能·云原生·容器·华为云·云计算
是一个Bug23 分钟前
AI Agent 的沙箱是什么?它和 Docker / 虚拟机有什么区别?
人工智能·docker·容器
从入门到放弃-咖啡豆1 小时前
记录一次docker部署过程和一些常用的docker指令
运维·docker·容器
“码”力全开1 小时前
解耦异构算力:基于 Docker 与边缘计算的 GB28181/RTSP 企业级 AI 视频管理平台架构设计(含源码交付)
人工智能·docker·边缘计算
dabidai1 小时前
Docker PostgreSQL Windows 权限问题总结
windows·docker·postgresql
openFuyao1 小时前
openFuyao使能灵衢超节点::让容器业务丝滑释放节点能力
容器·kubernetes·ai原生·openfuyao·多样化算力·超节点·集群软件
ai产品老杨2 小时前
架构师视界:基于 Docker 容器化与边缘计算的 AI 视频管理平台——打通 GB28181/RTSP 异构集群与源码交付实战
人工智能·docker·边缘计算
随便做点啥2 小时前
8×910B4-32G NPU服务器 vLLM-Ascend部署Docker安装报告
服务器·docker·vllm
川石课堂软件测试2 小时前
UI自动化测试|下拉选择框&弹出框&滚动条操作实践
开发语言·python·jmeter·ui·docker·单元测试·harmonyos
“码”力全开2 小时前
统一解耦海量设备:基于 Docker 与边缘计算的 GB28181/RTSP 视频中台全协议兼容架构解析(附源码交付)
docker·音视频·边缘计算