prometheus服务器的配置要求(Prometheus-安装与部署)

将安装之前说下,Prometheus至跨平台的,linux、windows、mac都支持但是公司里面大部分使用的都是linux服务器,这里直接就以linux为例子了,当然可能有些公司已经上了容器化,也可以使用Docker部署,今天小编就来说说关于prometheus服务器的配置要求?下面更多详细答案一起来看看吧!

prometheus服务器的配置要求(Prometheus-安装与部署)

prometheus服务器的配置要求

Prometheus 安装与部署

将安装之前说下,Prometheus至跨平台的,linux、windows、mac都支持。但是公司里面大部分使用的都是linux服务器,这里直接就以linux为例子了,当然可能有些公司已经上了容器化,也可以使用Docker部署。

安装Linux 系统安装方式, 二进制包安装
  • 下载安装包,以最新版本的2.17为例子

    官网下载地址

    wget http://github.com/prometheus/prometheus/releases/download/v2.17.0/prometheus-2.17.0.linux-amd64.tar.gz # 解压安装包 tar -xf prometheus-2.17.0.linux-amd64.tar.gz cd prometheus-2.17.0.linux-amd64/

    由于是国外的服务器,可能下载过程中会有问题网络不是很稳定,可以下载我提供的百度网盘地址:链接:http:///s/1feUuUrlzW8pIlOGI-IvuFw 密码:njzv

  • 启动 Prometheus

    /prometheus # 如果启动成功会出现 level=info ts=2020-03-26T13:53:35.566Z caller=main.go:683 fs_type=EXT4_SUPER_MAGIC level=info ts=2020-03-26T13:53:35.566Z caller=main.go:684 msg="TSDB started" level=info ts=2020-03-26T13:53:35.568Z caller=main.go:788 msg="Loading configuration file" filename=prometheus.yml level=info ts=2020-03-26T13:53:35.571Z caller=main.go:816 msg="Completed loading of configuration file" filename=prometheus.yml level=info ts=2020-03-26T13:53:35.571Z caller=main.go:635 msg="Server is ready to receive web requests."

  • 当 Prometheus 启动后,你可以通过浏览器来访问 http://IP:9090,将看到如下页面

  • 默认配置中已经添加了 Prometheus Server 的监控,我们可以查询对应的数据PromQL

    注意生产环境中我们肯定要放到后台管理,推荐是用supervisord。

  • IP:9090/metrics 这个为所有输出的监控项

    Docker 方式安装
  • 下载并运行docker 镜像

    $ docker run --name prometheus -d -p 127.0.0.1:9090:9090 quay.io/prometheus/prometheus

  • Docker 管理 prometheus

    # 运行 docker ps 查看所有服务 docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e9ebc2435387 quay.io/prometheus/prometheus "/bin/prometheus -..." 26 minutes ago Up 26 minutes 127.0.0.1:9090->9090/tcp prometheus

    运行 docker start prometheus 启动服务

    运行 docker stats prometheus 查看 prometheus 状态

    运行 docker stop prometheus 停止服务

    UI 页面跟上面一样都使用 IP:9090

    监控主机Server例子

    Prometheus 的agent 使用 node_exporter 进行数据收集的

    在Prometheus的架构设计中,Prometheus Server并不直接服务监控特定的目标,其主要任务负责数据的收集,存储并且对外提供数据查询支持。因此为了能够能够监控到某些东西,如主机的CPU使用率,我们需要使用到Exporter。Prometheus周期性的从Exporter暴露的HTTP服务地址(通常是/metrics)拉取监控样本数据。

    从上面的描述中可以看出Exporter可以是一个相对开放的概念,其可以是一个独立运行的程序独立于监控目标以外,也可以是直接内置在监控目标中。只要能够向Prometheus提供标准格式的监控样本数据即可。

    这里为了能够采集到主机的运行指标如CPU, 内存,磁盘等信息。我们可以使用Node Exporter。

    Node Exporter同样采用Golang编写,并且不存在任何的第三方依赖,只需要下载,解压即可运行。可以从http://prometheus.io/download/获取最新的node exporter版本的二进制包。

    我估计你们够呛能下载,这个墙大家都知道有点厚,直接放到报读网盘地址链接:http:///s/1feUuUrlzW8pIlOGI-IvuFw 密码:njzv

    wget http://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz tar -xf node_exporter-0.18.1.linux-amd64.tar.gz -C . cp node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/ node_exporter

    动成功后,可以看到以下输出:

    INFO[0000] Listening on :9100 source="node_exporter.go:170"

    访问http://localhost:9100/可以看到以下页面:

    初始Node Exporter监控指标

    访问http://localhost:9100/metrics,可以看到当前node exporter获取到的当前主机的所有监控数据,如下所示:

    每一个监控指标之前都会有一段类似于如下形式的信息:

    scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] # 采集node exporter监控数据 - job_name: 'node' static_configs: - targets: ['localhost:9100']

    其中HELP用于解释当前指标的含义,TYPE则说明当前指标的数据类型。在上面的例子中node_cpu的注释表明当前指标是cpu0上idle进程占用CPU的总时间,CPU占用时间是一个只增不减的度量指标,从类型中也可以看出node_cpu的数据类型是计数器(counter),与该指标的实际含义一致。又例如node_load1该指标反映了当前主机在最近一分钟以内的负载情况,系统的负载情况会随系统资源的使用而变化,因此node_load1反映的是当前状态,数据可能增加也可能减少,从注释中可以看出当前指标类型为仪表盘(gauge),与指标反映的实际含义一致。

    除了这些以外,在当前页面中根据物理主机系统的不同,你还可能看到如下监控指标:

  • node_boot_time:系统启动时间

  • node_cpu:系统CPU使用量

  • nodedisk:磁盘IO

  • nodefilesystem:文件系统用量

  • node_load1:系统负载

  • nodememeory:内存使用量

  • nodenetwork:网络带宽

  • node_time:当前系统时间

  • go_*:node exporter中go相关指标

  • process_*:node exporter自身进程相关运行指标

    从Node Exporter收集监控数据

    为了能够让Prometheus Server能够从当前node exporter获取到监控数据,这里需要修改Prometheus配置文件。编辑prometheus.yml并在scrape_configs节点下添加以下内容:

    scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] # 采集node exporter监控数据 - job_name: 'server-data' static_configs: - targets: ['localhost:9100']

    重新启动Prometheus Server

    访问http://localhost:9090,进入到Prometheus Server。如果输入“up”并且点击执行按钮以后,可以看到如下结果:

    如果Prometheus能够正常从node exporter获取数据,则会看到以下结果:

    up{instance="localhost:9090",job="prometheus"} 1 up{instance="localhost:9100",job="server-data"} 1

    其中1表示正常,反之0则为异常。

    使用Grafana创建可视化Dashboard安装

    参考官网安装文档 http://grafana.com/grafana/download

    配置数据源

    在完成数据源的添加之后就可以在Grafana中创建我们可视化Dashboard了。Grafana提供了对PromQL的完整支持,如下所示,通过Grafana添加Dashboard并且为该Dashboard添加一个类型为“Graph”的面板。 并在该面板的“Metrics”选项下通过PromQL查询需要可视化的数据:

    点击界面中的保存选项,就创建了我们的第一个可视化Dashboard了。 当然作为开源软件,Grafana社区鼓励用户分享Dashboard通过http://grafana.com/dashboards网站,可以找到大量可直接使用的Dashboard:

    所有信息均已展示,就问你炫不炫,完全可以在老板面前装隔壁

  • 免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页