Prometheus + Grafana监控Docker

Linux Alan 4年前 (2020-02-21) 6957次浏览 0个评论 扫描二维码

Prometheus + Grafana监控Docker什么是 Prometheus?

  • 开源监控工具
  • 时间序列数据库 TSDB,Golang 实现
  • Soundcloud 研发,源于谷歌 borgmon
  • 多维度(标签),拉模式(Pull-based)
  • 白盒&黑盒监控均支持,DevOps 友好
  • Metrics & Alert,不是 logging/tracing
  • 社区生态丰富(多语言,各种exporters)
  • 单机性能
    • 每秒消费百万级时间序列
    • 上千个 targets

https://prometheus.io/

BizDevOPs

Metrics-Driven Development

Prometheus + Grafana监控Docker

Metrics 种类

  • Counter(计数器)
    • 始终增加(统计 http 请求数、下单数等)
  • Gauge(测量仪)
    • 当前值的一次快照测量,可增可减(统计磁盘使用率、同时在线用户数等)
  • Histogram(直方图)
    • 通过分桶(bucket)方式统计样本分布
  • Summary(汇总)
    • 根据样式统计出百分位(客户端计算)

Prometheus + Grafana监控Docker

Google的四个黄金指标

  • 延迟
  • 流量
  • 错误
  • 饱和度

安装 Docker

配置国内Docker 镜像

安装 cadvisor

安装 Node-Exporter

安装MySQL-Exporter

启动Mongo-Exporter

安装配置 Prometheus

prometheus.yml

first.rules

启动服务

Alert Manager安装

注:因 Grafana 会实现同样的报警功能,这里未使用 Alert Manager

安装 Grafana

登录并选择 Prometheus 为数据源(http://172.17.0.1:9090)

然后进入点击左侧加号搜索模板:

https://grafana.com/dashboards?search=docker

通过 id (如179)导入创建 Dashboard

MySQL DashBoard 示例模板:7362

Node Exporter 模板:8919

Prometheus + Grafana监控Docker

以上为单机操作,但完全可以放到不同机器上,在进行对应配置时修改为外网IP 地址或域名即可,当然在对外网暴露数据时应进行安全校验,Prometheus 可通过 Nginx 添加基础认证。

另如在本地也大可不必通过-p 或–publish 来指定外网访问端口

Docker 重启后容器自动重启

但我们知道容器默认 IP 是自动分配的,如何为容器固定 IP 呢?可通过如下命令来创建自定义内网网段,并为容器分配固定 IP

 

喜欢 (1)
[]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址