我想用Docker来尝试一下Prometheus

ossinfo_icon_prometheus.png

普罗米修斯 (Pǔ luó mǐ xiū sī)

起因或者局势

针对喜欢通过鼠标操作来查看类似监视图的读者,这是一篇关于监视设计等方面的文章。

Prometheus是什么?

这是一个基于开源的服务监控系统和时间序列数据库,也可以称之为监控工具。使用的开发语言是Go。

Prometheus具备像一般监控工具那样进行数据收集、展示数字、显示图表、发出警报的功能。除此之外,Prometheus还拥有自己的数据模型,可以使用查询语言对时间序列数据进行评估和图表化。

普罗米修斯

建筑设计

スクリーンショット 2019-01-13 14.33.29.png

有一份详细的图表公式。
数据从左侧获取,然后在中间进行处理,并在右侧回答查询以返回时间序列数据。这是整个流程。
用户通知设置非常灵活,可以根据数据量等进行通知。

环境

暂时确认操作是否正常

为了使用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 ,就可以确认工作是否正常。

スクリーンショット 2019-01-13 14.24.02.png

和 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。
初次登录时,会提示重新设置密码,请进行设置。

スクリーンショット 2019-01-13 14.48.15.png

登录成功页面

スクリーンショット 2019-01-13 15.00.22.png

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

スクリーンショット 2019-01-13 15.11.42.png

只需写查询就能享受数据可视化的乐趣。
以下文章是可视化方面的文章,简明易懂,值得推荐。

我会在Grafana上创建一个酷炫的仪表盘!(构建和设置阶段)

在这个地方,如果多种多样的使用,就会变成以下这样。
关于设置,大部分都可以只用鼠标点击点点就可以做到模拟。
关于查询,我认为只要进行简单的调查就能马上写出来。(这次只是复制粘贴从网上找到的东西)

スクリーンショット 2019-01-13 15.32.40.png

总结

运行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的幻灯片演示

广告
将在 10 秒后关闭
bannerAds