- 中文参考手册:https://jasper-zhang1.gitbooks.io/
- 新增yum源
cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo [influxdb] name = InfluxDB Repository - RHEL \$releasever baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key EOF
- 安装
yum install influxdb
- 启动
systemctl start influxdb # 或者 service influxdb start
- 配置说明
安装好之后,每个配置文件都有了默认的配置,你可以通过命令
influxd config
来查看这些默认配置。在配置文件
/etc/influxdb/influxdb.conf
之中的大部分配置都被注释掉了,所有这些被注释掉的配置都是由内部默认值决定的。配置文件里任意没有注释的配置都可以用来覆盖内部默认值,需要注意的是,本地配置文件不需要包括每一项配置。有两种方法可以用自定义的配置文件来运行InfluxDB:
1.运行的时候通过可选参数
-config
来指定:influxd -config /etc/influxdb/influxdb.conf
2.设置环境变量
INFLUXDB_CONFIG_PATH
来指定,例如:echo $INFLUXDB_CONFIG_PATH /etc/influxdb/influxdb.conf # 执行命令 influxd
其中
-config
的优先级高于环境变量。
### influxDB配置文件
# 每 24 小时一次, InfluxDB 将报告使用情况(非数据库数据)
# 将此选项更改为 true 以禁用报告。
# reporting-disabled = false
# 绑定地址,用于 RPC 服务进行备份和还原。
# bind-address = "127.0.0.1:8088"
###
### [meta]
###
### 控制存储元数据的 Raft 共识组的参数
[meta]
# 元数据/数据库的存储位置
dir = "/var/lib/influxdb/meta"
# 创建数据库时自动创建默认保留策略。(保留-自动创建)
# retention-autocreate = true
# 如果为元服务打印日志消息启用日志记录
# logging-enabled = true
###
### [data]
###
### 控制 InfluxDB 的实际分片数据位于其中及其如何
### 从 WAL 中刷新。可能需要将"dir"更改为合适的位置
### 表示您的系统,但 WAL 设置是高级配置。的
### 默认值应适合大多数系统。
###
[data]
# TSM 存储引擎存储 TSM 文件的目录。
dir = "/var/lib/influxdb/data"
# TSM 存储引擎存储 WAL 文件的目录。
wal-dir = "/var/lib/influxdb/wal"
# 写入在 fsync 之前等待的时间量。持续时间
# 大于 0 可用于批处理多个 fsync 调用。这对于速度较慢非常有用
# 磁盘或看到 WAL 写入争用时。每次写入 WAL 时,值为 0s fsync。
# 建议非 SSD 磁盘在 0-100 毫秒范围内的值。
# wal-fsync-delay = "0s"
# 用于新分片的分片索引的类型。默认值是内存中的索引,该索引是
# 在启动时重新创建。值"tsi1"将使用支持更高值的基于磁盘的索引基数数据集。
# index-version = "inmem"
# 跟踪日志记录在 tsm 引擎周围提供了更详细的输出。
# trace-logging-enabled = false
# 执行前是否应记录查询。非常有用的故障排除,但会记录查询中包含的任何敏感数据。
# query-log-enabled = true
# 验证传入写入,以确保密钥仅具有有效的单码字符。
# 此设置将产生很小的开销,因为必须检查每个密钥。
# validate-keys = false
# TSM 引擎的设置
# 缓存最大大小是分片的缓存的最大大小可能出现在拒绝写入达到
# 有效大小后缀为 k、m 或 g(大小不区分大小,1024 = 1k)。
# 没有大小后缀的值以字节为单位。
# cache-max-memory-size = "1g"
# CacheSnapshotMemorySize是引擎将快照缓存并将其写入TSM文件, freeing up memory
# 释放内存的有效大小后缀为k、m或g(不区分大小写,1024=1k)。
# 没有大小后缀的值以字节为单位。
# cache-snapshot-memory-size = "25m"
# 缓存记忆快照引擎
# 快照缓存并写入 TSM 文件,释放内存
# 有效大小后缀为 k、m 或 g(大小不区分大小,1024 = 1k)。没有大小后缀的值以字节为单位。
# cache-snapshot-write-cold-duration = "10m"
# CompactFullWriteColdDuration是引擎的持续时间
# 将压缩碎片中的所有TSM文件,如果它没有收到写入或删除
# compact-full-write-cold-duration = "4h"
# 一次可以同时运行的最大完全和级别压缩数。值为0将导致50%的运行时.GOMAXPROCS(0)在运行时使用。任何大于0的数字都将压缩限制为该值。此设置不适用于缓存快照。
# max-concurrent-compactions = 0
# CompactThroughput是允许TSM压缩写入磁盘的速率限制(以字节/秒为单位)。请注意,允许短脉冲以可能更大的值发生,该值由CompactThroughputBurst设置
# compact-throughput = "48m"
# CompactThroughputBurst是允许TSM压缩写入磁盘的速率限制(以字节/秒为单位)。
# compact-throughput-burst = "48m"
# 如果为true,则将向内核提供与TSM文件相关的mmap advice值MADV_WILLNEED。这个设置在一些内核上被发现有问题,默认为关闭。在某些情况下,它可能会帮助那些磁盘速度慢的用户。
# tsm-use-madv-willneed = false
# inmem索引的设置在删除写入之前每个数据库允许的最大序列数。这个限制可以防止数据库级别的高基数问题。此限制可以通过将其设置为0来禁用。
# max-series-per-database = 1000000
# 在删除写入之前,每个标记允许的最大标记值数。此限制可防止高基数标记值写入度量。此限制可以通过将其设置为0来禁用。
# max-values-per-tag = 100000
# tsi1索引的设置
# 索引预写日志文件压缩为索引文件时的阈值(以字节为单位)。较小的大小将导致日志文件更快地被压缩,从而以写入为代价降低堆的使用率吞吐量。更高大小将减少压缩频率,在内存中存储更多系列,并提供更高的写入吞吐量。有效大小后缀是k、m或g(不区分大小写,1024=1k)。没有大小后缀的值以字节为单位。
# max-index-log-file-size = "1m"
# TSI索引中用于存储先前计算的序列结果的内部缓存的大小。当执行具有匹配标记键/值谓词的后续查询时,缓存的结果将从缓存中快速返回,而不需要重新计算。将此值设置为0将禁用缓存,这可能会提高查询性能问题。这个只有当知道数据库的所有度量中经常使用的标记键/值谓词集大于100时,才应该增加值。缓存大小的增加可能会导致堆使用量的增加。
series-id-set-cache-size = 100
###
### [coordinator]
###
### 控制群集服务配置。
###
[coordinator]
# 写入请求的默认时间将等待,直到将"超时"错误返回给调用方。
# write-timeout = "10s"
# 允许一次执行的并发查询的最大数量。
# 执行并超过此限制,错误将返回给调用方。可以禁用此限制(设置为0)
# max-concurrent-queries = 0
# 允许查询在被系统杀死之前执行的最大时间。
# 设置为0取消限制
# query-timeout = "0s"
# 查询作为慢速查询记录的时间阈值。
# 此限制可以设置为帮助发现缓慢或资源密集型查询。将值设置为 0 将禁用慢速查询日志记录。
# log-queries-after = "0s"
# SELECT 可以处理的最大点数。0无限制
# 这只会检查每一秒,所以查询不会达到限制时立即中止。
# max-select-point = 0
# SELECT 可以运行的最大系列数。值为 0 无限制
# 计数无限。
# max-select-series = 0
# SELECT 可以创建的时间存储桶组的最大数量。零值将最大
# max-select-buckets = 0
###
### [retention]
###
### 旧数据的保留策略
###
[retention]
# 确定是否启用保留策略实施。
# enabled = true
# 运行保留策略实施检查的时间间隔。
# check-interval = "30m"
###
### [shard-precreation]
###
### 控制分片的预创建,以便它们在数据到达之前可用。
### 只有在创建之后,在未来有开始和结束时间的碎片才会被创建。碎片永远不会在过去被完全或部分地预处理。
[shard-precreation]
# # 确定是否启用分片预创建服务。
# enabled = true
# 运行预创建新分片的检查的时间间隔。
# check-interval = "10m"
# 在创建成功或组的碎片组的结束时间之前的默认时间段。
# advance-period = "30m"
###
### 控制系统自我监控、统计和诊断。
###
### 如果监控数据的内部数据库不存在,则会自动创建该数据库。此数据库中的目标保留称为“monitor”,如果不存在,则创建的保留期为7天,复制因子为1。在所有情况下,此保留策略都配置为数据库的默认策略。
[monitor]
# 是否在内部记录统计信息。
# store-enabled = true
# 记录统计信息的目标数据库
# store-database = "_internal"
# 记录统计信息的间隔
# store-interval = "10s"
###
### [http]
###
### 控制如何配置HTTP端点。这些是使数据进出InfluxDB的主要机制。
[http]
# 确定是否启用 HTTP endpoint。
# enabled = true
# 确定是否启用 Flux 查询终结点。
# flux-enabled = false
# 确定是否启用 Flux 查询日志记录。
# flux-log-enabled = false
# HTTP 服务使用的绑定地址。
# bind-address = ":8086"
# 确定是否通过 HTTP/HTTPS 启用用户身份验证。
# auth-enabled = false
# 发出基本身份验证质询时发送回的默认域。
# realm = "InfluxDB"
# 确定是否启用 HTTP 请求日志记录。
# log-enabled = true
# 确定在启用日志时是否应禁止 HTTP 写入请求日志。
# suppress-write-log = false
# 启用HTTP请求日志记录时,此选项指定应写入日志项的路径。如果未指定,默认值是写入stderr,它将HTTP日志与内部InfluxDB日志混合在一起。如果influxd无法访问指定的路径,它将记录一个错误并返回到将请求日志写入stderr。
# access-log-path = ""
# 应记录请求的筛选器。每个过滤器的模式为NNN、NNX或NXX,其中N是一个数字,X是任何数字的通配符。要筛选所有5xx响应,请使用字符串5xx。如果使用多个筛选器,则只需匹配一个筛选器。默认设置是没有过滤器,这将导致打印每个请求。
# access-log-status-filters = []
# 确定是否启用了详细写入日志记录。
# write-tracing = false
# 确定是否启用 pprof 终结点。此终结点用于故障排除和监控。
# pprof-enabled = true
# pprof 终结点上启用身份验证。用户将需要管理员权限访问 pprof 终结点,设置为 false, 则无效果。
# pprof-auth-enabled = false
# 启用一个 pprof 终结点,该终结点在启动时立即绑定到"本地主机":6060。
# debug-pprof-enabled = false
# 在 /ping, /metrics, and deprecated /status 启用身份验证。
# ping-auth-enabled = false
# 启用https
# https-enabled = false
# 证书位置
# https-certificate = "/etc/ssl/influxdb.pem"
# 私钥位置
# https-private-key = ""
# * Jwt 身份验证共享密钥,用于使用 JSON Web 令牌验证请求。
# shared-secret = ""
# 应分块的结果集的默认区块大小。
# max-row-limit = 0
# 可能一次打开的 HTTP 连接的最大数量。0无限制
# max-connection-limit = 0
# 通过 unix 域套接字启用 http 服务
# unix-socket-enabled = false
# socket路径。
# bind-socket = "/var/run/influxdb.sock"
# 客户端请求正文的最大大小(以字节为单位)。将此值设置为 0 将禁用限制。
# max-body-size = 25000000
# 同时处理的最大写入数。
# max-concurrent-write-limit = 0
# 排队处理的最大写入数。
# max-enqueued-write-limit = 0
# 要处理的队列中写入的最大持续时间。
# enqueued-write-timeout = 0
# 用户提供的 HTTP 响应标头
#
# [http.headers]
# X-Header-1 = "Header Value 1"
# X-Header-2 = "Header Value 2"
###
### [logging]
###
### 控制记录器如何向输出发出日志。
###
[logging]
# 确定要用于日志的日志编码器
# auto、logfmt、json
# format = "auto"
# 日志级别(error, warn, info, and debug)
# level = "info"
# 禁止程序启动时打印的徽标输出。
# The logo is always suppressed if STDOUT is not a TTY.
# suppress-logo = false
###
### [subscriber]
###
### 控制订阅,订阅可用于fork InfluxDB主机接收的所有数据的副本。
###
[subscriber]
# 确定是否启用了订阅者服务。
# enabled = true
# HTTP 写入订阅者的默认超时。
# http-timeout = "30s"
# 允许不安全的 HTTPS 连接到订阅者。
# insecure-skip-verify = false
# PEM 编码 CA 证书文件的路径。如果为空字符串,将使用默认系统证书
# ca-certs = ""
# 处理写入通道的编写器例程数。
# write-concurrency = 40
# 在写入通道中缓冲的在逃写入数。
# write-buffer-size = 1000
###
### [[graphite]]
###
### 控制Graphite数据的一个或多个侦听器。
###
[[graphite]]
# 确定是否启用graphite终结点。
# enabled = false
# database = "graphite"
# retention-policy = ""
# bind-address = ":2003"
# protocol = "tcp"
# consistency-level = "one"
# 接下来的几行控制批处理的工作方式。您应该启用此功能,否则可能会导致指标下降或性能不佳。批处理将缓冲内存中的点,如果您有许多进入。
# 如果缓冲了这么多点位,则刷新
# batch-size = 5000
# 内存中可能挂起的批处理数
# batch-pending = 10
# 即使没有达到缓冲区限制,也要经常刷新
# batch-timeout = "1s"
# UDP读取缓冲区大小,0表示操作系统默认值。如果设置高于OS最大值,UDP侦听器将失败。
# udp-read-buffer = 0
### 此字符串连接多个匹配的“measurement”值,以提供对最终度量名称的更多控制。
# separator = "."
### 将添加到所有度量的默认标记。这些可以在模板级别或通过从度量中提取的标记重写
# tags = ["region=us-east", "zone=1c"]
#每个模板行都需要一个模板模式。它可以在模板前面有一个可选的过滤器,并用空格隔开。它还可以在模板后面有可选的额外标记。多个标签应该用逗号隔开,不能有类似于行协议格式的空格。只能有一个默认模板。
# templates = [
# "*.app env.service.resource.measurement",
# # Default template
# "server.*",
# ]
###
### [collectd]
###
### 控制收集数据的一个或多个侦听器。
###
[[collectd]]
# enabled = false
# bind-address = ":25826"
# database = "collectd"
# retention-policy = ""
#
# collectd服务支持在目录中扫描多种类型的db文件,或指定单个db文件。
# typesdb = "/usr/local/share/collectd"
#
# security-level = "none"
# auth-file = "/etc/collectd/auth_file"
# 接下来的几行控制批处理的工作方式。您应该启用此功能,否则可能会导致指标下降或性能不佳。批处理将缓冲内存中的点,如果您有许多进入。
# 如果缓冲了这么多点位,则刷新
# batch-size = 5000
# 内存中可能挂起的批处理数
# batch-pending = 10
# 即使没有达到缓冲区限制,也要经常刷新
# batch-timeout = "10s"
# UDP读取缓冲区大小,0表示操作系统默认值。如果设置高于OS最大值,UDP侦听器将失败。
# read-buffer = 0
# 多值插件有两种处理方式。”split“将解析多值插件数据并将其存储到单独的度量值中”“join”“将解析多值插件并将其存储为单个多值度量值。”split”是与influxdb以前版本向后兼容的默认行为。
# parse-multivalue-plugin = "split"
###
### [opentsdb]
###
### 控制OpenTSDB数据的一个或多个侦听器。
###
[[opentsdb]]
# enabled = false
# bind-address = ":4242"
# database = "opentsdb"
# retention-policy = ""
# consistency-level = "one"
# tls-enabled = false
# certificate= "/etc/ssl/influxdb.pem"
# 记录每个错误点的错误。
# log-point-errors = true
# 接下来的几行控制批处理的工作方式。您应该启用此功能,否则可能会导致指标下降或性能不佳。只有通过telnet协议接收的点度量才会进行批处理。
# 如果缓冲了这么多点,则刷新。
# batch-size = 1000
# 内存中可能挂起的批处理数
# batch-pending = 5
# 即使没有达到缓冲区限制,也要经常刷新
# batch-timeout = "1s"
###
### [[udp]]
###
### 通过UDP控制InfluxDB线路协议数据的侦听器。
###
[[udp]]
# enabled = false
# bind-address = ":8089"
# database = "udp"
# retention-policy = ""
# 接收点上时间戳的InfluxDB精度 ("" or "n", "u", "ms", "s", "m", "h")
# precision = ""
# 接下来的几行控制批处理的工作方式。您应该启用此功能,否则可能会导致指标下降或性能不佳。批处理将缓冲内存中的点,如果您有许多进入。
# 如果缓冲了这么多点,则刷新
# batch-size = 5000
# 内存中可能挂起的批处理数
# batch-pending = 10
# 即使我们没有达到缓冲区限制,也至少会刷新这个频率
# batch-timeout = "1s"
# UDP读取缓冲区大小,0表示操作系统默认值。如果设置高于OS最大值,UDP侦听器将失败。
# read-buffer = 0
###
### [continuous_queries]
###
###控制如何在InfluxDB中运行连续查询。
###
[continuous_queries]
# 确定是否启用连续查询服务。
# enabled = true
# 控制由CQ服务执行时是否记录查询。
# log-enabled = true
# 控制是否将查询记录到自我监控数据存储区。
# query-stats-enabled = false
# 检查连续查询(如果需要运行)的频率间隔
# run-interval = "1s"
###
### [tls]
###
### InfluxDB中TLS的全局配置设置。
###
[tls]
# 确定可用的密码套件集. https://golang.org/pkg/crypto/tls/#pkg-constants
# which depends on the version of Go (use the query
# the default settings from Go's crypto/tls package.
# ciphers = [
# "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
# "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
# ]
# Minimum version of the tls protocol that will be negotiated. If not specified, uses the
# default settings from Go's crypto/tls package.
# min-version = "tls1.2"
# Maximum version of the tls protocol that will be negotiated. If not specified, uses the
# default settings from Go's crypto/tls package.
# max-version = "tls1.3"