ZFS Telegraf 输入插件
免费使用此 InfluxDB 集成ZFS 既是卷管理器也是文件系统。这意味着它管理硬盘和磁盘上的物理存储,也管理存储在那里的文件。它使用分层缓存来读写,以便更快地找到数据并提高性能。此插件收集 ZFS 文件系统的指标,并支持 Linux 和 FreeBSD 操作系统。
为什么使用 ZFS 的 Telegraf 插件?
ZFS Telegraf 输入插件从 ZFS 文件系统中获取指标。它让您收集诸如缓存命中和缓存未命中次数、缓存大小、内存低时的计数等统计信息。收集这些指标可以让您监视 ZFS 文件系统的状态。这使您能够了解计算机的健康状况。您可以使用 Telegraf 将数据发送到 InfluxDB 或您选择的端点,以分析随时间推移的性能,或设置当内存过低时的警报。
如何使用 Telegraf 插件监控 ZFS
如果您使用的是 Linux 机器,您可以指定您的 ZFS kstat 路径或使用默认值
kstatPath = "/proc/spl/kstat/zfs"
在 FreeBSD 机器上不需要指定路径。默认情况下,此插件收集所有 ZFS 指标,这些指标在 Linux 和 FreeBSD 系统中不同。对于 Linux,默认值为
kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"]
而对于 FreeBSD,默认值为
kstatMetrics = ["abdstats", "arcstats", "dnodestats", "dbufcachestats", "dmu_tx", "fm", "vdev_mirror_stats", "zfetchstats", "zil"]
您可以通过将 kstatMetrics 数组设置为要收集的统计信息的列表来覆盖此值。ZFS Telegraf 输入插件默认不收集 zpool 统计数据,但您可以设置
poolMetrics = true
来更改此值。它也不收集数据集统计信息,除非您设置
datasetMetrics = true
在 FreeBSD 机器上,如果您已在池属性中启用了 listsnapshots,Telegraf 可能会在此输出读取时出现问题。
用于监控的关键 ZFS 指标
您应主动监控的一些重要 ZFS 指标包括
ARC 统计(FreeBSD 和 Linux)
- arcstats_allocated(FreeBSD 仅限)
- arcstats_anon_evict_data(Linux 仅限)
- arcstats_anon_evict_metadata(Linux 仅限)
- arcstats_anon_evictable_data(FreeBSD 仅限)
- arcstats_anon_evictable_metadata(FreeBSD 仅限)
- arcstats_anon_size
- arcstats_arc_loaned_bytes(Linux 仅限)
- arcstats_arc_meta_limit
- arcstats_arc_meta_max
- arcstats_arc_meta_min(FreeBSD 仅限)
- arcstats_arc_meta_used
- arcstats_arc_no_grow(Linux 仅限)
- arcstats_arc_prune(Linux 仅限)
- arcstats_arc_tempreserve(Linux 仅限)
- arcstats_c
- arcstats_c_max
- arcstats_c_min
- arcstats_data_size
- arcstats_deleted
- arcstats_demand_data_hits
- arcstats_demand_data_misses
- arcstats_demand_hit_predictive_prefetch(FreeBSD 仅限)
- arcstats_demand_metadata_hits
- arcstats_demand_metadata_misses
- arcstats_duplicate_buffers
- arcstats_duplicate_buffers_size
- arcstats_duplicate_reads
- arcstats_evict_l2_cached
- arcstats_evict_l2_eligible
- arcstats_evict_l2_ineligible
- arcstats_evict_l2_skip(FreeBSD 仅限)
- arcstats_evict_not_enough(FreeBSD 仅限)
- arcstats_evict_skip
- arcstats_hash_chain_max
- arcstats_hash_chains
- arcstats_hash_collisions
- arcstats_hash_elements
- arcstats_hash_elements_max
- arcstats_hdr_size
- arcstats_hits
- arcstats_l2_abort_lowmem
- arcstats_l2_asize
- arcstats_l2_cdata_free_on_write
- arcstats_l2_cksum_bad
- arcstats_l2_compress_failures
- arcstats_l2_compress_successes
- arcstats_l2_compress_zeros
- arcstats_l2_evict_l1cached (仅限FreeBSD)
- arcstats_l2_evict_lock_retry
- arcstats_l2_evict_reading
- arcstats_l2_feeds
- arcstats_l2_free_on_write
- arcstats_l2_hdr_size
- arcstats_l2_hits
- arcstats_l2_io_error
- arcstats_l2_misses
- arcstats_l2_read_bytes
- arcstats_l2_rw_clash
- arcstats_l2_size
- arcstats_l2_write_buffer_bytes_scanned (仅限FreeBSD)
- arcstats_l2_write_buffer_iter (仅限FreeBSD)
- arcstats_l2_write_buffer_list_iter (仅限FreeBSD)
- arcstats_l2_write_buffer_list_null_iter (仅限FreeBSD)
- arcstats_l2_write_bytes
- arcstats_l2_write_full (仅限FreeBSD)
- arcstats_l2_write_in_l2 (仅限FreeBSD)
- arcstats_l2_write_io_in_progress (仅限FreeBSD)
- arcstats_l2_write_not_cacheable (仅限FreeBSD)
- arcstats_l2_write_passed_headroom (仅限FreeBSD)
- arcstats_l2_write_pios (仅限FreeBSD)
- arcstats_l2_write_spa_mismatch (仅限FreeBSD)
- arcstats_l2_write_trylock_fail (仅限FreeBSD)
- arcstats_l2_writes_done
- arcstats_l2_writes_error
- arcstats_l2_writes_hdr_miss (仅限Linux)
- arcstats_l2_writes_lock_retry (仅限FreeBSD)
- arcstats_l2_writes_sent
- arcstats_memory_direct_count (仅限Linux)
- arcstats_memory_indirect_count (仅限Linux)
- arcstats_memory_throttle_count
- arcstats_meta_size (仅限Linux)
- arcstats_mfu_evict_data (仅限Linux)
- arcstats_mfu_evict_metadata (仅限Linux)
- arcstats_mfu_ghost_evict_data (仅限Linux)
- arcstats_mfu_ghost_evict_metadata (仅限Linux)
- arcstats_metadata_size (仅限FreeBSD)
- arcstats_mfu_evictable_data (仅限FreeBSD)
- arcstats_mfu_evictable_metadata (仅限FreeBSD)
- arcstats_mfu_ghost_evictable_data (仅限FreeBSD)
- arcstats_mfu_ghost_evictable_metadata (仅限FreeBSD)
- arcstats_mfu_ghost_hits
- arcstats_mfu_ghost_size
- arcstats_mfu_hits
- arcstats_mfu_size
- arcstats_misses
- arcstats_mru_evict_data (仅限Linux)
- arcstats_mru_evict_metadata (仅限Linux)
- arcstats_mru_ghost_evict_data (仅限Linux)
- arcstats_mru_ghost_evict_metadata (仅限Linux)
- arcstats_mru_evictable_data (仅限FreeBSD)
- arcstats_mru_evictable_metadata (仅限FreeBSD)
- arcstats_mru_ghost_evictable_data (仅限FreeBSD)
- arcstats_mru_ghost_evictable_metadata (仅限FreeBSD)
- arcstats_mru_ghost_hits
- arcstats_mru_ghost_size
- arcstats_mru_hits
- arcstats_mru_size
- arcstats_mutex_miss
- arcstats_other_size
- arcstats_p
- arcstats_prefetch_data_hits
- arcstats_prefetch_data_misses
- arcstats_prefetch_metadata_hits
- arcstats_prefetch_metadata_misses
- arcstats_recycle_miss (仅限Linux)
- arcstats_size
- arcstats_sync_wait_for_async (仅限FreeBSD)
Zfetch 统计信息 (FreeBSD和Linux)
- zfetchstats_bogus_streams (仅限Linux)
- zfetchstats_colinear_hits (仅限Linux)
- zfetchstats_colinear_misses (仅限Linux)
- zfetchstats_hits
- zfetchstats_max_streams (仅限FreeBSD)
- zfetchstats_misses
- zfetchstats_reclaim_failures (仅限Linux)
- zfetchstats_reclaim_successes (仅限Linux)
- zfetchstats_streams_noresets (仅限Linux)
- zfetchstats_streams_resets (仅限Linux)
- zfetchstats_stride_hits (仅限Linux)
- zfetchstats_stride_misses (仅限Linux)
Vdev 缓存统计信息 (FreeBSD)
- vdev_cache_stats_delegations
- vdev_cache_stats_hits
- vdev_cache_stats_misses
池指标(可选)
在Linux上(参考:kstat 累积时间和队列长度统计)
- zfs_pool
- nread (整数,字节)
- nwritten (整数,字节)
- reads (整数,计数)
- writes (整数,计数)
- wtime (整数,纳秒)
- wlentime (整数,队列长度 * 纳秒)
- wupdate (整数,时间戳)
- rtime (整数,纳秒)
- rlentime (整数,队列长度 * 纳秒)
- rupdate (整数,时间戳)
- wcnt (整数,计数)
- rcnt (整数,计数)
对于 ZFS >= 2.1.x,格式已发生显著变化
- zfs_pool
- writes (整数,计数)
- nwritten (整数,字节)
- reads (整数,计数)
- nread (整数,字节)
- nunlinks(整数,计数)
- nunlinked(整数,计数)
在 FreeBSD 上:
- zfs_pool
- allocated(整数,字节)
- capacity(整数,字节)
- dedupratio(浮点数,比率)
- free(整数,字节)
- size(整数,字节)
- fragmentation(整数,百分比)
数据集指标(可选,仅限 FreeBSD)
- zfs_dataset
- avail(整数,字节)
- used(整数,字节)
- usedsnap(整数,字节)
- usedds(整数,字节)
标签
- ZFS 统计信息(
zfs
)将具有以下标签- pools - 机器上所有 ZFS 池的 :: 连接列表。
- datasets - 机器上所有 ZFS 数据集的 :: 连接列表。
- 池指标(
zfs_pool
)将具有以下标签- pool - 指标所属池的名称。
- health - 池的健康状态。 (仅限 FreeBSD)
- dataset - 仅限 ZFS >= 2.1.x。 (仅限 Linux)
- 数据集指标(
zfs_dataset
)将具有以下标签- dataset - 指标所属数据集的名称。