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

相关推荐
自己的九又四分之三站台3 小时前
docker安装pgvector、age和postgis
运维·docker·容器
幺零九零零4 小时前
Docker底层-IPC Namespace(进程间通信隔离)
运维·docker·容器
eddy-原5 小时前
ELKStack 与 Kubernetes 核心基础知识点综合作业
云原生·容器·kubernetes
V胡桃夹子5 小时前
Docker快速部署apollo
运维·docker·容器
oMcLin6 小时前
如何利用 Podman 替代 Docker:无 root 权限的容器管理实践
docker·dubbo·podman
Familyism7 小时前
ELK 全链路核心知识
elk
程序员老赵7 小时前
ComfyUI Docker 镜像部署指南
人工智能·docker·aigc
会飞的土拨鼠呀8 小时前
Docker 部署开源蜜罐Cowrie
docker·容器·开源
我是谁??8 小时前
Rocky9.2离线安装docker和NVIDIA Container Toolkit训练环境搭建
运维·docker·容器