单机部署

单机部署

开箱即用

首先从官网的下载页面获取Prometheus的最新版本和下载地址:

$ wget https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz
$ tar xvfz prometheus-2.15.1.linux-amd64.tar.gz

然后切换到解压目录,检查Prometheus版本:

$ cd prometheus-2.15.1.linux-amd64
$ ./prometheus --version
prometheus, version 2.15.1 (branch: HEAD, revision: 167a4b4e73a8eca8df648d2d2043e21bdb9a7449)
  build user:       root@1e42b46043e9
  build date:       20181004-08:42:02
  go version:       go1.11.1

运行Prometheus server

$ ./prometheus --config.file=prometheus.yml

Docker镜像使用

使用Docker安装Prometheus更简单,运行下面的命令即可:

$ sudo docker run -d -p 9090:9090 prom/prometheus

一般情况下,我们还会指定配置文件的位置:

$ sudo docker run -d -p 9090:9090 \
    -v ~/docker/prometheus/:/etc/prometheus/ \
    prom/prometheus

我们把配置文件放在本地 ~/docker/prometheus/prometheus.yml,这样可以方便编辑和查看,通过 -v 参数将本地的配置文件挂载到 /etc/prometheus/ 位置,这是prometheus在容器中默认加载的配置文件位置。如果我们不确定默认的配置文件在哪,可以先执行上面的不带 -v 参数的命令,然后通过 docker inspect 命名看看容器在运行时默认的参数有哪些(下面的Args参数

$ sudo docker inspect 0c
[...]
        "Id": "0c4c2d0eed938395bcecf1e8bb4b6b87091fc4e6385ce5b404b6bb7419010f46",
        "Created": "2018-10-15T22:27:34.56050369Z",
        "Path": "/bin/prometheus",
        "Args": [
            "--config.file=/etc/prometheus/prometheus.yml",
            "--storage.tsdb.path=/prometheus",
            "--web.console.libraries=/usr/share/prometheus/console_libraries",
            "--web.console.templates=/usr/share/prometheus/consoles"
        ],

[...]

PromQL

通过上面的步骤安装好Prometheus之后,我们现在可以开始体验Prometheus了。Prometheus提供了可视化的Web UI方便我们操作,直接访问http://localhost:9090/即可,它默认会跳转到Graph页面。Alerts展示了定义的所有告警规则,Status可以查看各种Prometheus的状态信息,有Runtime & Build Information、Command-Line Flags、Configuration、Rules、Targets、Service Discovery等等。

我们可以使用Prometheus提供的一种特殊表达式来查询监控数据,这个表达式被称为PromQL(Prometheus Query Language。通过PromQL不仅可以在Graph页面查询数据,而且还可以通过Prometheus提供的HTTP API来查询。查询的监控数据有列表和曲线图两种展现形式(对应上图中ConsoleGraph这两个标签

Prometheus自身也暴露了很多的监控指标,也可以在Graph页面查询,展开Execute按钮旁边的下拉框,可以看到很多指标名称,我们随便选一个,譬如:go_goroutines:

Graph 示例

Grafna

虽然Prometheus提供的Web UI也可以很好的查看不同指标的视图,但是这个功能非常简单,只适合用来调试。要实现一个强大的监控系统,还需要一个能定制展示不同指标的面板,能支持不同类型的展现方式(曲线图、饼状图、热点图、TopN,这就是仪表盘(Dashboard)功能。因此Prometheus开发了一套仪表盘系统PromDash,不过很快这套系统就被废弃了,官方开始推荐使用Grafana来对Prometheus的指标数据进行可视化,这不仅是因为Grafana的功能非常强大,而且它和Prometheus可以完美的无缝融合。

Grafana是一个用于可视化大型测量数据的开源系统,它的功能非常强大,界面也非常漂亮,使用它可以创建自定义的控制面板,你可以在面板中配置要显示的数据和显示方式,它 支持很多不同的数据源,比如:Graphite、InfluxDB、OpenTSDB、Elasticsearch、Prometheus等,而且它也 支持众多的插件。

Grafana的安装方式也比较简单:

$ docker run -d -p 3000:3000 grafana/grafana

运行上面的docker命令,Grafana就安装好了!你也可以采用其他的安装方式,参考 官方的安装文档。安装完成之后,我们访问 http://localhost:3000/ 进入Grafana的登陆页面,输入默认的用户名和密码(admin/admin)即可。

Grafana的使用与配置都较为简单,值得注意的是在添加数据源的时候,AccessBrowserProxy两种方式。Browser方式表示当用户访问Grafana面板时,浏览器直接通过URL访问数据源的;而Proxy方式表示浏览器先访问Grafana的某个代理接口(接口地址是/api/datasources/proxy/,由Grafana的服务端来访问数据源的URL,如果数据源是部署在内网,用户通过浏览器无法直接访问时,这种方式非常有用。

上一页
下一页