全部产品

快速入门

更新时间:2019-04-18 18:03:45

步骤一 购买(升级)TSDB实例

  • 若之前没有购买过TSDB实例,则可以通过TSDB的产品文档“快速入门”章节购买;
  • 若2019年4月15日前购买的既存实例,可通过阿里云工单系统提工单进行TSDB实例升级;

步骤二 配置TSDB实例

  • 获取待安装Prometheus的机器的公网IP地址;
  • 网络打通
    • VPC网络打通
      • 如果Promethues 部署在阿里云ECS上且没有配置VPC网络,那么可以将promethues ECS 加入到TSDB所在的 VPC 网络中。
        • 如果Promethues 部署在非阿里云环境,那么如果要和云上TSDB 打通,需要开通TSDB 公网,才可以实现网络通信,同时为了保证实例访问安全,需要配置TSDB 实例访问白名单。申请TSDB实例的公网地址,并在网络白名单中填入上述应用环境的公网IP
    • TSDB实例管理界面中申请公网地址的入口TSDB公网申请
    • 网络白名单配置界面TSDB网络白名单
  • TSDB公网地址申请后,确认从应用环境可以连接到该TSDB实例的公网域名。 TSDB实例域名以及端口会在公网地址申请成功后显示在下述位置:TSDB公共域名

  • 确认Prometheus所在机器能够正常访问TSDB实例。直接使用http访问TSDB实例的地址,如果能够得到包含”Welcome to use the TSDB”的字符串,表示Prometheus所在机器能够正常访问TSDB实例。设TSDB实例的公网地址为: ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242,这里以Linux系统为例,执行命令curl ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242,若网络相通,可以得到以下结果。

TSDB_Prometheus_network

步骤三 安装Prometheus

Prometheus用Golang实现,因此具有天然可移植性(支持Linux、Windows、macOS和Freebsd)。这里直接使用预编译的二进制文件部署,开箱即用。

Prometheus在不同操作系统下的二进制安装包,可以通过Prometheus的GitHub仓库下载。这里以Liunx系统为例进行安装,具体步骤如下。

Prometheus安装

  1. wget https://github.com/prometheus/prometheus/releases/download/v2.3.0/prometheus-2.3.0.linux-amd64.tar.gz
  2. tar -zxvf prometheus-2.3.0.linux-amd64.tar.gz
  3. mv prometheus-2.3.0.linux-amd64 /usr/local/prometheus

验证安装

  1. cd /usr/local/prometheus/
  2. ./prometheus --version

若出现以下信息,表示安装成功

  1. prometheus, version 2.3.0 (branch: HEAD, revision: 290d71791a507a5057b9a099c9d48703d86dc941)
  2. build user: root@d539e167976a
  3. build date: 20180607-08:46:54
  4. go version: go1.10.2

步骤四 Prometheus配置

修改Prometheus配置

假设TSDB实例的公网地址为: ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242,则在prometheus.yaml中添加以下内容。

  1. # Remote write configuration (TSDB).
  2. remote_write:
  3. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_write"
  4. # Remote read configuration (TSDB).
  5. remote_read:
  6. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read"
  7. read_recent: true

上面的配置中,’read_recent: true’ 表示近期数据也要读远程存储,因为Prometheus近期数据无论如何都是要读本地存储的,如果开启这个标志位,Prometheus会把本地和远程的数据进行Merge。开启这个标志位,可以方便验证读取远程TSDB是否正常工作。如果正式在生产环境,可以根据实际情况将’read_recent: true’去掉,可提升Prometheus的查询性能。Prometheus完整的示例配置如下所示。

  1. # my global config
  2. global:
  3. scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  4. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  5. # scrape_timeout is set to the global default (10s).
  6. # Alertmanager configuration
  7. alerting:
  8. alertmanagers:
  9. - static_configs:
  10. - targets:
  11. # - alertmanager:9093
  12. # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
  13. rule_files:
  14. # - "first_rules.yml"
  15. # - "second_rules.yml"
  16. # A scrape configuration containing exactly one endpoint to scrape:
  17. # Here it's Prometheus itself.
  18. scrape_configs:
  19. # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  20. - job_name: 'prometheus'
  21. # metrics_path defaults to '/metrics'
  22. # scheme defaults to 'http'.
  23. static_configs:
  24. - targets: ['localhost:9090']
  25. # Remote write configuration (TSDB).
  26. remote_write:
  27. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_write"
  28. # Remote read configuration (TSDB).
  29. remote_read:
  30. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read"
  31. read_recent: true

注意事项,这里的配置仅仅是快速入门用,针对不同规格的TSDB实例,我们提供了Prometheus写入配置的最佳实践,用于实现Prometheus平稳的将监控样本数据写入TSDB,请参考TSDB for Prometheus最佳实践章节的Prometheus Remote Write配置的内容。

启动Prometheus

  1. ./promtheus

若出现以下信息,则表示启动成功

  1. level=info ts=2019-04-15T10:39:12.870828882Z caller=main.go:222 msg="Starting Prometheus" version="(version=2.3.0, branch=HEAD, revision=290d71791a507a5057b9a099c9d48703d86dc941)"
  2. level=info ts=2019-04-15T10:39:12.870926993Z caller=main.go:223 build_context="(go=go1.10.2, user=root@d539e167976a, date=20180607-08:46:54)"
  3. level=info ts=2019-04-15T10:39:12.870971602Z caller=main.go:224 host_details="(Linux 4.9.93-010.ali3000.alios7.x86_64 #1 SMP Fri Apr 20 00:18:51 CST 2018 x86_64 common-dev100081116006.eu95sqa (none))"
  4. level=info ts=2019-04-15T10:39:12.871010623Z caller=main.go:225 fd_limits="(soft=655350, hard=655350)"
  5. level=info ts=2019-04-15T10:39:12.872103134Z caller=main.go:514 msg="Starting TSDB ..."
  6. level=info ts=2019-04-15T10:39:12.87214458Z caller=web.go:426 component=web msg="Start listening for connections" address=0.0.0.0:9090
  7. level=info ts=2019-04-15T10:39:12.877363461Z caller=main.go:524 msg="TSDB started"
  8. level=info ts=2019-04-15T10:39:12.877417508Z caller=main.go:603 msg="Loading configuration file" filename=prometheus.yml
  9. level=info ts=2019-04-15T10:39:12.879382462Z caller=main.go:500 msg="Server is ready to receive web requests."

步骤五 写入和读取验证

写入验证

可以简单的通过TSDB实例的管理控制台界面的“实例监控”界面,观察写入的TPS是否有所变化来验证。一般刚开始没有任何数据写入时,写入的TPS为0;若TPS开始从0变为正数时,则说明Prometheus已经将数据上报到了TSDB中,如下图所示。prometheus_write_validate

查询验证

本文提供Prometheus的示例配置中Prometheus监控指标采集目标是Promethes本身,因此这里以Prometheus采集到自身的一个监控指标‘go_memstats_gc_cpu_fraction’为例进行查询认证,结果如下图所示。prometheus_read_validate