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

相关推荐
皮皮冰燃4 小时前
docker-18-WSL中安装docker并部署flask服务
docker·容器·flask
少年白char5 小时前
整理上万首音乐后的完整工作流:下载、刮削、播放与避坑指南
docker·nas·musictag·音乐刮削·音乐标签
木雷坞10 小时前
K8s GPU 推理服务 ImagePullBackOff 排查与预热
云原生·容器·kubernetes·gpu算力
萧行之12 小时前
Docker部署Loki+Grafana+Vector实现全服务器日志监控(含N8N/SSH/Fail2ban监控)
服务器·docker·grafana
人工智能培训13 小时前
工程科研中的AI应用:结构力学分析技巧
人工智能·深度学习·机器学习·docker·容器
计算机安禾13 小时前
【Linux从入门到精通】第35篇:容器化技术预备——Docker安装与基本概念
linux·运维·docker
子木HAPPY阳VIP13 小时前
信创UOS,Docker 完整操作部署(Dockerfile部署方式)&排错整合
linux·运维·redis·nginx·docker·容器·tomcat
AOwhisky14 小时前
Kubernetes调度与服务暴露:从“定时任务”到“服务发现”的完全指南
linux·运维·云原生·容器·kubernetes·服务发现
Cyber4K14 小时前
【Kubernetes专项】温故而知新,重温技术原理(6)
云原生·容器·kubernetes
AI服务老曹14 小时前
架构实战:基于 GB28181 与 RTSP 的异构设备统一接入方案,深度解析 Docker 化 AI 视频管理平台
人工智能·docker·架构