docker container monitor

原文:利用TICK搭建Docker容器可视化监控中心

前言

前面已经搭建了私有docker仓库以及用docker-compose工具部署测试和正式的服务,接下来当然少不了这些容器的监控,将要部署的监控称为TICK(telegraf,influxdb,chronograf,kapacitor),原文作者是将tick直接用docker的命令部署的,本文会将tick用docker-compose来部署,这里会用到nginx做代理,该项目已放到github上,点击跳转,也可以直接跳转查看用法

介绍

tick原理
  • Telegraf:采用插件机制实现的数据采集服务,可以采集包含Docker容器在内的多种性能数据
  • InfluxDB:专门负责存储时序数据
  • Chronograf:基于React.js编写的性能数据可视化服务
  • Kapacitor:提供告警触发和处理功能

搭建

  1. 如果直接将原文中启动docker时的配置写入docker-compose.yml时,会发现chronograf可视化服务在访问influxdb的时候被拒绝(用docker-compose logs命令会打印信息),因为chronograf访问的influxdb的链接是http://localhost:8086,而在docker-compose.yml中访问某个服务是根据服务名进行访问的,所以在chronograf的配置中增加一行配置
environment:
      - influxdb-url:http://influxdb:8086

chronograf服务会访问环境变量中配置的influxdb-url,便能成功访问。

  1. 对于kapacitor警告服务,同样会出现访问不了influxdb的问题,所以在install.sh中将/etc/kapacitor/kapacitor.conf的配置文件中这样写influxdb的配置
[[influxdb]]
  # Connect to an InfluxDB cluster
  # Kapacitor can subscribe, query and write to this cluster.
  # Using InfluxDB is not required and can be disabled.
  enabled = true
  default = true
  name = "influxdb"
  urls = ["http://influxdb:8086"]

这样kapacitor就能正常访问influxdb服务

  1. github项目中的nginx.conf中修改server_name为自定义值

  2. 执行命令 sh install.sh,之后访问步骤3中配置的server_name

5.在web连接influxdb时的url为http://influxdb:8086,而连接kapacitor的url为http://kapacitor:9092

总结

除了将原文中有的配置移到docker-compose.yml中,另外缺少的配置会导致tick的配置失败,如不能正常连接到influxdb。这些配置都需要从该项目所在的github上寻找配置方式。

至此,使用docker-compose配置docker container monitor 就算完成,其他配置请自行了解。

推荐阅读更多精彩内容

  • Docker从2013年发布第一个版本以来,已经火遍全球,技术迭代也比较频繁,其周边产品和技术也越来越丰富。Doc...
    niko0598阅读 7,635评论 7 42
  • 概述 性能监控是容器服务必不可少的基础设施,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使...
    CodeSheep阅读 3,065评论 5 34
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 68,509评论 12 116
  • 花落此时,何人惊扰,尽归烟雨中。行人与车,络绎不绝,佳人何处在。漫漫人生路,何去何从,知音难觅。 万卷书读遍,路早...
    kztcn阅读 47评论 0 0
  • 去年元宵夜 你在我身边 就算是沿着东三环压马路都觉得幸福无比 因为身边只要有你 做什么都是完美的步调 今年 ……
    狐狸的猫咪阅读 27评论 0 0