Skip to content

Instantly share code, notes, and snippets.

@DaikiSuganuma
Last active September 1, 2025 01:29
Show Gist options
  • Save DaikiSuganuma/8acddf5d47a0da8c69ce83e8d6e5aef6 to your computer and use it in GitHub Desktop.
Save DaikiSuganuma/8acddf5d47a0da8c69ce83e8d6e5aef6 to your computer and use it in GitHub Desktop.
環境: FreeBSD 14.3-RELEASE-p2, Generated by Gemini 2.5 Pro
# /usr/local/etc/collectd.conf
# collectdデーモン設定ファイル
#
# この設定ファイルは、collectd5-5.12.0_23のRRDTOOLオプションのみを有効にしたビルドに基づいています。
#
# collectdの詳細な情報については、公式ドキュメントを参照してください:
# https://collectd.org/documentation.shtml
# ----------------------------------------------------------------------------
# グローバル設定 (Global Settings)
# ----------------------------------------------------------------------------
# Hostname: データを記録するホスト名
# デフォルトではシステムのホスト名が使用されます。
# RRDtoolのデータ保存ディレクトリ名にも影響します。
# 例: /var/db/collectd/rrd/<Hostname>/
# Hostname "localhost"
# Hostname "vm-dev3"
# FQDNLookup: ホスト名を完全修飾ドメイン名(FQDN)で解決するかどうか
# Hostnameで短縮名を使用し、DNSでFQDNを引かせたい場合に 'true' に設定します。
FQDNLookup false
# Interval: データ収集の間隔(秒)
# これを短くするとより詳細なデータが収集されますが、システム負荷とディスクIOが増加します。
# RRDtoolのRRA定義も考慮して設定してください。
Interval 10
# ReadThreads: データ収集に使用するスレッド数
# 複数のプラグインで同時にデータを収集する際に有効です。
# コア数に合わせて調整すると良いでしょう。
# ReadThreads 5
# PluginDir: プラグインのロードパス
# ここに指定されたディレクトリから collectd がプラグインを読み込みます。
PluginDir "/usr/local/lib/collectd"
# TypesDB: タイプ定義ファイル
# 収集するメトリクスの種類 (例: counter, gauge) と単位を定義します。
# collectdに付属のデフォルトファイルを使用します。
TypesDB "/usr/local/share/collectd/types.db"
# ----------------------------------------------------------------------------
# ログ出力プラグイン (Logging Plugin)
# ----------------------------------------------------------------------------
# collectd自体のログメッセージを出力するためのプラグイン。
# syslogプラグインは、syslogデーモンを通じてログを出力します。
LoadPlugin syslog
<Plugin syslog>
LogLevel info # ログレベル: debug, info, notice, warning, err, crit, alert, emerg
</Plugin>
# ----------------------------------------------------------------------------
# データ収集プラグイン (Input Plugins)
#
# pkg info collectd5 の出力に基づき、有効なプラグインは
# CPU, DF, INTERFACE, LOAD, MEMORY のみです。
# ----------------------------------------------------------------------------
# CPUプラグイン: CPU使用率を収集します。
LoadPlugin cpu
<Plugin cpu>
ReportByState true # CPUの状態 (user, system, idleなど) 別にレポート
ReportByCpu true # 各CPUコア別にレポート (マルチコアCPUの場合)
ValuesPercentage true # 値をパーセンテージで表示
</Plugin>
# DFプラグイン: ディスクの空き容量を収集します。
# 指定したファイルシステムまたはデバイスのみを監視できます。
LoadPlugin df
<Plugin df>
# ZFSプール全体を代表して、ルートファイルシステムを監視します。
# 'df -hT' の 'Filesystem' カラムの値を使用します。
Device "zroot/ROOT/default"
FSType "zfs"
# IgnoreSelected false: 上で指定したデバイスのみを監視し、
# 他の冗長なZFSデータセットや仮想ファイルシステムをすべて無視します。
# この設定が非常に重要です。
IgnoreSelected false
</Plugin>
# INTERFACEプラグイン: ネットワークインターフェースのトラフィックを収集します。
LoadPlugin interface
<Plugin interface>
Interface "em0" # 監視したいネットワークインターフェースを指定
#Interface "lo0" # ループバックインターフェースを監視する場合
IgnoreSelected false # 上で指定したインターフェースのみ監視し、その他を無視する
</Plugin>
# LOADプラグイン: システムのロードアベレージ (負荷平均) を収集します。
LoadPlugin load
<Plugin load>
# 特に設定は不要ですが、必要に応じて間隔などを調整できます。
</Plugin>
# MEMORYプラグイン: メモリ使用量を収集します。
LoadPlugin memory
<Plugin memory>
# 特に設定は不要です。
</Plugin>
# ----------------------------------------------------------------------------
# データ書き込みプラグイン (Output Plugins)
#
# pkg info collectd5 の出力に基づき、RRDTOOL のみが有効です。
# ----------------------------------------------------------------------------
# RRDtoolプラグイン: RRDtool形式でデータを保存します。
# このプラグインが、収集したデータをディスク上の.rrdファイルに書き込みます。
LoadPlugin rrdtool
<Plugin rrdtool>
# DataDir: RRDファイルを保存するルートディレクトリ。
# この下に Hostname のサブディレクトリが作成され、その下に各プラグインのデータが保存されます。
DataDir "/var/db/collectd/rrd"
# CacheTimeout: キャッシュされたデータをRRDファイルに書き込むまでの最大時間(秒)。
# 短くするとリアルタイム性が増しますが、ディスクIOが増えます。
CacheTimeout 120
# CacheFlush: キャッシュされたデータをRRDファイルに書き込むまでの最大回数。
# CacheTimeout と組み合わせて、データ書き込み頻度を調整します。
CacheFlush 900
# RRAS (Round Robin Archives) の定義ブロック
# ここでデータの粒度と保存期間を定義します。
<RRAS>
# 形式: RRA "CF" "XFF" "steps" "rows"
# CF: Consolidation Function (AVERAGE, MIN, MAX, LAST)
# XFF: XFiles Factor (UNKNOWNとして扱うデータの割合)
# steps: 元データを何ステップ分まとめて1つのデータポイントにするか
# rows: そのデータポイントを何個保持するか
#
# Intervalが10秒の場合の例:
# 10秒間隔の生データに近いものを約2日分
RRA "AVERAGE" "0.5" "1" "17280"
# 1分間隔の平均値を約10日分
RRA "AVERAGE" "0.5" "6" "14400"
# 10分間隔の平均値を約40日分
RRA "AVERAGE" "0.5" "60" "5760"
# 1時間間隔の平均値を約1年分
RRA "AVERAGE" "0.5" "360" "8760"
# 10分間隔の最大値を約40日分
RRA "MAX" "0.5" "60" "5760"
</RRAS>
</Plugin>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment