Prometheus使用说明
概述
Uqbar支持通过uqbar-prometheus-adapter将Prometheus的监控数据写入时序表。uqbar-prometheus-adapter为联系Prometheus与Uqbar之间的中间件,基于Prometheus对remote storage支持,外部如Grafana的PromSQL查询请求,监控设备上采集到的数据写入请求,会被中间件uqbar-prometheus-adapter转换为向Uqbar执行的SQL语句,将监控数据写入数据库或从数据库获取查询结果返回给Prometheus。
Prometheus安装
访问 https://prometheus.io/download/ 下载Prometheus。
修改Prometheus配置文件
设置配置文件prometheus.yaml,增加远端存储配置项,最简配置如下:
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: "prometheus"
scheme : "http"
static_configs:
- targets: [ "localhost:9090"]
remote_write:
- url: " http://localhost:9201/write"
remote_read:
- url: "http://localhost:9201/read "
read_recent: true
remote_write
和 remote_read
中的 url 配置为 uqbar-prometheus-adapter 的实际地址。
上述配置为不使用TLS,不做auth校验,对于使用TLS示例如下:
global:
scrape_interval: 15s
evaluation_interval: 15s
alerting:
alertmanagers:
- static_configs:
- targets:
rule_files:
scrape_configs:
- job_name: "prometheus"
scheme : "http"
static_configs:
- targets: [ "localhost:9090"]
remote_write:
- url: " https://localhost:9201/write"
basic_auth:
username: "hello"
password: "world"
# =====================
# authorization:
# type: "Bearer"
# credentials: "QWxhZGRpbjpvcGVuIHNlc2FtZQ"
# =====================
tls_config:
ca_file: "xx/ca.crt"
cert_file: "xx/server.pem"
key_file: "xx/server.key"
remote_read:
- url: "https://localhost:9201/read"
read_recent: true
basic_auth:
username: "hello"
password: "world"
# =====================
# authorization:
# type: "Bearer"
# credentials: "QWxhZGRpbjpvcGVuIHNlc2FtZQ"
# =====================
tls_config:
ca_file: "xx/ca.crt"
cert_file: "xx/server.pem"
key_file: "xx/server.key"
请注意remote_read与_remote_write中url参数为https才会使得Prometheus的tsdb组件向remote storage发送https请求,故使用TLS请将url参数设置正确,否则可能会出现向HTTPS服务器发送HTTP请求而无法服务的问题。
启动Prometheus
启动参数示例如下:
nohup ./prometheus --config.file=prometheus.yml &
uqbar-prometheus-adapter自身也存在可配置参数,可以在启动服务时通过--xx=xx指定,具体参数与作用见下表。
参数名 | 描述 |
---|---|
config | 配置文件路径 |
web-auth-username | basic auth的用户名 |
web-auth-password | basic auth的密码 |
web-auth-password-file | 使用文件存储basic auth密码的文件路径 |
web-auth-bearer-token | bearer token |
web-auth-bearer-token-file | 使用文件存储bearer token的文件路径 |
web-listen-address | web服务监听的地址,默认使用9201端口 |
auth-tls-cert-file | TLS 证书文件 |
auth-tls-key-file | TLS key文件 |
pg-commit-secs | 每隔多少秒写一次数据库,默认15 |
pg-commit-rows | 每积累多少行写一次数据库 |
pg-threads | 向数据库写入的协程数 |
parser-threads | 解析prometheus的metrics数据协程数 |
db-connurl | 数据库连接字符串,不为空直接使用;为空程序使用其他db参数自行构造 |
db-app-name | 连接app name |
db-ssl-mode | ssl 模式默认allow |
db-conn-timeout | 超时时间 |
db-user | 用户名 |
db-password | 密码 |
db-host | 数据库host |
db-port | 数据库服务端口 |
db-database | database名 |
db-ssl-cert | 与数据库连接使用的ssl 证书文件 |
db-ssl-key | 与数据库连接使用的ssl key文件 |
db-ssl-ca | 与数据库连接使用的CA文件 |
最简启动命令如:
./uqbar-prometheus-adapter --db-host="localhost" --db-user=world --db-password="Test@123" --db-port=17680 --db-database="postgres"
本工具也支持使用配置文件启动,使用方法为**--config=xx.yaml**
配置文件使用yaml格式,但要求为扁平化层级结构,所有参数都处于同一层级。命令行指定参数与配置文件指定参数重复无法启动并提示。
连接 Uqbar 时序数据库
-
配置Prometheus监控任务与远端存储。
-
启动uqbar-prometheus-adapter工具,数据库密码认证方式必须为MD5。
-
数据成功写入Uqbar。
-
可通过Prometheus web UI 查询已写入数据(http://localhost:9090/graph)。