0
点赞
收藏
分享

微信扫一扫

​​Prometheus监控之远端存储influxdb2.x版本

1 简介

在InfluxDB1.x中,提供了对Prometheus远程写入API的支持。InfluxDB2.0版本没有提供支持相同的API。然而,随着Telegraf 1.19的发布,Telegraf现在包含了一个Prometheus远程写解析器,可用于摄取这些指标并将其输出到InfluxDB 1.x或InfluxDB2.0。

​​Prometheus监控之远端存储influxdb2.x版本_数据

2 安装influxdb2

2.1 下载influxdb2

可以去官方提供的地址选择合适版本
https://repos.influxdata.com/rhel/7/x86_64/stable/
wget https://repos.influxdata.com/rhel/7/x86_64/stable/telegraf-1.31.0-1.x86_64.rpm
wget https://repos.influxdata.com/rhel/7/x86_64/stable/influxdb2-2.7.10-1.x86_64.rpm

2.2 安装influxdb2

yum localinstall -y influxdb2-2.7.10-1.x86_64.rpm

#配置文件中的配置项非常少

​​Prometheus监控之远端存储influxdb2.x版本_ci_02

#BoltDB数据库的路径。BoltDB是用Go编写的键值存储。InfluxDB使用BoltDB存储数据,包括组织和用户信息、UI数据、REST资源和其他键值数据。

#持久存储引擎文件的路径,InfluxDB在磁盘上存储所有时间结构合并树(TSM)数据。

2.3 启动influxdb2服务

systemctl start influxdb.service

systemctl status -l influxdb.service

2.4 配置influxdb2

第一步我们安装并启动好Influxdb数据库之后,接下来就是配置数据库,默认是没有用户名密码的,我们可以通过配置界面进行初始化配置。

1. 访问InfluxDB2管理界面,ip:8086 ,将会出现以下界面:

http://192.168.137.128:8086

​​Prometheus监控之远端存储influxdb2.x版本_ci_03

2、点击GET STARTED按钮进入到用户配置界面,填写用户名/密码,Organization Name(工作区组织名称),填写Bucket Name,Bucket相当于Mysql数据库的库名。

​​Prometheus监控之远端存储influxdb2.x版本_HTTP_04

3、点击CONTINUE按钮之后会出现一个api token记住这个token,在api调用时需要用到

​​Prometheus监控之远端存储influxdb2.x版本_HTTP_05

4、点击QUICK START 按钮,就可以进入到Influxdb后台管理界面了

​​Prometheus监控之远端存储influxdb2.x版本_数据_06

5、修改数据清理策略

​​Prometheus监控之远端存储influxdb2.x版本_ci_07

配置完账号密码可以通过api查看配置
http://192.168.137.128:8086/api/v2/config
{
	"config": {
		"assets-path": "",
		"bolt-path": "/var/lib/influxdb/influxd.bolt",
		"e2e-testing": false,
		"engine-path": "/var/lib/influxdb/engine",
		"feature-flags": null,
		"flux-log-enabled": false,
		"hardening-enabled": false,
		"http-bind-address": ":8086",
		"http-idle-timeout": 180000000000,
		"http-read-header-timeout": 10000000000,
		"http-read-timeout": 0,
		"http-write-timeout": 0,
		"influxql-max-select-buckets": 0,
		"influxql-max-select-point": 0,
		"influxql-max-select-series": 0,
		"instance-id": "",
		"log-level": "info",
		"metrics-disabled": false,
		"nats-max-payload-bytes": 0,
		"nats-port": 0,
		"no-tasks": false,
		"pprof-disabled": false,
		"query-concurrency": 1024,
		"query-initial-memory-bytes": 0,
		"query-max-memory-bytes": 0,
		"query-memory-bytes": 0,
		"query-queue-size": 1024,
		"reporting-disabled": false,
		"secret-store": "bolt",
		"session-length": 60,
		"session-renew-disabled": false,
		"sqlite-path": "/var/lib/influxdb/influxd.sqlite",
		"storage-cache-max-memory-size": 1073741824,
		"storage-cache-snapshot-memory-size": 26214400,
		"storage-cache-snapshot-write-cold-duration": "10m0s",
		"storage-compact-full-write-cold-duration": "4h0m0s",
		"storage-compact-throughput-burst": 50331648,
		"storage-max-concurrent-compactions": 0,
		"storage-max-index-log-file-size": 1048576,
		"storage-no-validate-field-size": false,
		"storage-retention-check-interval": "30m0s",
		"storage-series-file-max-concurrent-snapshot-compactions": 0,
		"storage-series-id-set-cache-size": 0,
		"storage-shard-precreator-advance-period": "30m0s",
		"storage-shard-precreator-check-interval": "10m0s",
		"storage-tsm-use-madv-willneed": false,
		"storage-validate-keys": false,
		"storage-wal-fsync-delay": "0s",
		"storage-wal-max-concurrent-writes": 0,
		"storage-wal-max-write-delay": 600000000000,
		"storage-write-timeout": 10000000000,
		"store": "disk",
		"strong-passwords": false,
		"template-file-urls-disabled": false,
		"testing-always-allow-setup": false,
		"tls-cert": "",
		"tls-key": "",
		"tls-min-version": "1.2",
		"tls-strict-ciphers": false,
		"tracing-type": "",
		"ui-disabled": false,
		"vault-addr": "",
		"vault-cacert": "",
		"vault-capath": "",
		"vault-client-cert": "",
		"vault-client-key": "",
		"vault-client-timeout": 0,
		"vault-max-retries": 0,
		"vault-skip-verify": false,
		"vault-tls-server-name": "",
		"vault-token": ""
	}
}

2.5 安装telegraf

yum localinstall -y telegraf-1.31.0-1.x86_64.rpm

2.6 配置telegraf

vim /etc/telegraf/telegraf.conf
#配置HTTP侦听器的端口及其侦听路径
[[inputs.http_listener_v2]]
#   ## Address and port to host HTTP listener on
  service_address = ":12345"
#   ## Paths to listen to.
  paths = ["/receive"]
#   ## Data format to consume.
  data_format = "prometheusremotewrite"
#添加InfluxDB输出插件
[[outputs.influxdb_v2]]
  urls = ["http://192.168.137.128:8086"]
  token = "jfAlf3UtdbT1sZqWMKaMrxVTUwPS8lSqZW0VHmyCgpk60WbNCod_uynF8k8w_at7qb2zfjtfiVKNkUIOKOSUrg=="
  organization = "prometheus"
  bucket = "prometheus"

2.7 启动telegraf

systemctl start telegraf.service

systemctl status telegraf.service -l

3 配置prometheus使用influxdb

1、配置prometheus
remote_write:
  - url: "http://192.168.137.128:12345/receive"

2、重新加载prometheus
curl -X POST http://192.168.137.131:9090/-/reload

4 数据查看

​​Prometheus监控之远端存储influxdb2.x版本_ci_08

​​Prometheus监控之远端存储influxdb2.x版本_HTTP_09

5 配置grafana使用influxdb2

官网只写了如何从prometheus写入到influxdb,没写远程读取,配置grafana直接使用influxdb2作为数据源

​​Prometheus监控之远端存储influxdb2.x版本_数据_10

​​Prometheus监控之远端存储influxdb2.x版本_数据_11

数据查询
from(bucket: "prometheus")
  |> range(start: v.timeRangeStart, stop:v.timeRangeStop)
  |> filter(fn: (r) =>
    r._measurement == "prometheus_remote_write" and
    r._field == "znode_count"
  )

​​Prometheus监控之远端存储influxdb2.x版本_数据_12

举报

相关推荐

0 条评论