使用logstash作为docker日志驱动收集日志
2020/2/18 8:08:53
本文主要是介绍使用logstash作为docker日志驱动收集日志,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#前言logstash是一个开源的日志统一处理数据收集器,属于ELK中的L,在日志收集领域中应用广泛。
JSON-文件(https://docs.docker.com/config/containers/logging/json-file/),每一个容器都会在本地生成一个的/ var / lib中/搬运工/ container / containerID /数据筒,json.log
,而日志驱动是支持扩展的,本章主要讲解的是使用logstash收集泊坞窗日志。
docker是没有logstash这个驱动的,但是可以通过logstash的gelf输入插件。
#必然
- [搬运工](https://www.docker.com/get-started)2。了解[logstash](https://www.elastic.co/guide/zh/logstash/current/index.html)配置3 。[docker -compose](https://docs.docker.com/compose/reference/概述/)
准备配置文件
docker-compose.yml
版本:'3.7'x -logging:&default-logging驱动程序:gelf选项:gelf-address:“ udp:// localhost:12201”模式:non-blocking最大体积大小:4m标签:“ kafeidou。 {{堆积.Name}}”#配置容器的标签,以kafeidou为前缀,容器名称为后缀,搬运工,撰写会给容器添加副本后缀,>如logstash_1。 / UDP图像:docker.elastic.co/logstash/logstash:7.5.1卷:-./logstash.yml:/usr/share/logstash/config/logstash.yml-在/ var /日志/ logstash:在/ var / logsash-./logstash.conf:/usr/share/logstash/pipeline/logstash.conf logstash-worker: 图像:docker.elastic.co/logstash/logstash:7.5.1depends_on : -logstash 日志记录: 驱动程序:“GELF” 选项: GELF地址:“UDP://本地主机:12201” ``` logstash.yml ``` http.host:“ 0.0.0.0” ` ` ` logstash.conf
输入{gelf {use_udp => true port_tcp => 12202}}输出{文件{路径=>“ /var/log/logstash/%{+yyyy-MM-dd-HH}/%{container_name}.log“}”
由于logstash需要在配置的目录中有写入的权限,所以需要先准备好存放日志的目录以及赋予权限。创建目录
的MKDIR /无功/日志/ logstash `
给予权限,这里用于实验演示,直接授权777
搭配chmod -R 777的/ var /数/ logstash ``` 在泊坞窗-compose.yml,logstash.conf和logstash.yml文件的目录中执行命令: ` `泊坞窗,撰写了-d ` `
[root @ master logstash]#docker-compose up -d
警告:您使用的Docker引擎正在以群集模式运行。
Compose不使用群集模式将服务部署到群集中的多个节点。所有容器都将在当前节点上调度。
要跨集群部署应用程序,请使用docker stack deploy
。
启动logstash_logstash_1…完成
启动logstash_logstash-worker_1…完成logstash启动较慢,我实验的效果是90秒左右,所以更推荐[使用fluentd收集日志](https://liangyuanpeng.com/post/docker-log-driver-fluentd/)查看一下日志目录下,应该就有对应的容器日志文件了 :
[root @ master logstash]#ls / var / log / logstash /
2020-02-16
[root @ master logstash]#ls / var / log / logstash / 2020-02-16 /
logstash_logstash-worker_1.log` 也可以直接下载我的文件:1. [搬运工-compose.yml](https://res.cloudinary.com/lyp/raw/upload/v1581868906/hugo/blog.github.io/ELK/docker -compose.yml) 2。[logstash.conf](https://res.cloudinary.com/lyp/raw/upload/v1581868906/hugo/blog.github.io/ELK/logstash.conf)3。[logstash。YML](https://res.cloudinary.com/lyp/raw/upload/v1581868942/hugo/blog.github.io/ELK/logstash.yml) ##总结###技术选型更推荐fluentd ,为什么?fluentd更加轻量级和更灵活,并且总体上属于CNCF,活跃度和可靠性都更上一层楼。###为什么还要介绍logstash收集docker日志?
在一个公司或业务中如果已经在使用ELK技术栈,也许就没有必要再发布一个fluentd,然后继续用logstash打通docker日志这块。这里主要做一个分享,让遇到这种情况的同学能够有多一个选择。
推荐阅读:
这篇关于使用logstash作为docker日志驱动收集日志的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-19Docker-Compose容器集群化项目实战:新手入门指南
- 2024-11-19Docker镜像仓库项目实战:新手入门教程
- 2024-11-19Docker容器化部署项目实战:新手入门教程
- 2024-11-19Docker-Compose容器集群化资料入门教程
- 2024-11-19Docker镜像仓库资料详解:新手入门教程
- 2024-11-19Docker容器化部署资料:新手入门指南
- 2024-11-19Docker-Compose容器集群化教程:从入门到实践
- 2024-11-19Docker镜像仓库教程:新手入门指南
- 2024-11-19Docker容器化部署教程:初学者指南
- 2024-11-18Docker-Compose容器集群化入门教程