资讯专栏INFORMATION COLUMN

容器监控实践—Dockbix

sunnyxd / 747人阅读

摘要:一概述意为,即使用来监控容器的插件或者模块,既然有专业的等容器监控方案,为什么还要用传统的呢在刚出现时,还没有专业的容器监控方案公司已有的成熟实践,想直接集成到中虽然不太优雅使用来监控有几种方案,比如自己写,利用的获取信息,暴露接口给采集使

一.概述

Dockbix意为docker+zabbix,即使用zabbix来监控docker容器的插件或者模块,既然有专业的cadvisor、prometheus等容器监控方案,为什么还要用传统的zabbix呢?

在docker刚出现时,还没有专业的容器监控方案

公司已有zabbix的成熟实践,想直接集成到zabbix中(虽然不太优雅)

使用zabbix来监控docker有几种方案,比如:

自己写agent,利用docker的api获取stats信息,暴露api接口给zabbix采集

使用zabbix的Module,将docker的采集展示集成到现有的zabbix系统中

如何使用 写API

python sdk:https://docker-py.readthedocs.io/en/stable/containers.html#docker.models.containers.Container.stats

stats(**kwargs)
Stream statistics for this container. Similar to the docker stats command.

Parameters:    
decode (bool) – If set to true, stream will be decoded into dicts on the fly. Only applicable if stream is True. False by default.
stream (bool) – If set to false, only the current stats will be returned instead of a stream. True by default.
Raises:    
docker.errors.APIError – If the server returns an error.

如计算cpu:

def calculate_cpu_percent(d):
    cpu_count = len(d["cpu_stats"]["cpu_usage"]["percpu_usage"])
    cpu_percent = 0.0
    cpu_delta = float(d["cpu_stats"]["cpu_usage"]["total_usage"]) - 
                float(d["precpu_stats"]["cpu_usage"]["total_usage"])
    system_delta = float(d["cpu_stats"]["system_cpu_usage"]) - 
                   float(d["precpu_stats"]["system_cpu_usage"])
    if system_delta > 0.0:
        cpu_percent = cpu_delta / system_delta * 100.0 * cpu_count
    return cpu_percent
Zabbix Module

通过部署一个zabbix agent的docker容器来监控宿主机器和宿主机器上docker的状态。

搬运下开源项目:https://github.com/monitoringartist/zabbix-docker-monitoring

1.在需要监控的宿主机器上运行运行Agent容器

docker run 
  --name=dockbix-agent-xxl 
  --net=host 
  --privileged 
  -v /:/rootfs 
  -v /var/run:/var/run 
  --restart unless-stopped 
  -e "ZA_Server=" 
  -e "ZA_ServerActive=" 
  -d monitoringartist/dockbix-agent-xxl-limited:latest

2.配置监控模板

在zabbix server上导入监控docker的模版,可用模板包括:

Zabbix-Template-App-Docker.xml - 标准推荐模板:被动

Zabbix-Template-App-Docker-active.xml - 检查模板:主动

Zabbix-Template-App-Docker-Mesos-Marathon-Chronos.xml - Mesos (Marathon/Chronos)集群的docker模板

也可以用docker镜像直接运行,来导入模板:monitoringartist/zabbix-templates,如:

docker run --rm 
  -e XXL_apiurl=http://zabbix.org/zabbix 
  -e XXL_apiuser=Admin 
  -e XXL_apipass=zabbix 
  monitoringartist/zabbix-templates

item为:

详细的metric的值可以参考:https://github.com/monitoringartist/zabbix-docker-monitoring/blob/master/README.md

3.可视化

zabbix的监控图:

grafana中也有zabbix的数据模板

本文为容器监控实践系列文章,完整内容见:container-monitor-book

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/33187.html

相关文章

  • 容器监控实践Dockbix

    摘要:一概述意为,即使用来监控容器的插件或者模块,既然有专业的等容器监控方案,为什么还要用传统的呢在刚出现时,还没有专业的容器监控方案公司已有的成熟实践,想直接集成到中虽然不太优雅使用来监控有几种方案,比如自己写,利用的获取信息,暴露接口给采集使 一.概述 Dockbix意为docker+zabbix,即使用zabbix来监控docker容器的插件或者模块,既然有专业的cadvisor、pr...

    huaixiaoz 评论0 收藏0
  • 容器监控实践Dockbix

    摘要:一概述意为,即使用来监控容器的插件或者模块,既然有专业的等容器监控方案,为什么还要用传统的呢在刚出现时,还没有专业的容器监控方案公司已有的成熟实践,想直接集成到中虽然不太优雅使用来监控有几种方案,比如自己写,利用的获取信息,暴露接口给采集使 一.概述 Dockbix意为docker+zabbix,即使用zabbix来监控docker容器的插件或者模块,既然有专业的cadvisor、pr...

    xiongzenghui 评论0 收藏0
  • 容器监控实践—开篇

    摘要:方案汇总一开源方案采集展示报警二商业方案三云厂商腾讯云阿里云百度云华为云四主机监控五日志监控六服务监控七存储后端脑图本文为容器监控实践系列文章,完整内容见 概述 随着越来越多的线上服务docker化,对容器的监控、报警变得越来越重要,容器监控有多种形态,有些是开源的(如promethues),而另一些则是商业性质的(如Weave),有些是集成在云厂商一键部署的(Rancher、谷歌云)...

    Zack 评论0 收藏0
  • 容器监控实践—开篇

    摘要:方案汇总一开源方案采集展示报警二商业方案三云厂商腾讯云阿里云百度云华为云四主机监控五日志监控六服务监控七存储后端脑图本文为容器监控实践系列文章,完整内容见 概述 随着越来越多的线上服务docker化,对容器的监控、报警变得越来越重要,容器监控有多种形态,有些是开源的(如promethues),而另一些则是商业性质的(如Weave),有些是集成在云厂商一键部署的(Rancher、谷歌云)...

    hellowoody 评论0 收藏0
  • 容器监控实践—Docker原生

    摘要:可以指定一个已停止的容器,但是停止的容器不返回任何数据。但它并不意味着你的每个容器都能访问那么多的内存默认时命令会每隔秒钟刷新一次,如果只看当前状态指定查看某个容器的资源可以指定名称或本文为容器监控实践系列文章,完整内容见 前言 传统虚机监控一般采用类似Zabbix的方案,但容器出现之后,再使用Zabbix agent来采集数据的话就显得有些吃力了,如果每个容器都像OS那样监控,则me...

    mushang 评论0 收藏0

发表评论

0条评论

sunnyxd

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<