基于Docker搭建Prometheus+Grafana

简介

Grafana 是一个监控仪表系统,它是由 Grafana Labs 公司开源的的一个系统监测 (System Monitoring) 工具。它可以大大帮助你简化监控的复杂度,你只需要提供你需要监控的数据,它就可以帮你生成各种可视化仪表。同时它还有报警功能,可以在系统出现问题时通知你。

Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Varnish、Haproxy、Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。

下载镜像

docker pull prom/node-exporter
docker pull prom/prometheus
docker pull grafana/grafana

启动node-exporter

docker run -d --name node-exporter \
  -p 9100:9100 \
  -v "/proc:/host/proc:ro" \
  -v "/sys:/host/sys:ro" \
  -v "/:/rootfs:ro" \
  prom/node-exporter

浏览器访问 ip:9100

image

这些都是收集到的数据,有了它就可以做数据展示了。

启动prometheus

创建配置文件 prometheus.yml

mkdir /root/test_grafana
cd /root/test_grafana
vim prometheus.yml

内容如下:

global:
  scrape_interval:     60s
  evaluation_interval: 60s
 
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets: ['111.229.180.172:9090']
        labels:
          instance: prometheus
 
  - job_name: linux
    static_configs:
      - targets: ['111.229.180.172:9100']
        labels:
          instance: localhost

启动容器

 docker run  -d \
  --name prometheus \
  -p 9090:9090 \
  -v /root/test_grafana/prometheus.yml:/etc/prometheus/prometheus.yml  \
  prom/prometheus

浏览器访问 ip:9090

image

启动grafana

新建空文件夹grafana-storage,用来存储数据

mkdir /root/test_grafana/grafana-storage
chmod 777 -R /root/test_grafana/grafana-storage

启动grafana

 docker run -d \
  --name=grafana \
  -p 3000:3000 \
  -v /root/test_grafana/grafana-storage:/var/lib/grafana \
  grafana/grafana

浏览器登录 ip:3000,默认账号密码 admin/admin

image

配置数据源

image

选择 prometheus

image

提示 Data source is working,说明配置成功

导入仪表盘

在 Grafana 里,仪表盘的配置可以通过图形化界面进行,但配置好的仪表盘是以 JSON 存储的。这也就是说,如果你把你的 JSON 数据分享出去,别人导入就可以直接导入同样的仪表盘(前提是你们的监测数据一样)。

对于我们的例子来说,因为我们用了 node-exporter 也就是本机的系统信息监控,那么我们可以先找一个同样用了这个数据源的仪表盘。在 Grafana 网站上,你其实可以找到很多别人已经做好的仪表,可以用来监测非常多标准化的服务。Grafana 的仪表盘市场

比如说针对以下一些服务的标准仪表盘就可以在这里找到

  • JVM
  • Spring Boot
  • MySQL 监控
  • Laravel 监控

image

在左侧的加号里,点 Import 即导入,在出现的界面中填入 11074(仪表盘市场获取) 即我们要导入的仪表盘编号即可。

效果如下

image

参考

基于Docker搭建Prometheus+Grafana
Grafana 中文入门教程 | 构建你的第一个仪表盘
Docker环境部署Prometheus实践

posted @ 2023-08-16 07:57  strongmore  阅读(270)  评论(0编辑  收藏  举报