web-dev-qa-db-ja.com

SNMPを使用してFreeNASとpfSenseがより多く報告できるようにするにはどうすればよいですか?

FreeBSDのバリアントを実行する2つのサーバーがあります。1つはpfSenseルーターで、もう1つはFreeNAS 8サーバーです。これらのサーバーは両方ともSNMPを実行しており、3番目のCactiサーバーを使用して情報を収集してグラフ化しています。

PfSenseサーバーとFreeNASサーバーの両方からのSNMPデータには、メモリ使用量、CPU使用量、負荷平均は含まれません。

PfSenseサーバーのトラフィックグラフは正常に見えます。 FreeNASサーバーからのディスク使用レポートは美しく見えます。メモリ使用量、CPU使用量、負荷平均のデータを取得できません。 pfSenseとfreeNASのWeb管理者ではグラフを表示できるため、これらのサーバーの両方がこのデータを提供できるはずです。ただし、管理を容易にするために、すべてのグラフをCactiに含めることをお勧めします。

PfSenseサーバーに、SNMPを介してメモリ使用量、CPU使用量、および平均負荷データを提供させるにはどうすればよいですか? FreeNASサーバーに、SNMPを介してメモリ使用量、CPU使用量、および負荷平均データを提供するにはどうすればよいですか?同じ手順が両方のサーバーで機能すると思います。

10
Josh

これについて多くの調査をした後、私は問題が何であったかを発見しました。 pfSenseとFreeNASはどちらも FreeBSD begemot SNMPデーモン(bsnmpd) を通じてSNMPサポートを提供します。メモリ使用量、CPU使用量、および負荷平均情報を提供するには、begemot SNMPデーモンに追加のモジュールsnmp_ucd.soをロードする必要があります。

私は 次のフォーラムスレッドsnmp_ucd.soの読み込みについて説明しましたが、2つのシステムにはありませんでした。

これを解決するために、仮想マシンを作成し、それにFreeBSD 8.3をインストールしました。この仮想マシン内で、FreeBSD Portsシステムを使用して、必要なsnmp_ucd.soライブラリをダウンロードおよびビルドしました。

cd /usr/ports/net-mgmt/bsnmp-ucd
make all install clean 
cd /usr/ports/net-mgmt/bsnmptools
make all install clean

その後、scpを使用してFreeBSD仮想マシンから/usr/local/lib/snmp_ucd.soをpfSenseサーバーとFreeNASサーバーの両方にコピーしました。

次に、FreeNAS GUIを使用して、次の補助パラメーターを追加しました。

begemotSnmpdModulePath."ucd" = "/mnt/Garrison/jail/usr/local/lib/snmp_ucd.so"

Screencap of FreeNAS

これにより、FreeNASサーバーの/etc/snmpd.configに自動的に行が追加され、グラフを取得できました!

PfSenseサーバーは、GUIを使用して変更を適用することができず、pfSenseスクリプトが自動的に/etc/snmpd.configを再構築して私の変更を上書きするため、よりトリッキーでした。 pfSenseを機能させるには、/etc/inc/services.incを編集する必要がありました。読んだ行の前:

fwrite($fd, $snmpdconf);

以下を追加しました:

    //Josh Additions: Make load avg and CPU usage work:
    $snmpdconf .= <<<EOD
# Josh additions:
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"



EOD;

次に、SNMPを無効にして再度有効にすると、変更が適用され、CPU使用率のグラフが機能するようになります。その変更は、ほぼ間違いなくpfSenseのアップグレード後は保持されませんが、変更を適用するためのより簡単で安定した方法を見つけることができませんでした。

11
Josh