Docker容器

使用logstash作为docker日志驱动收集日志

本文主要是介绍使用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输入插件。

#必然

准备配置文件

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日志驱动收集日志的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!