InfluxDB中的CollectD协议支持
此页面记录了 InfluxDB OSS 的早期版本。InfluxDB OSS v2 是最新的稳定版本。请参阅 InfluxDB v2 文档。
collectd 输入允许 InfluxDB 接受以 collectd 原生格式传输的数据。此数据通过 UDP 传输。
关于UDP/IP缓冲区大小的说明
如果您正在运行Linux或FreeBSD,请调整您的操作系统UDP缓冲区大小限制,see here for more details.
配置
每个 collectd 输入允许设置绑定地址、目标数据库和目标保留策略。如果数据库不存在,它将在输入初始化时自动创建。如果未配置保留策略,则使用数据库的默认保留策略。但是,如果设置了保留策略,则必须显式创建保留策略。输入将不会自动创建它。
每个collectd输入也会对接收到的点进行内部批处理,因为对数据库的批量写入更高效。默认的批量大小为1000,挂起批处理因子为5,批处理超时为1秒。这意味着输入将以最大大小1000的批次写入,但如果在第一点添加到批处理后的1秒内,批次尚未达到1000个点,它将无论大小如何发出该批次。挂起批处理因子控制一次可以在内存中存储多少个批次,允许输入传输一个批次,同时仍然构建其他批次。
多值插件可以通过两种方式处理。将 parse-multivalue-plugin 设置为 “split” 将解析并存储多值插件数据(例如,df free:5000,used:1000)为 отдельные измерения(例如,(df_free, value=5000) (df_used, value=1000)),而 “join” 将解析并存储多值插件作为单个多值测量(例如,(df, free=5000,used=1000))。 “split” 是为了与以前版本的 influxdb 兼容而默认的行为。
收集d类型数据库文件的路径也可以设置。
大型UDP数据包
请注意,超出标准大小1452的UDP数据包在接收时会被丢弃。请确保在collectd配置中将MaxPacketSize设置为1452。
配置示例
[[collectd]]
enabled = true
bind-address = ":25826" # the bind address
database = "collectd" # Name of the database that will be written to
retention-policy = ""
batch-size = 5000 # will flush if this many points get buffered
batch-pending = 10 # number of batches that may be pending in memory
batch-timeout = "10s"
read-buffer = 0 # UDP read buffer size, 0 means to use OS default
typesdb = "/usr/share/collectd/types.db"
security-level = "none" # "none", "sign", or "encrypt"
auth-file = "/etc/collectd/auth_file"
parse-multivalue-plugin = "split" # "split" or "join"
来自 README 在 GitHub 上的内容。