[k8s]容器化node-expolore(9100)+cadvisor(8080)+prometheus(9090) metric搜集,grafana展示
2018-01-09 17:29
691 查看
Prometheus 的核心,多维数据模型
传统监控工具统计数据方式
指标多- 需求1,统计app1-3,的(总)内存,则定义3个指标 container.memory_usage_bytes.webapp* - 获取值 container.memory_usage_bytes.webapp1 - 定义指标,搜集app1 container.memory_usage_bytes.webapp2 - 定义指标,搜集app2 container.memory_usage_bytes.webapp3 - 定义指标,搜集app3 例如: Graphite函数 sum(container.memory_usage_bytes.webapp*)- 求app1-3总占内容 - 需求2: 对比一下某一组容器在生产环境和测试环境中对内存使用的不同 container.memory_usage_bytes.webapp1.test container.memory_usage_bytes.webapp1.prod
Prometheus多维数据模型
定义多列,通过PromQL来组合数据,聚合能力超强悍.比如对于前面 webapp1 的三条取样数据,转换成 Prometheus 多维数据将变成:
后面三列 container_name、image、env 就是数据的三个维度。
如果不同 env(prod、test、dev),不同 image(mycom/webapp:1.2、mycom/webapp:1.3)的容器,它们的内存使用数据中标注了这三个维度信息,那么将能满足很多业务需求,比如: 1.计算 webapp2 的平均内存使用情况 avg(container_memory_usage_bytes{container_name=“webapp2”}) 2.计算运行 mycom/webapp:1.3 镜像的所有容器内存使用总量: sum(container_memory_usage_bytes{image=“mycom/webapp:1.3”}) 3.统计不同运行环境中 webapp 容器内存使用总量: sum(container_memory_usage_bytes{container_name=~“webapp”}) by (env)
容器指标数据收集利器 cAdvisor
展示 Host 和容器两个层次的监控数据。展示历史变化数据
cAdvisor 的一个亮点是它可以将监控到的数据导出给第三方工具,由这些工具进一步加工处理。
cAdvisor 定位为一个监控数据收集器,收集和导出数据是它的强项,而非展示数据。
- 运行cadvisor搜集容器指标 docker run \ -v=/:/rootfs:ro \ -v=/var/run:/var/run:rw \ -v=/sys:/sys:ro \ -v=/dev/disk/:/dev/disk:ro \ -v=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor
访问: http://192.168.14.11:8080/metrics
其本质上也是一个容器的metric api对接代码集.
node-expolore(9100)+cadvisor(8080)+prometheus(9090) metric搜集,grafana展示
- 运行node-expolore容器监听9100 通过: http://192.168.14.11:9100/metrics可访问 docker run -d -p 9100:9100 \ -v "/proc:/host/proc" \ -v "/sys:/host/sys" \ -v "/:/rootfs" \ --net=host \ prom/node-exporter \ --path.procfs /host/proc \ --path.sysfs /host/sys \ --collector.filesystem.ignored-mount-points "^/(sys|proc|dev|host|etc)($|/)" - 运行cadvisor,监听8080 通过: http://192.168.14.11:8080/metrics可访问 docker run \ -v=/:/rootfs:ro \ -v=/var/run:/var/run:rw \ -v=/sys:/sys:ro \ -v=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ --net=host \ google/cadvisor:latest - 运行prometheus 通过: http://192.168.14.11:9090/metrics可访问 docker run -d -p 9090:9090 \ -v /root/prometheus.yml:/etc/prometheus/prometheus.yml \ --name prometheus \ --net=host \ prom/prometheus - 运行grafana容器 docker run -d -i -p 3000:3000 \ -e "GF_SERVER_ROOT_URL=http://192.168.14.11" \ -e "GF_SECURITY_ADMIN_PASSWORD=admin" \ --net=host \ grafana/grafana 添加数据源 https://grafana.com/dashboards?dataSource=prometheus&search=docker 有很多docker的dashboard 比如下载 Docker and system monitoring,得到一个 json 文件,然后点击 Grafana 左上角菜单 Dashboards -> Import。 得到如下效果图:
docker安装普罗
- 直接启动 docker run --name prometheus -d -p 9090:9090 quay.io/prometheus/prometheus - 需要预置配置文件 docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \ -v /tmp/prometheus-data:/prometheus-data \ prom/prometheus - 访问 http://localhost:9090 /访问。
相关文章推荐
- [k8s]prometheus+grafana监控node和mysql(普罗/grafana均vm安装)
- prometheus ,node_exporter,grafana
- Docker安装Prometheus,Grafana展示数据
- 利用谷歌开源工具cAdvisor 结合influxdb存储+Grafana前端展示进行Docker容器的监控
- 使用Grafana结合Zabbix进行监控图表展示
- 基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示
- 用Node.JS+MongoDB搭建个人博客(成品展示)
- Node.js静态页面展示例子2
- cAdvisor、InfluxDB、Grafana搭建Docker1.12性能监控平台
- NTVS:把Visual Studio变成Node.js IDE的工具 搜集资料。
- 【StatsD监控】基于Telegraf+InfluxDB+grafana展示(非Docker方案)
- Grafana+Prometheus打造全方位立体监控系统
- Angularjs+node+Mysql实现地图上特定点的定位以及附加信息展示
- NodeJs+http+fs+request+cheerio 采集,保存数据,并在网页上展示(构建web服务器)
- grafana 展示open-faclon数据
- 使用Prometheus和Grafana定制监控报表
- [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)
- grafana图形化数据展示软件介绍
- 使用Grafana展示时间序列数据
- 使用Helm部署Prometheus和Grafana监控Kubernetes