我想用Docker来尝试一下Prometheus

普罗米修斯 (Pǔ luó mǐ xiū sī)
起因或者局势
针对喜欢通过鼠标操作来查看类似监视图的读者,这是一篇关于监视设计等方面的文章。
Prometheus是什么?
这是一个基于开源的服务监控系统和时间序列数据库,也可以称之为监控工具。使用的开发语言是Go。
Prometheus具备像一般监控工具那样进行数据收集、展示数字、显示图表、发出警报的功能。除此之外,Prometheus还拥有自己的数据模型,可以使用查询语言对时间序列数据进行评估和图表化。
普罗米修斯
建筑设计

有一份详细的图表公式。
数据从左侧获取,然后在中间进行处理,并在右侧回答查询以返回时间序列数据。这是整个流程。
用户通知设置非常灵活,可以根据数据量等进行通知。
环境
暂时确认操作是否正常
为了使用Prometheus的Docker镜像,我们将使用公开的Prometheus/Docker图像。
在执行之前,编写用于Prometheus的yaml文件。
以下是一个以自身为监控目标的yaml示例。
内容直接使用了官方提供的文档中的内容。
链接:https://prometheus.io/docs/prometheus/latest/getting_started/
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'codelab-monitor'
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'prometheus'
# Override the global default and scrape targets from this job every 5 seconds.
scrape_interval: 5s
static_configs:
- targets: ['localhost:9090']
只需将上述的YAML文件部署到容器中,启动容器即可完成Prometheus的启动。
$ docker run -d -p 9090:9090 -v prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
只需要访问 http://hostIP:9090 ,就可以确认工作是否正常。

和 Grafana 进行集成
version: '2'
services:
prometheus:
image: prom/prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- '9090:9090'
grafana:
image: grafana/grafana
ports:
- "3000:3000"
只需创建上述内容,执行docker-compose up -d即可启动。
然后,通过访问“http://hostIP:3000,即可连接Grafna。
默认的ID/PW是 admin/admin。
初次登录时,会提示重新设置密码,请进行设置。

登录成功页面

如果继续这样下去,将无法查看任何数据。
请选择添加数据资源,并输入所需的信息。
请在docker-compose.yml中选择设置的端口号。

只需写查询就能享受数据可视化的乐趣。
以下文章是可视化方面的文章,简明易懂,值得推荐。
我会在Grafana上创建一个酷炫的仪表盘!(构建和设置阶段)
在这个地方,如果多种多样的使用,就会变成以下这样。
关于设置,大部分都可以只用鼠标点击点点就可以做到模拟。
关于查询,我认为只要进行简单的调查就能马上写出来。(这次只是复制粘贴从网上找到的东西)

总结
运行Prometheus本身非常容易。但是,我感觉还需要进一步学习,如数据的利用、收集和整理等方面。现在几乎都是使用top或dstat这样的方法来收集指标,但我并不了解其他更好的方法,所以我希望借此机会向实际工作中提出建议并加以应用。
作为监视工具,Zabbix、Sensu、Nagios、Munin等目标和目的与已在运营中使用的工具不同,因此需要采用不同的思路,并且可能需要同时使用它们。(完全迁移也是一种方法,但对于已经熟悉的工具,迁移可能会有所犹豫…)
需要另外关注监视设计的问题。
请提供相关链接。
https://knowledge.sakura.ad.jp/12058/ – 樱云知识库提供了有关Prometheus的信息
http://blog.serverworks.co.jp/tech/2016/03/11/play-with-grafana-1/ – Serverworks的技术博客讲解了如何使用Grafana
https://qiita.com/sugitak/items/ff8f5ad845283c5915d2 – Qiita上有一篇关于Prometheus的文章
https://www.slideshare.net/ssuser88ff5b/prometheus-79183671 – Slideshare上分享了有关Prometheus的幻灯片演示