centos7中安装influxDB

  • 中文参考手册: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"