狠狠撸
Submit Search
如何选择 Docker 监控方案
?
0 likes
?
413 views
L
Leo Zhou
Follow
刘斌 OneAPM
Read less
Read more
1 of 68
Download now
Downloaded 18 times
More Related Content
如何选择 Docker 监控方案
1.
如何选择Docker监控 刘斌 2016/4/24
2.
自我介绍 Cloud Insight,蓝海讯通 https://cloud.oneapm.com/
3.
Agenda ? 什么是监控 ? Docker监控原理 ?
顿辞肠办别谤监控方案
4.
为什么监控 ? 尽在掌握 ? 炸药桶
5.
监控目的 ? 少宕机时间 ? 扩展和性能管理 ?
资源计划 ? 识别异常事件 ? 故障排除、分析
6.
监控层次 ? 硬件 ? OS、中间件(MySQL、Tomcat) ?
应用程序 ? RUM
7.
Docker监控的挑战 ? Docker特点 ? 像host但不是host ?
量大 ? 生命周期短 ? 监控盲点(断层) ? 微服务 ? 集群 ? 全方位 ? Host(VM) > Services > Containers > Apps
8.
Docker监控内容 ? 配置信息 ? Logs ?
主机和Daemon日志 ? 容器信息 ? Metric(performance) ? Event
9.
内部监控 VS 外部监控 ?
在容器内部监控 ? 在宿主机上监控
10.
Docker监控内容 ? CPU ? memory
usage ? memory limit ? network IO
11.
Docker监控基础 ? docker stats ?
Remote API ? 伪文件系统
12.
docker stats $ docker
stats redis1 redis2 CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O redis1 0.07% 796 KB/64 MB 1.21% 788 B/648 B redis2 0.07% 2.746 MB/64 MB 4.29% 1.266 KB/648 B
13.
伪文件系统 ? CPU、内存、磁盘 ? 网络
14.
Cgroups ? CPU、内存、磁盘 ? /sys/fs/cgroup/{memory,cpuacct,blkio}/ system.slice/${docker
ps --no-trunc}.scope ? Standard: /sys/fs/cgroup/:cgroup/ docker/:container_id ? Systemd: /sys/fs/cgroup/:cgroup/system.slice/ docker-#{id}.scope
15.
Memory ? memory.stat
16.
Memory
17.
CPU ? cpuacct.stat ? docker.cpu.system ?
docker.cpu.user
18.
Blkio ? *_recursive ? blkio.throttle.io_service_bytes ?
blkio.throttle.io_serviced
19.
网络数据 ? 伪文件系统 ? iptables ?
网络设备接口
20.
数据源(veth device) $ CONTAINER_PID=`docker
inspect -f '{{ .State.Pid }}' nginx` $ mkdir -p /var/run/netns $ ln -sf /proc/$CONTAINER_PID/ns/net /var/run/netns/$CONTAINER_ID $ ip netns exec $CONTAINER_ID netstat -i
21.
Docker容器网络信息-文件系统 ? $ CONTAINER_PID=`docker
inspect -f '{{ .State.Pid }}' nginx ` ? $ cat /proc/$CONTAINER_PID/net/dev
22.
Docker容器网络信息-文件系统 $ pwd /sys/class/net/veth559b656/statistics $ ls collisions
rx_crc_errors rx_frame_errors rx_packets tx_compressed tx_heartbeat_errors multicast rx_dropped rx_length_errors tx_aborted_errors tx_dropped tx_packets rx_bytes rx_errors rx_missed_errors tx_bytes tx_errors tx_window_errors rx_compressed rx_?fo_errors rx_over_errors tx_carrier_errors tx_?fo_errors
23.
Docker容器网络接口数据的取得 方式
24.
Docker容器网络接口数据的取得 方式
25.
Docker容器网络接口数据的取得 方式
26.
顿辞肠办别谤监控方案 ? 自己动手 ? 源软件 ?
SaaS
27.
评价标准 ? 功能 ? 活性 ?
运维
28.
自己动手 ? 活性强 ? 成本高
29.
自己动手打造监控方案 ? 采集 ? 存储 ?
展示 ? 报警(动作)
30.
自己动手 ? Docker remote
API ? 200L ? Reports the resource usage of Docker containers to In?uxDB (https://github.com/ mustafaakin/docker-resource-reporter)
31.
性能指标采集 ? tcollector ? StatsD ?
collectd ? cAdvisor ? … …
32.
StatsD ? Etsy/Flickr ? UDP/TCP ?
应用和协议
33.
Tcollector ? 来源于OpenTSDB ? 数据采集框架
34.
Collectd ? Statistics collection
daemon ? 存储到RRD ? 插件机制(input/output) ? 简单报警功能
35.
cAdvisor(Container Advisor)
36.
存储TSDB ? OpenTSDB ? In?uxdb ?
RRDTool ? Graphite ? … …
37.
写入方式 ? File、TCP/UDP ? HTTP ?
JMX/JDBC/SNMP ? AWS/Docker/cAdvisor ? 消息队列(Kafka、ActiveMQ等) ? … …
38.
数据展示 ? Highcharts(Cloud Insight) ?
D3(Datadog) ? echarts ? Google Charts ? Charts.js ? n3-charts
39.
源可视化工具 ? Graphite ? In?uxdb
+ Grafana ? Prometheus
40.
源方案 ? cAdvisor(经典)+ In?uxDB
+ Grafana ? Zabbix/Nagios/Hawkular ? Fluentd ? Prometheus ? Riemann ? ATSD(Axibase Time Series Database) ? Hawkular ? ELK
41.
Zabbix ? 最经典(SaaS软件的最大敌人) ? 架构简单、清晰 ?
文档丰富 ? 包括采集、触发、告警 ? agent支持用户自定义监控项 ? 通过SNMP、ssh、telnet、IPMI、JMX监控
42.
Zabbix Docker Monitoring ?
https://github.com/monitoringartist/zabbix- docker-monitoring ? Zabbix Template
43.
Fluentd
44.
Graphite ? 存储数值型时序列数据 ? 根据请求对数据进行可视化(画图)
45.
Graphite
46.
Prometheus ? 一体化 ? 多维度 ?
活查询语言 ? 仪表盘和告警 ? LevelDB ? 非分布式、单机自治 ? 基于HTTP的pull模式(push需要中间网 )
47.
Prometheus
48.
Riemann ? 事件处理 ? Clojure实现 ?
Protocol Buffer ? 学习曲线?
49.
Heapster ? K8s子项目 ? source
and sink ? 经典组合:heapster + In?uxdb + grafana ? Sink:Kafka、stdout、gcm(Google Cloud Monitoring)、hawkular、monasca、riemann、 opentsdb
50.
源软件的问题点 ? 活性受限于upstream ? 维护成本高 ?
定制难度大 ? 技术栈
51.
SaaS ? turnkey解决方案 ? 维护成本
~ Zero ? 适合中小公司
52.
SaaS ? New Relic ?
AppDynamics ? Dynatrace(Ruxit) ? Datadog ? SysDig ? Cloud Insight ? clusterup ? Scout ? Librato
53.
Datadog ? 国外最好 ? 功能很强大 ?
安装很简单 ? 有点贵
54.
Cloud Insight ? 实时数据 ?
历史数据(免费版最大保存15天) ? 仪表盘 ? 混合监控 ? 报警功能
55.
Cloud Insight Docker Overview
57.
Cloud Insight Docker
Share
58.
Cloud Insight Docker
Event Stream
59.
Cloud Insight Docker
Alert
60.
Cloud Insight Docker Intergrations
62.
Sysdig ? 免费工具 ? SaaS服务
Sysdig Cloud ? 拓扑可视化
63.
Librato ? 数据聚合平台 ? 简单探针 ?
图表和报警 ? 价格不贵
64.
axibase(ATSD) ? 实际上是一个TSDB ? 支持报警 ?
预测功能
65.
SaaS的挑战 ? 安全性 ? 成本(
移和使用成本) ? 和自有系统的兼容 ? 内部抵抗(观念、个人爱好)
66.
趋势 ? 拓扑可视化 ? 标签机制 ?
通过API打通 ? 一体化
67.
参考资料 ? Comparing Seven
Monitoring Options for Docker:http://rancher.com/ comparing-monitoring-options-for-docker-deployments/ ? How to collect Docker metrics:https://www.datadoghq.com/blog/how-to- collect-docker-metrics/ ? 时序列数据库武斗大会:http://liubin.org/blog/2016/02/18/tsdb-intro/ ? Fluentd Docker Metrics Input Plugin:https://github.com/kiyoto/?uent-plugin- docker-metrics ? Docker Runtime metrics:https://docs.docker.com/v1.8/articles/runmetrics/
68.
谢谢您的倾听
Download