docker~service将容器日志输出到fluentd

我们把微小的服务发布到docker里,然后实现docker service启动它,保证了服务的高可用性,然后把服务产生的日志输出到fluentd,由它进行过滤和转发,存储到elasticsearch里,最后由kibana进行查询与分析,整个过程都是异步进行,不会阻塞主线程,你只需要把日志输出的控制台即可!Console.WriteLine!

.netcore在docker里产生日志的过程如下:

  1. vs,vscode开发程序
  2. 上传到git,svn,tfs
  3. jenkins去获代码,编译,发布
  4. 由sh调用Dockerfile生成镜像
  5. 上传到私有仓库
  6. 下传仓库里的指定镜像
  7. 启动服务docker service,一般会与docker swarm集群一起使用
  8. 项目产生日志,输出到控制台,同时可以保存到本地
  9. docker service的--log参数把它获取,并发到fluentd服务端
  10. fluentd把它存储到elasticsearch里
  11. kibana建立索引,查询与分析日志

我们在生产docker服务时需要可以使用下面代码实现上面的日志输出的过程

   docker service create \
    --name "$SERVICE_NAME" \
    --hostname "{{.Node.ID}}-{{.Service.Name}}" \   #配置的是容器的主机名称
    --network pilipa-network \
    --network pilipa-mysql-network \
    --network pilipa-elk-network \
    --mode global \
    --log-driver=fluentd \
    --log-opt=fluentd-address=192.168.1.65:24224 \
    --log-opt=tag=lind.{{.Name}} 

通过本讲内容我们知道了,如何在docker service上将控制台日志输出到fluentd上,这个在日志收集场合下是非常必要的!

感谢各位的阅读!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:docker~service将容器日志输出到fluentd,如需转载请自行联系原博主。

时间: 2024-08-02 18:04:41

docker~service将容器日志输出到fluentd的相关文章

Docker 如何支持多种日志方案?- 每天5分钟玩转 Docker 容器技术(88)

将容器日志发送到 STDOUT 和 STDERR 是 Docker 的默认日志行为.实际上,Docker 提供了多种日志机制帮助用户从运行的容器中提取日志信息.这些机制被称作 logging driver.  Docker 的默认 logging driver 是 json-file. # docker info |grep 'Logging Driver'Logging Driver: json-file 如果容器在启动时没有特别指明,就会使用这个默认的 logging driver. jso

Docker容器 日志中文乱码问题解决办法_docker

Docker容器 日志中文乱码问题解决办法 1. 找到dockerfile文件, 如 /use/local/src/Docker/Dockerfile 2. 编辑Dockerfile 添加 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 3. 生成新的镜像文件 docker build -t centos7 . 4. 使用docker images查看新生成的镜像 5. 使用新的镜像启动容器 docker run

使用 docker+tmux 加强容器调度

使用 docker+tmux 加强容器调度 摘要 为了让自己做事更加自动化,把重复的工作尽可能降到最低,平时不但需要写很多固定操作的脚本来加快工作效率. 搞搞调度环境也是需要的. 本篇通过Docker+Tmux在RancherOS上做开发平台来实现最快速的Docker调度方便自己开发. 可以最快速度进入到调度容器中. 该容器有docker deamon 的所有控制权限. 可以在容器内的Tmux中跳转到其他容器中.方便调度开发. 经过2个版本的迭代终于搞定.到达1.0版本 Docker Regis

深入了解docker(docker镜像、容器、仓库的基本概念)_docker

本文重点给大家介绍docker镜像.容器.仓库的基本概念的知识. Docker概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 镜像 Docker 镜像就是一个只读的模板. 例如:一个镜像可以包含一个完整的 CentOS 操作系统环境,里面仅安装了 httpd或用户需要的其它应用程序. 镜像可以用来创建 Docker 容器. Dock

专访Docker VP:容器的现状和发展趋势

本文讲的是专访Docker VP:容器的现状和发展趋势,[编者的话]Marianna Tessel有将近20年工程和领导经验,在大公司和初创公司都有工作履历.她现在领导Docker的工程师团队,直接贡献于开源项目,同时也负责Docker的商业支持.加入Docker前,他是VMware的VP,领导几百名工程师团队,负责开发多种VMware vSphere子系统.她以对多种技术生态系统推动而知名,被选为2013年最佳25位技术领域最有内在能力的女工程师.此文中,她对Docker现状,安全问题,以及与

docker 镜像与容器存储目录结构精讲

docker 镜像与容器存储目录结构精讲 很多朋友在初学 docker 的时候非常迷茫,不清楚 docker 是怎样的一种存储方式,并且也不清楚 docker 到底存储在什么地方.其实 docker 的镜像与容器都存储在 /var/lib/docker 下面,那么基于不同的系统又有不同的存储方式,在 ubuntu 下面存储方式为 AUFS:在 Centos 下面存储方式又是 device mapper,下面我们先来看一下 /var/lib/docker 目录,分别有三个阶段,看看在不同阶段都新增

Docker 镜像、容器、仓库的概念及应用详解_docker

Docker 镜像.容器.仓库的概念 Docker镜像 Docker镜像(Image)类似于虚拟机的镜像,可以将他理解为一个面向Docker引擎的只读模板,包含了文件系统. 例如:一个镜像可以完全包含了Ubuntu操作系统环境,可以把它称作一个Ubuntu镜像.镜像也可以安装了Apache应用程序(或其他软件),可以把它称为一个Apache镜像. 镜像是创建Docker容器的基础,通过版本管理和增量的文件系统,Docker提供了一套十分简单的机制来创建和更新现有的镜像.用户可以从网上下载一个已经

Docker镜像与容器命令 专题

docker的工作流程图: 至少需要配备三样东西去使用docker容器: Docker 主机:Docker容器将会在上面运行的Linux虚拟主机..Docker 镜像: 类似于运行在vm虚拟机上的iso镜像,但它们是高度精简的版本.所有已经存在于docker主机上的多余的包或库都会被移除掉.Docker 容器:Docker镜像的快照,你可以启动.停止.修改它们,或者将它们作为另一个镜像来发布. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在

Java 调整格式日志输出_java

工欲善其事,必先利其器 很多程序员可能都忘了记录应用程序的行为是一件多么重要的事,当遇到多线程环境下高压力导致的并发bug时,你就能体会到记录log的重要性. 有的人很高兴的就在代码里加上了这么句: log.info("Happy and carefree logging"); 他可能都没有意识到应用程序的日志在维护,调优和故障识别中的重要性.我认为slf4j是最好的日志API,最主要是因为它支持一个很棒的模式注入的方式: log.debug("Found {} record