持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第天8,点击查看活动详情
前言
大家好,我是 Taylor,一个有趣且乐于分享的人,目前专注前端、Node.js技术栈分享,如果你对 前端、Node.js 学习感兴趣的话(后续有计划也可以),可以关注我掘金.
背景
随着docker服务越来越多,监控报警就该做起来。
不仅可以监控docker, mysql 服务器都可以
不过这好像是运维的活??
地址/账号
看看呗
地址 http://47.100.224.112:8102****
仅查看权限账号 pu/pu
效果
简介
Prometheus(普罗米修斯)
Prometheus(普罗米修斯)是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的。随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作。Google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus。
架构图
Grafana
Grafana是一个开源的功能丰富的数据可视化平台
我看的就是可以和Prometheus 配合使用且十分精美的UI界面
简单的理解 他两 的关系 就是 Prometheus 负责采集数据, Grafana给你展示出来。
建设
我使用docker-compose一键安装部署, 真的是非常的好用, 所有相关服务一键启动
安装docker-compose
创建目录
创建一个目录 例如 prometheus
mkidr prometheus
在目录下创建如下文件夹并授权可写权限
prometheus_data
grafana_data
准备两个文件
两个文件放在创建好的**prometheus** 目录
端口号我这里用的 8100-8103,。
左边是宿主机-右边是容器里, 可以根据需要自行修改
1、docker-compose.yml
下面镜像释义
- prom/node-exporter 服务器监控数据收集
- prom/prometheus 普罗米休斯程序
- google/cadvisor docker数据收集程序
-
grafana 可视化数据面板
就是收集程序负责相关应用数据收集 比如收集docker的、mysql都有各自的, 最后注册到普罗米修斯
version : "3.7" services : node- exporter : image : prom/node- exporter :latest container_name : "node-exporter0" ports : - "8100:9100" volumes : - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" restart : always prometheus : image : prom/ prometheus :latest container_name : "prometheus0" restart : always ports : - "8101:9090" volumes : - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - "./prometheus.yml:/etc/prometheus/prometheus.yml" # 前面是普罗米修斯配置文件路径, 默认我放在和docker-compose一个目录 - "./prometheus_data:/prometheus" cadvisor : image : google/ cadvisor :latest container_name : monitoring_cadvisor restart : unless-stopped volumes : - "/:/rootfs:ro" - "/var/run:/var/run:rw" - "/sys:/sys:ro" - "/var/lib/docker/:/var/lib/docker:ro" ports : - "8103:8080" grafana : image : grafana/grafana container_name : "grafana0" ports : - "8102:3000" restart : always volumes : - "/etc/localtime:/etc/localtime:ro" - "/etc/timezone:/etc/timezone:ro" - "./grafana_data:/var/lib/grafana" - "./grafana_log:/var/log/grafana" - "./grafana_data/crypto_data:/crypto_data" # 宿主机的地址是冒号前面的,冒号后面的是容器地址,不可变,这个用来放sqlite数据库的位置。
2、prometheus.yml
普罗米休斯的配置文件
global:
scrape_interval: 15s # 默认抓取周期
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'node' #服务的名称
scrape_interval: 5s
metrics_path: /metrics #获取指标的url
static_configs:
- targets: ['172.16.6.51:8100'] # 这里的ip是我配的是内网ip, 你要换成自己的
- job_name: 'docker' #服务的名称
static_configs:
- targets: [ '172.16.6.51:8103' ] # 这里的ip是我配的是内网ip, 你要换成自己的
一键启动
确保prometheus.yml和docker-compose.yml在同一文件夹
docker-compose up -d
grafana界面使用及其配置
配置连接prometheus
在grafana 设置里数据源 地址填prometheus的端口
测试连接
如图就是连接成功
添加模板
加了一个docker的
查看效果
踩坑
待补充