cfgmaker - クラウドでオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド cfgmaker です。

プログラム:

NAME


cfgmaker - mrtg.cfg ファイルを作成します (mrtg-2.17.4 用)

SYNOPSIS


cfgmaker [オプション] [コミュニティ@]ルーター[[オプション] [コミュニティ@]ルーター...]

OPTIONS


--ifref=インターフェイス名によるインターフェイス参照の名前 (デフォルト)
--ifref=ip ... IP アドレスによる
--ifref=eth ... イーサネット番号による
--ifref=descr ... インターフェイスの説明による
--ifref=nr ... インターフェイス番号別
--ifref=type ... インターフェイス タイプ別
コンマで区切られた複数のオプションを使用することもできます。
この場合、最初に使用可能なものが使用されます。
例 --ifref=ip,name,nr

--ifdesc=nr インターフェイスの説明には、インターフェイス番号を使用します (デフォルト)
--ifdesc=ip ... IP アドレスを使用
--ifdesc=eth ... イーサネット番号を使用
--ifdesc=descr ... インターフェイスの説明を使用
--ifdesc=name ... インターフェイス名を使用
--ifdesc=catname ... CatOS インターフェイス名を使用
--ifdesc=ppname ... パスポートのポート名を使用
--ifdesc=alias ... インターフェイスエイリアスを使用
--ifdesc=type ... インターフェイス タイプを使用
コンマで区切られた複数のオプションを使用することもできます。
この場合、最初に使用可能なものが使用されます。
例 --ifdesc=catname,ppname,descr,alias,ip,name,nr

--if-filter=f フィルター f に対してすべてのインターフェースをテストして、
または、そのインターフェイスをコレクションに含めません。
現在 f は Perl 式として評価されています
その真理値は、拒否または受け入れに使用されます
インタフェース。
(実験的、開発中、変更される可能性があります)

--if-template=テンプレートファイル
インターフェイスの通常のターゲット エントリを置き換えます
ファイルの内容で指定されたエントリを使用
テンプレートファイル。 ファイルにはPerlが含まれているはずです
の行を生成するために実行されるコード
構成ファイルのターゲット。
(実験的、開発中、変更される可能性があります)

--host-template=テンプレートファイル
ホストのインターフェースのターゲットを作成することに加えて
指定されたホスト自体のターゲットも作成します
ファイル templatefile の内容によって。 ファイルは
生成するために実行されるPerlコードが含まれているはずです
ホスト関連のターゲット (CPU、
ping 応答時間測定など) 構成で
化ファイル。
(実験的、開発中、変更される可能性があります)

--global "x: a" グローバル設定エントリを追加

--no-down インターフェイスの admin または opr ステータスを確認しません

--show-op-down 機能的にダウンしているインターフェースを表示

--zero-speed=spd インターフェイスとしてこの速度をビット/秒で使用します
速度 0 を返すすべてのインターフェイスの速度
ifSpeed/ifHighSpeed 経由。 100Mbps = 100000000

--subdirs=format 各ルーターに独自のサブディレクトリを与え、それぞれに名前を付けます
HOSTNAME と SNMPNAME が含まれる「フォーマット」
それらの項目の値に置き換えられます。たとえば、
--subdirs=HOSTNAME または --subdirs="HOSTNAME (SNMPNAME)"

--noreversedns は、IP 番号を逆引きしません。

--community=cmty デフォルトのコミュニティ文字列を「cmty」に設定します。
"公衆"。

--enable-ipv6 必要なライブラリが存在する場合、IPv6 サポートを有効にします。
現在。 数値の IPv6 アドレスを囲む必要があります
角括弧で囲みます。例: public@[2001:760:4::1]:161

--use-16bit 16 ビットの SNMP リクエスト ID を使用して、すべてのルーターを照会します。

--snmp-options=:[ ][:[ ][:[ ][:[ ][: ]]]]

すべてに追加するデフォルトの SNMP オプションを指定します。
以下のルーター。 個々のフィールドは空にすることができます。
以下のルーターは、一部またはすべてをオーバーライドする可能性があります。
--snmp-options に指定されたオプション。

--dns-domain=ドメイン
すべての名前に追加するドメインを指定します
以下のルーター。

--nointerfaces インターフェイスの設定行を生成しません。
インターフェイス情報を収集するステップをスキップし、
インターフェイス テンプレート コードを実行しないでください。

--interfaces インターフェイスの構成行を生成します (これは
デフォルト)。 このオプションの主な目的は否定することです
--nointerfaces コマンド ラインの前に表示されます。

-ヘルプの簡単なヘルプメッセージ
--manの完全なドキュメント
--version cfgmaker のバージョンを出力します

--output=file 出力ファイル名のデフォルトは STDOUT です

DESCRIPTION


構成メーカー ルーターから取得した情報に基づいて MRTG 構成ファイルを作成するか、
別の SNMP 管理可能デバイス。

[コミュニティ@]ルータ

コミュニティ 構成を作成するデバイスのコミュニティ名です。 もしも
指定されていない場合、デフォルトは '公共'; そうでない場合は、最初にこれを試してみてください。
デバイスのコミュニティ名を知っている。 間違ったコミュニティ名を使用すると、
デバイスから応答がありません。

ルータ SNMP で管理可能なデバイスの DNS 名または IP 番号です。 名前に続いて
さらに 6 つのオプションをコロンで区切って指定できます。 完全な構文は次のようになります。

ルータ[:[Prt][:[トムウト][:[retr][:[バックオフ] [:]]]]]]

特に興味深いのは、最後のパラメータです。 . これを「2」に設定すると、
デバイスは、SNMP バージョン 2 要求で照会されます。 これにより、64ビットをポーリングできます
デバイス内のトラフィック カウンタがサポートされているため、高速インターフェイスでより適切に機能します (no
より多くのカウンター オーバーラン)。 ルータが指定されている順序に注意してください。
構成ファイルが生成されるときに同じ順序が使用されるため、コマンドラインは重要ではありません。
最初に指定されたルーターには、最初に生成された構成行があり、その後に
次のルーターに属する回線など。

生成された cfg ファイルの最初の行には、すべてのコマンドラインが含まれることに注意してください。
生成に使用したオプション。 これは、万が一の場合に簡単に「再生成」できるようにするためです。
新しいホストを追加するか、その他のグローバルな変更を行います。

 
を除いて - 出力 および - グローバル オプション、すべてのオプションはルーターのみに影響します
コマンドラインでそれらに従います。 コマンドラインで先に指定したオプションが
後で別の値を使用してコマンド ラインに再表示されると、新しい値が古い値を上書きします。
残りのルーターに関する限り、値。 このようにして、オプションを調整することができます
ルーターのグループまたは個々のルーターに対して。

見る - 出力 および - グローバル 彼らの行動がどこで、何回によってどのように影響を受けるかについて
それらはコマンドラインに表示されます。

ジョブの設定方法については、 複数のルーターに対して異なるオプションを設定する方法については、以下を参照してください。

- 助けて
簡単なヘルプメッセージを印刷して終了します。

- 男
マニュアルページを印刷して終了します。

- バージョン
cfgmaker のバージョンを出力します。 これは、設定を行う MRTG のバージョンと一致する必要があります。
ファイルが作成されています。

--ifref nr|ip|エスト|説明|
インターフェイスの識別方法を選択します。 デフォルトは nr ルーターを識別する
番号でインターフェイスを指定します。 残念ながら、SNMP のインターフェイス番号付け方式は
ツリーは変更できます。 一部のルーターは、新しいインターフェイスが追加されたときに番号付けを変更します。
楽しみのために満月ごとに番号を変える人もいます。

この悲しい問題を回避するために、MRTG は 4 つの他のプロパティによってインターフェイスを識別できます。
これらのどれもすべてのインターフェースで機能するわけではありませんが、機能するものを見つけることができるはずです
大丈夫です。 特にイーサネット アドレスは問題になる可能性があることに注意してください。
ルーターは、ほとんどのインターフェイス カードで同じイーサネット アドレスを持っています。

選択 ip インターフェイスを IP 番号で識別します。 使用する エスト イーサネットを使用するには
識別のためのアドレス。 使用する 説明 インターフェイスの説明を使用します。 または使用 〜へ
インターフェイス名を使用します。

必要に応じて、コンマで区切って複数のプロパティを指定できます。 この場合、
cfgmaker は、一意の識別を提供できるリストの最初の項目を使用します。
これにより、たとえば、IP アドレスを使用するように指定したり、この場合に ifName を使用したりすることができます。
定義されていません:
--ifref IP、名前

選択した方法でデバイス上で一意のインターフェイスを識別できない場合は、
クエリを実行している、 cfgメーカー それについてお話します。

--ifdesc nr|ip|エスト|説明||type|alias
インターフェイスの説明として何を使用するかを選択します。 説明は
ターゲットの "Title[]" プロパティと HTML コードのテキスト ヘッダー
ターゲットの「PageTop[]」で定義されています。 デフォルトは使用することです nr これは単なるインターフェースです
これは、グラフの閲覧者にとって常に役立つとは限りません。

他に使用できるプロパティが 6 つあります。 使用する ip を使用したい場合は、
インターフェイスの IP アドレス。 使用する エスト インターフェイスのイーサネット アドレスを使用する場合。
より良い説明が必要な場合は、次のいずれかを使用できます 説明, or alias。 丁度
これらのそれぞれの機能は機器によって異なるため、必要になる場合があります
実験。 たとえば、IOS を実行している Cisco ルータのシリアル インターフェイスの場合、
「S0」がインターフェイスの説明になる可能性があります。 説明 結果として生じる可能性があります
「シリアル0」と alias 「HQ へのリンク」になる可能性があります (それが
ルーターの設定におけるインターフェイスの「説明」)。

最後に、インターフェイスを Btype (つまり、「ethernetCSMA」、
「propPointtoPoint」など)使用できます type.

必要に応じて、コンマで区切って複数のプロパティを指定できます。 この場合、
cfgmaker は、このインターフェイスで使用できるリストの最初の項目を使用します。
これにより、たとえば、さまざまなエイリアスのいずれかを順番に使用するように指定できます
好みの。

--if-フィルター 'フィルター式'
まず第一に、これは開発中であり、実験的なものです。

どのインターフェイスが含まれるかをより適切に制御したい場合は、これを使用してください
構成。 の フィルター式 Perl コードの一部として評価され、
真理値を返すことが期待されます。 true の場合はインターフェイスを含め、false の場合は、
インターフェイスを除外します。

これらのフィルタがどのように機能するかについての詳細は、セクション「詳細」を参照してください。
フィルタ」を以下に示します。

--if-テンプレート テンプレートファイル
まず第一に、これは開発中であり、実験的なものです。

各ターゲットの行が
構成ファイル。 ファイルの内容 テンプレートファイル として評価されます。
入力と出力に特定の変数を使用して行を生成する Perl プログラム。

これらのテンプレートがどのように機能するかについての詳細は、セクション「詳細」を参照してください。
以下の「テンプレート」。

--ホスト テンプレート テンプレートファイル
まず第一に、これは開発中であり、実験的なものです。

CPU などのホスト自体に関連する追加のターゲットが必要な場合は、これを使用します。
使用率、ホストへの ping 応答時間、使用中のモデムの数など。
ファイルの テンプレートファイル Perl プログラムとしてホストごとに XNUMX 回評価されます。
入力と出力に特定の変数を使用して行を生成します。

これらのテンプレートがどのように機能するかについての詳細は、セクション「詳細」を参照してください。
テンプレート」を以下に示します。

- コミュニティ コミュニティ ストリング
これを使用して、コマンド ラインで次のようにルーターのコミュニティを設定します。
コミュニティ ストリング. 個々のルーターは、
構文 コミュニティー@ルーター.

--enable-ipv6
このオプションは、IPv6 サポートを有効にします。 適切な perl モジュールが必要です。 もし彼らが
が見つからない場合、IPv6 は無効になります (ipv6 のドキュメントを参照してください)。

cfgmaker は、ターゲットに応じて IPv6 または IPv4 を使用します。 対象が数値の場合
アドレス、プロトコルはアドレスのタイプによって異なります。 ターゲットがホスト名の場合、
cfgmaker は、最初に名前を IPv6 アドレスに解決し、次に IPv4 アドレスに解決しようとします。
住所。

角かっこの間に IPv6 数値アドレスを指定する必要があります。

例:

cfgmaker --enable-ipv6 [2001:760:4::1]:165:::2

ターゲットに同じホスト名を持つ IPv6 アドレスと IPv4 アドレスの両方がある場合、
cfgmaker は最初に IPv6 を使用してターゲットにクエリを実行し、失敗した場合は IPv4 にフォールバックします。 これ
SNMP over IPv6 をサポートしていないターゲットに役立ちます。

--use-16ビット
このオプションは、16 ビット SNMP 要求 ID の使用を強制します。 一部の壊れた SNMP エージェントは
32 ビットのリクエスト ID を受け入れます。 このオプションをできるだけ避けるようにしてください。
代わりにエージェントベンダー。

--snmp オプション :[ポート][:[タイムアウト][:[再試行][:[バックオフ] [:バージョン]]]]
これを使用して、コマンドに続くすべてのルーターのデフォルトの SNMP オプションを設定します
ライン。 個々の値は、末尾のコロンと同様に省略される場合があります。 ご了承ください
ルーターは、によって指定された個々の (またはすべての) 値をオーバーライドする可能性があります。 --snmp オプション 使用して、
構文

ルータ[:[ポート][:[タイムアウト][:[再試行][:[バックオフ] [:バージョン]]]]]]

- グローバル "ブラ: ABC"
これを使用して、生成された構成ファイルにグローバル オプションを追加します。 あなたは呼び出すことができます - グローバル
複数のオプションを追加するには、数回。 行は構成に表示されます
コマンドラインに表示される次のルーターの構成の前。

--global "workdir: /home/mrtg"

デフォルトのオプションが必要な場合は、入れたいと思うかもしれません

--global "options[_]: growright,bits"

指定 - グローバル コマンドラインの最後のルーターが行を作成した後
すべてのルーターの後に表示される構成ファイル。

--noreversedns
IP 番号を逆引きしようとしないでください... DNS のない環境では必須です。

--ノーダウン
通常、cfgmaker は、何もマークされていないインターフェイスを含めません。
管理上および運用上UP。 このスイッチを使用すると、それらすべてを取得できます。

--ショーオプダウン
運用上ダウンしているインターフェイスを含めます。

--ゼロスピード スピード
ifSpeed および
ifHighSpeed. 一部のスイッチ、特にファウンドリー機器は、速度ゼロを返します。
いくつかのインターフェース。 たとえば、ゼロを報告するすべてのインターフェイスを 100Mbps に設定するには、
--zero-speed=100000000 を使用します。

--サブディレクトリ 形式でアーカイブしたプロジェクトを保存します.
各ルーターに、HTML およびグラフィック (または .rrd) ファイル用の独自のサブディレクトリを与えます。 の
ディレクトリ名は与えられたものです 形式でアーカイブしたプロジェクトを保存します. いくつかのパターン置換を含む文字列。 の
文字列「HOSTNAME」は、ルーターのホスト名に置き換えられます (ただし、
上で指定した cfgメーカー コマンドライン -- 実際のホスト名または単なる IP の場合があります
アドレス)、および「SNMPNAME」は、デバイス自体の名前の考えに置き換えられます (
「タイトル」行の右側に表示される名前と同じ)。 たとえば、通話
以下のように:

cfgmaker --subdirs=ホスト名__SNMP名 一般@10.10.0.18

次のような行が生成されます。

Directory[10.10.0.18_1]: 10.10.0.18__fp2200-bothrip-1.3

- 出力 file
からの出力を書き込みます cfgメーカー ファイルに file. デフォルトでは、「STDOUT」を使用します。
- 出力 は、コマンド ラインで XNUMX 回だけ表示されると想定されています。 複数回ご利用の場合、
最後に指定されたファイル - 出力 使用されます。

--インターフェースなし
インターフェイスの構成行を生成しません。

これにより、cfgmaker はインターフェースに関連するすべてのステップをスキップします。
高速化するインターフェイス情報を取得するためのルーターのポーリング
cfgmaker を実行しても、インターフェイス テンプレートは実行されません。

-インターフェイス
これにより、cfgmaker はインターフェイスの構成行を生成します (デフォルト
行動)。

このオプションの主な使用法は、最初に表示された --nointerfaces を無効にすることです。
コマンドライン。

SNMP V3 オプション
構成メーカー を使用して SNMP V3 をサポートします。 ネット:SNMP パールモジュール。 オプションのパラメータがあります
SNMP 操作に影響します。

--enablesnmpv3 {はい|いいえ}
  --enablesnmpv3 オプションは、存在をチェックするためのオプションのフラグです。
ネット::SNMP ライブラリ。 構成メーカー このフラグが必要かどうかを判断しようとし、
自動的に値を設定します。

SNMPv3 Arguments

SNMP コンテキストは、SNMP エンティティによってアクセス可能な管理情報のコレクションです。 アン
管理情報の項目は、複数のコンテキストおよび SNMP エンティティに存在する場合があります
多くのコンテキストにアクセスできる可能性があります。 contextEngineID と
contextName は、管理ドメイン内のコンテキストを明確に識別します。 で
SNMPv3 メッセージ、contextEngineID および contextName は、scopedPDU の一部として含まれています。
SNMP メッセージを生成するすべてのメソッドは、オプションで --contextengineid および
--コンテキスト名 これらのフィールドを構成するための引数。

コンテキストエンジンID
  --contextengineid 引数は、目的の
コンテキストエンジン ID。 文字列は 10 ~ 64 文字 (5 ~ 32 オクテット) の長さである必要があり、
オプションの「0x」を前に付けます。 一度 --contextengineid 指定されたまま
オブジェクトが再度変更されるか、
未定義の値。 デフォルトでは、contextEngineID は
権限のある SNMP エンジンの authoritativeEngineID。

コンテキスト名
contextName は、長さが 0 ~ 32 オクテットの文字列として渡されます。
--コンテキスト名 口論。 contextName は、オブジェクトが変更されるまで保持されます。
contextName のデフォルトは、「デフォルト」コンテキストを表す空の文字列です。

ユーザーベース セキュリティ モデル Arguments

SNMPv3 で使用されるユーザーベースのセキュリティ モデル (USM) では、securityName が
を使用して指定 -ユーザー名 口論。 を使用した Net::SNMP オブジェクトの作成
SNMPv3 に設定されたバージョンは失敗します。 -ユーザー名 引数が存在しません。 の -ユーザー名
引数には、長さが 1 ~ 32 オクテットの文字列が必要です。

ユーザーベースのセキュリティ モデルでは、さまざまなレベルのセキュリティが許可されています。
認証とプライバシーの問題。 SNMPv3 ターゲットはセキュリティ レベルを取得します
(securityLevel) は、次の引数のどれが指定されているかに基づいています。

デフォルトでは、「noAuthNoPriv」の securityLevel が想定されます。 もし - 認証キー or
--認証パスワード 引数が指定されている場合、securityLevel は「authNoPriv」になります。 の
--認証パスワード 引数には、少なくとも 1 オクテットの長さの文字列が必要です。 オプションで、
  - 認証キー プレーン テキストのパスワードを使用する必要がないように、引数を使用できます。
スクリプトで指定します。 の - 認証キー 引数は、によって生成された XNUMX 進文字列を期待します
特定の宛先の権限のあるエンジン ID を使用してパスワードをローカライズする
デバイス。 Net::SNMP ディストリビューションに含まれる「snmpkey」ユーティリティを使用して、
XNUMX 進文字列を作成します (snmpkey を参照)。

3 つの異なるハッシュ アルゴリズムが SNMPvXNUMX で定義されており、セキュリティで使用できます。
認証用モデル。 これらのアルゴリズムは、HMAC-MD5-96 "MD5" (RFC 1321) および
HMAC-SHA-96 "SHA-1" (NIST FIPS PUB 180-1)。 モジュールが使用するデフォルトのアルゴリズムは次のとおりです。
HMAC-MD5-96。 この動作は、 --認証プロトコル 口論。 これ
引数は、ハッシュを変更するために文字列「md5」または「sha」のいずれかが渡されることを期待しています
アルゴリズム。

引数を指定して --privkey or --privpassword 関連付けられた securityLevel
オブジェクトは「authPriv」になります。 SNMPv3 によると、プライバシーには次の使用が必要です。
認証。 したがって、これら XNUMX つの引数のいずれかが存在し、 - 認証キー
or --認証パスワード 引数がない場合、オブジェクトの作成は失敗します。 の --privkey
および --privpassword 引数は、 - 認証キー および --認証パスワード
それぞれ引数。

RFC 3414 で説明されているユーザーベースのセキュリティ モデルは、単一の暗号化プロトコルを定義します
プライバシーのために使用します。 このプロトコル、CBC-DES "DES" (NIST FIPS PUB 46-1) は、
デフォルトまたは文字列「des」が --priv プロトコル 口論。 と連携することで
拡張セキュリティ オプション コンソーシアム http://www.snmp.com/eso/、モジュールも
ドラフト仕様で定義されている追加のプロトコルをサポートします。 ドラフト
http://www.snmp.com/eso/draft-reeder-snmpv3-usm-3desede-00.txt のサポートを定義します
CBC-3DES-EDE 「トリプル DES」 (NIST FIPS 46-3) ユーザーベースのセキュリティ モデル。 これ
プロトコルは、 --priv プロトコル 文字列「3desede」の引数。 の
ドラフト http://www.snmp.com/eso/draft-blumenthal-aes-usm-04.txt の使用法を説明します
USM の CFB128-AES-128/192/256 "AES" (NIST FIPS PUB 197)。 XNUMX つの AES 暗号化
キーサイズによって区別されるプロトコルは、「aescfb128」を渡すことで選択できます。
「aescfb192」または「aescfb256」を -priv プロトコル 引数。

詳細 on フィルタ
フィルターの目的は、どのインターフェースを受け入れるか、どのインターフェースを受け入れるかを決定することです。
拒絶。 この決定は、フィルター式を
Perl コードの断片を調べ、評価の結果を調査します。 本当なら受け入れる
それ以外の場合は拒否します。

フィルターを操作するときは、Perl には何が真で何が偽かという独自の考えがあることを覚えておいてください。
は。 空の文字列 "" と文字列 "0" は false で、他のすべての文字列は true です。 これ
さらに、任意の undef 値と同様に、0 の任意の整数値が false であることを意味します。 また
すべての参照が true と見なされることを意味します。

フィルターは Perl 式として評価されるため、Perl のいくつかの便利な構造は次のとおりです。
言及する価値があります:

式は、括弧「()」を使用してグループ化できます。 表現は組み合わせることができます
次のようなブール演算子を使用します。

"および" (" と同等&&")
XNUMX つの式のブール "and" は、両方の式が true の場合にのみ true になります。
例: 式1 および 式2

"or" (" と同等||")
XNUMX つの式のブール値 "or" は、どちらかまたは両方の式が true の場合に true になります。
例: 式1 or 式2

" " (" と同等!")
単一の式のブール否定。 例: 表現 。 さらにもう一つ
例: !表現

(これに関する詳細については、Perl に関する本をお勧めします)

事前定義済み フィルタ Variables

簡単にするために、フィルタで使用できる定義済みの値が多数用意されています。
これらの変数は、テンプレート インターフェイスが評価されるときにも使用できることに注意してください (ただし、
ホスト テンプレートではありません)。

警告: これらすべての変数の名前は、構文上のドル記号 ($) で始まります。
Perl でのスカラー変数の要件。 ここでの危険は、ドル記号が多くの場合
shells はアクティブな文字です (Perl とまったく同じようにシェル変数によく使用されます)
変数) したがって、Perl 式が変数によって評価されないようにすることが重要です。
コマンドラインとしてcfgmakerに渡される前のシェルコードとしてのコマンドラインシェル
引数。 Bourne シェル、ksh シェル、bash シェルなどのシェルでは、
単一のクォート内の式は、そのような偶発的な評価を回避します:

'--if-filter=($default_iftype && $if_admin)'

$if_type
これは、SNMP 標準に従ってインターフェイス タイプを指定する整数です。
ポーリングされたデバイスによって報告されます。 インターフェイス タイプの完全なリストは次のようになります。
このドキュメントでは実用的ではありませんが、以下に定義済みの変数がいくつかあります。
通常、cfgmaker はターゲットの PageTop にこの iftype 値を括弧内に挿入します。
インターフェイス タイプの名前の後に。 (例: "propPointToPointSerial (22)")。

最も一般的なインターフェイス タイプのリストを番号別に次に示します。

6 イーサネットCsmacd
7 iso88023Csmacd
9 iso88025トークンリング
15FDDI
19 E1
20 ベーシックISDN
21 プライマリISDN
22 propPointToPointSerial
23 PPP
24 ソフトウェアループバック
30DS3
32フレームリレー
33 RS232
37気圧
39 ソネット
44 フレームリレーサービス
46hssi
49 アール5
53 プロップバーチャル
62 ファスト イーサネット (100BaseT)
63 ISDN & X.25
69 全二重ファースト イーサネット (100BaseFX)
94 非対称デジタル加入者ループ (ADSL)
117ギガビットイーサネット
134 ATM サブ インターフェイス

$デフォルト
cfgmaker が通常、
インターフェイスの管理状態と動作状態 (フラグを取得) --ノーダウン および
--ショーオプダウン 考慮に入れます) そしてそれはタイプです (そして他のいくつかのこと)。

$default_ifstate
cfgmaker がそのインターフェースに基づいてインターフェースを受け入れた場合にのみ真です。
運用上および管理上の状態 (また、
フラグ --ノーダウン および --ショーオプダウン).

$default_iftype
cfgmaker がそのタイプに基づいてインターフェースを受け入れた場合 (および
さらに、いくつかのタイプ固有の詳細)。

$if_admin
インターフェイスが管理者のアップ状態にある場合にのみ真になります。

$if_oper
インターフェイスが稼働中の状態にある場合にのみ真になります。

インターフェイスが特定のインターフェイスに属しているかどうかを簡単に判断できるように、いくつかの変数も事前定義されています。
特定のカテゴリかどうか。 以下は、if_type と一緒にリストされているすべての変数です。
各変数が true になる数値。 一部の変数は他の変数を参照することに注意してください
同様に。

$if_is_ethernet
イーサネット インターフェイス (番号 6、7、26、62、69、および 117) の場合は true。

$if_is_isdn
さまざまな ISDN インターフェイス タイプ (番号 20、21、63、75、76、および 77) に当てはまります。

$if_is_ダイヤルアップ
PPP や ISDN などのダイヤルアップ インターフェイスの場合は true です。 (番号 23、81、82、および 108 で
の数に加えて $if_is_isdn).

$if_is_atm
その他の ATM 関連のインターフェイス タイプ (番号 37、49、107、105、106、114 および
134)。

$if_is_wan
WAN インターフェースのポイントツーポイント、フレームリレー、および高速シリアル (
22,32,44,46)

$if_is_lan
LAN インターフェイス (8、9、11、15、26、55、59、60、および 115 に加えて、
の数 $if_is_ethernet).

$if_is_dsl
ADSL、RDSL、HDSL、および SDSL に当てはまります (番号 94、95、96、97)

$if_is_ループバック
ソフトウェア ループバック インターフェイスの場合は true (番号 24)

$if_is_ciscovlan
Cisco VLAN インターフェイスの場合は true (Vlan または VLAN という単語が含まれるインターフェイス
ifdescs)

$if_vlan_id
Cisco Catalyst スイッチの特定のポートに関連付けられた vlan ID を返します。
Catalyst OS と IOS の両方、および 3Com スイッチ。 VLAN インターフェイスでない場合は、
undef を返します。

$if_cisco_trunk
両方の下にある Cisco Catalyst スイッチの特定のポートのトランキング状態を返します。
Catalyst OS および IOS。 インターフェイスがトランクの場合は「1」を返し、それ以外の場合は undef を返します。

$if_MTU
特定のポートに関連付けられた最大転送ユニットを返します。

それに加えて、以下のテンプレート用に定義された変数を使用することもできます。 さらに、すべての
cfgmaker で使用可能な変数は、スクリプトを使用しても自由に使用できます。
機能は推奨されません。 変数と関数の形でより多くの「ショートカット」が
代わりに将来的に利用可能になります。

on フィルタ

次のフィルターは、どのインターフェイスが含まれるか除外されるかに影響しません。
cfgmaker が通常どおり動作するようにします。

'--if-filter=$default'

次のフィルターは、cfgmaker が PPP (23) インターフェイスを除外するようにします。

'--if-filter=$default && $if_type!=23'

次のフィルターは、cfgmaker を通常どおりに動作させますが、
インターフェースの動作状態は無関係ですが、依然としてすべてのインターフェースを拒否します。
管理上のダウン。

'--if-filter=$if_admin && $default_iftype'

詳細 on テンプレート
テンプレート ファイルの内容は、Perl プログラムとして評価されます。 数値または Perl
変数はプログラムが読み取るために使用でき、他の変数は書き込みに使用されます。

事前定義された変数のかなりの数には、
HTML コードの一部には、「HTML エスケープ」バリアントがあります。たとえば、$html_syslocation は HTML です。
$syslocation のエスケープされたバリアント。 HTML エスケープとは、文字 "<"、">"、および "&" が
は "<"、">"、"&" に置き換えられ、文字列に埋め込まれた改行は
先頭に " " と空白文字が追加されます (改行がファイルの最後にある場合
弦には触れていません)。

書き込み可能な テンプレート Variables

これらは、構成行を格納するために使用できる変数です。それらのいくつかは
テンプレートの評価前に初期化されますが、そのようなコンテンツは通常コメントです
最終的な構成ファイルに含めるため、これらの変数は
テンプレート コードに空の文字列を追加して、コメントを削除します。 その逆もまた
これらの変数の内容は、
デバッグなどのさまざまな理由。

テンプレートが評価されると、次のことが起こります。
インターフェイス テンプレートと実際のインターフェイスが何らかの理由で拒否されたため、
変数内のすべての行をコメントアウトする $target_lines によってコメントに変換されます
先頭にハッシュ マーク (「#」) を追加します。 次に、すべての変数 $head_lines,
$problem_lines , $target_lines および $separator_lines を形成するために連結されます。
構成ファイルに追加する行。

$target_lines
この変数は、テンプレートによって作成された構成行のプレースホルダーです。
$target_lines テンプレートコードが評価されるときに空になるように事前定義されています。

$head_lines
この変数は、コメント行のプレースホルダーとして使用することを目的としています。
構成ファイルのターゲットの前。 そのコメント行で初期化されます
テンプレート コードの評価前で、テンプレートが変更されない場合
$head_lines 評価中、コメントは構成ファイルで通常のように表示されます。

$problem_lines
この変数は、コメント行のプレースホルダーとして使用することを目的としています。
ターゲットを
構成。 ホスト テンプレートの場合、通常は使用されません。
空の文字列として事前定義されています。 インターフェイス テンプレートの場合 $problem_lines 事前に定義されています
cfgmaker が拒否された場合に通常使用するエラー説明コメント
インターフェイスまたは受け入れられたインターフェイスの空の文字列として。

に対してテストすることが可能です $problem_lines インターフェイスが
含まれるか拒否されますが、これはお勧めできません。 に対するテスト $if_ok を代わりにお使いください。

$separator_lines
この変数は、文字列の間のセパレータとして使用する文字列のプレースホルダーです。
個々のターゲットのコード。 この変数の内容は、各ターゲットの後に置かれます
(そのため、構成内の最後のターゲットの終了後にも行が表示されます)。

事前定義済み テンプレート Variables

以下のすべての変数は、インターフェイス テンプレートで使用できます。 ホスト テンプレートの場合、
「ホストおよびシステム変数」の下にリストされているものだけが使用可能です。

インターフェイス テンプレートの場合、「事前定義されたフィルター変数」の下にリストされている変数も
にアクセスできるようにしています。

ライブ、セミライブ、オンデマンドビデオ および エントルピー Variables

$ルーター名
これは、ルーターの完全修飾名です。 以下の影響を受けます
コマンドラインの項目: ルーター名自体と --dns ドメイン.

$router_connect
これは、ポーリングされているルーターの参照文字列です。 フォーム上です
community@router の後にいくつかの snmp オプションが続く可能性があります。 の影響を受けます。
コマンド ラインの次の項目: ルーター名自体、 - コミュニティ,
--snmp オプション および --dns ドメイン. (利用可能な HTML エスケープバリアントはありません)

$ディレクトリ名
この変数には、cfgmaker が通常使用するディレクトリ名が含まれている必要があります。
「Directory[]」ディレクティブの値。 値は --サブディレクトリ
コマンドラインオプション。 もしも --サブディレクトリ 指定されていません $ディレクトリ名 空になります
ストリング。 (利用可能な HTML エスケープバリアントはありません)

$syscontact
この変数は、ルーターの SNMP sysContact 値です。 (HTML エスケープバリアント:
$html_syscontact)

$ sysname
この変数は、ルーターの SNMP sysName 値です。 (HTML エスケープバリアントは利用できません)

$syslocation
この変数は、ルーターの SNMP sysLocation 値です。 (HTML エスケープバリアント:
$html_syslocation)

$sysdescr
この変数は、ルーターの SNMP sysDescr 値です。 通常は使用されません。
cfgmaker ですが、テンプレートで役立つ場合があります。 (HTML エスケープバリアント: $html_sysdescr)

インタフェース ターゲット 関連記事 Variables

$target_name
これは、cfgmaker がターゲットの名前として通常使用するものです。 ターゲット
name は、ターゲット ディレクティブの角括弧 "[]" 内にあるものです。
(利用可能な HTML エスケープバリアントはありません)

$if_ref
これはインターフェイスの参照文字列です。 での使用が期待されます。
使用するインターフェイスを区別するための「Target[xyz]」ディレクティブ。 これの価値
変数は --ifref コマンドラインオプション。 普通に一緒に使う
  $router_connect. (利用可能な HTML エスケープバリアントはありません)

$if_ok
インターフェイスが構成に含まれる場合、この変数は true です。
ファイル、それ以外の場合は false。 次のような他の変数に対してテストしないでください。 $problem_lines 〜へ
インターフェイスが拒否されるかどうかを確認するには、これを使用します $if_ok を代わりにお使いください。

$default_target_lines
この変数には、cfgmaker がデフォルトで出力するすべてのターゲット行が含まれます。
インターフェース。 「標準ターゲット」が必要だが、いくつか追加したい場合に便利です。
テンプレートを使用して追加の行を追加します。

デフォルトでは、cfgmaker は、生成する各ターゲットに対して次のディレクティブを使用します: Target[],
SetEnv[]、MaxBytes[]、Title[]、PageTop[]、および指定されたディレクトリがある場合は、
Directory[] ディレクティブ。

類似したターゲット構成を生成するテンプレートの作成を容易にするため
デフォルトのものに、上記の各ディレクティブ行には対応する
cfgmaker としての行を含む変数は、デフォルトでそれを出力します。

これらのいずれにも HTML エスケープされたバリアントがないことに注意してください。それらのテキストは HTML エスケープされています。
必要です。 また、最後に改行がないことに注意してください。

$default_target_directive
この変数には、Target[] ディレクティブ ラインのデフォルトの文字列が含まれます。

$default_setenv_directive
この変数には、SetEnv[] ディレクティブ ラインのデフォルト文字列が含まれます。

$default_directory_directive
この変数には、Directory[] ディレクティブ行のデフォルト文字列が含まれています。
ディレクトリがない場合は、空の文字列 (改行なし) であることを意味します。

$default_maxbytes_directive
この変数には、MaxBytes[] ディレクティブ ラインのデフォルト文字列が含まれます。

$default_title_directive
この変数には、Title[] ディレクティブ行のデフォルトの文字列が含まれています。

$default_pagetop_directive
この変数には、PageTop[] ディレクティブ行のデフォルトの文字列が含まれています。

インタフェース ネットワーク   Variables

$if_ip
この変数には、インターフェイスの IP アドレスが含まれている必要があります (割り当てられている場合)。
それに。 (利用可能な HTML エスケープバリアントはありません)

$ifindex
この変数はインターフェイスの SNMP ifIndex であり、定義ごとに常に
整数。 (利用可能な HTML エスケープバリアントはありません)

$if_index
と同等 $ifindex.

$if_eth
インターフェイスのイーサネット アドレスが含まれている場合は、それが含まれます。 (エスケープされた HTML はありません。
利用可能なバリアント)

$if_speed
この変数は、バイト/秒単位の速度です (プレフィックス付き)。 (エスケープされた HTML はありません。
利用可能なバリアント)

$if_speed_str
この変数は、クックされた速度の説明であり、ビット単位またはバイト単位で表されます。
ビットオプションがアクティブであるかどうかにかかわらず、また、
速度 (k、M、G など)。 (HTML エスケープバリアントは利用できません)

$if_type_desc
この変数は、インターフェイス タイプのテキストによる説明です。 (HTML エスケープバリアント:
$html_if_type_desc)

$if_type_num
この変数は、インターフェイス タイプに対応する整数値です (
より一般的なインターフェイス タイプの値。「フィルターの詳細」セクションを参照してください。
その上)。 (HTML エスケープバリアントは利用できません)

$if_dns_name
これは、インターフェイスの DNS 名です。 (HTML エスケープバリアントは利用できません)

インタフェース 名前、 Description および エイリアス Variables

どちらも紛らわしいと思われるかもしれません 名前 , Description および エイリアス この文脈で、そして一部の人にとって
程度です。 名前 および Description 通常、ほとんどの機器でサポートされていますが、どのように
使用されているものは、メーカー間だけでなく、さまざまなカテゴリ間でも異なります。
同じメーカーの機器。 の エイリアス 少なくとも Cisco IOS でサポートされており、
その変数には、「説明」と呼ばれる IOS ステートメントで使用されるものが含まれます。
インターフェイス (SNMP 変数と混同しないでください) Description).

コマンド ラインからより適切に制御するには、次のことを検討してください。 $if_title_desc どのコンテンツが
によって制御されます --if-説明 コマンドラインオプション。

$if_snmp_descr
この変数には、によって決定されるインターフェイスの「生の」説明が含まれている必要があります。
ルーターの SNMP ポーリング。 (HTML エスケープバリアント: $html_if_snmp_descr)

$if_snmp_name
SNMP ポーリングによって提供されるインターフェイスの「生の」名前。 (HTML エスケープバリアント:
$html_if_snmp_name)

$if_snmp_alias
SNMP ポーリングによって提供される、インターフェイスの「生の」ifAlias。 (HTMLエスケープ
バリアント: $html_if_snmp_alias)

$if_cisco_descr
SNMP ポーリングによって提供される、インターフェイスの「生の」CiscolocIfDescr。 (HTML
エスケープされたバリアント: $html_if_cisco_descr)

$if_description
これは、インターフェースの「調理された」説明文字列です。
インターフェイスの RDescr、ifAlias、および CiscolocIfDescr で検出された SNMP 値。 (HTML
エスケープされたバリアント: $html_if_description)

$if_title
cfgmaker がデフォルトで Title[] ディレクティブに使用する完全な文字列
PageTop[] の最上位の H1 タグの内容と同様に設定します。 は
の内容で構成される $desc_prefix, $if_title_desc および $ sysname.

As $if_title に依存します $if_title_desc、間接的に制御することが可能 $if_title
コマンドラインオプションを使用して --if-説明.

(HTML エスケープバリアント: $html_if_title)

$if_ポート名
ホストが Cisco Catalyst LAN スイッチの場合、この変数はそのポートの名前です。
(HTML エスケープバリアントは利用できません)

$if_pp_ポート名
ホストが Nortel Passport LAN スイッチの場合、この変数はそのポートの名前です。
(HTML エスケープバリアントは利用できません)

$desc_prefix
この変数は、ターゲットが
「Title[]」ディレクティブと「PageTop[]」の H1 セクション。 デフォルトは「トラフィック
" の分析。 (HTML エスケープバリアント: $html_desc_prefix)

$if_title_desc
これは、通常、cfgmaker によって使用されるインターフェイスの説明です。
変数 $if_title. 後者は、「Title[]」ディレクティブで完全な文字列として使用されます
PageTop[] の H1 セクション。

$if_title_desc コマンドラインオプションによって制御されます --if-説明 間接的に
の内容を制御します $if_title

(HTML エスケープバリアント: $html_if_title_desc)

カスタマーサービス 機能 for テンプレート

次の関数は、ホストおよびインターフェイス テンプレートの記述を容易にするために存在します。

html_escape(文字列)
html_escape() 文字列を引数として取り、新しい文字列を返します。
次の置換が行われました: 文字 "<"、">"、および "&" は、
「<」、「>」、「&」、および文字列に埋め込まれた改行の前に
" " と空白文字が追加されます (文字列の末尾にある改行は
触れた)。

oid_pick($router_connect,$v3opt,"oid1","oid2"...)
この関数は、成功するか、または成功するまで、指定された各 oid をポーリングしようとします。
oid が不足しています。 機能した最初の oid の名前を返します。
それは成功していません

テンプレート

テンプレートの例 1: 拒否されたターゲットを出現から除外する

このテンプレート ファイルは、インターフェースごとに cfgmaker とまったく同じ構成コードを生成します。
すべての行 (コメントと
インターフェイスがたまたま拒否された場合は、インターフェイスの設定コード)。

if($problem_lines ではない)
{
$target_lines .= <

ターゲット[$target_name]: $if_ref:$router_connect
SetEnv[$target_name]: MRTG_INT_IP="$if_ip" MRTG_INT_DESCR="$if_snmp_descr"
エコー

if ($ディレクトリ名) {
$target_lines .= "ディレクトリ[$target_name]: $directory_name\n";
}

$target_lines .= <
MaxBytes[$target_name]: $if_speed
タイトル[$target_name]: $html_desc_prefix$html_if_title_desc -- $sysname
PageTop[$target_name]: $html_desc_prefix$html_if_title_desc -- $sysname



システム:
$html_syslocation の $sysname


メンテナ:
$html_syscontact


説明:
$html_if_description


ifタイプ:
$html_if_type_desc ($if_type_num)


ifName:
$html_if_snmp_name

エコー

$target_lines .= <

ポート名:
$if_port_name

エコー

$target_lines .= <

ポート名:
$if_pp_port_name

エコー

$target_lines .= <

マックス・スピード:
$if_speed_str

エコー

$target_lines .= <

IP:
$if_ip ($if_dns_name)

エコー

$target_lines .= <


エコー
場合} else {
$head_lines="";
$problem_lines="";
$target_lines="";
$separator_lines="";
}

テンプレート 2: シンプル of 1

例 1 は、インターフェイスの生成をカスタマイズする方法を示すことを部分的に意図していました。
ターゲットだけでなく、変数が「デフォルト」テンプレートでどのように使用されているかのヒントを提供します
cfgmaker が通常使用していると考えられるもの。

それらの拒否を完全に排除する最も簡単な方法にのみ興味がある場合
インターフェイス、以下のテンプレートは、 $default_target_lines.

if($if_ok) {
$target_lines = $default_target_lines;
場合} else {
$head_lines="";
$problem_lines="";
$target_lines="";
$separator_lines="";
}

テンプレート 3: 作成 CPU 目標 for ホスト

以下は、ホスト テンプレートの例です。

$head_lines .= <
#------------------------------------------------- --------------------
エコー

私の $target_name = $router_name . "。CPU";

$target_lines .= <

YLegend[$target_name]: CPU 負荷率
ShortLegend[$target_name]: %
Legend1[$target_name]: CPU 負荷 (%)
凡例 2[$target_name]:
Legend3[$target_name]: 観測された最大 CPU 負荷
凡例 4[$target_name]:
LegendI[$target_name]: CPU 負荷:
凡例O[$target_name]:
WithPeak[$target_name]: ywm
MaxBytes[$target_name]: 100
オプション[$target_name]: growright、gauge、nopercent
タイトル[$target_name]: $router_name CPU負荷
ターゲット[$target_name]: 1.3.6.1.4.1.9.2.1.58.0&1.3.6.1.4.1.9.2.1.58.0:$router_connect
PageTop[$target_name]: $router_name CPU負荷



システム:
$html_syslocation の $router_name


メンテナ:
$html_syscontact


説明:
$html_sysdescr


リソース:
CPU。



エコー


最初の例では、次の構成ファイルを作成します。 ルーター.場所.xyz: ルーターには
コミュニティ名 公共. インターフェイスは IP 番号で識別されます。 XNUMX つのグローバル オプション
構成ファイルに追加されます。 構成ファイルはにリダイレクトされます mrtg.conf. 「\」
行末の記号は、このコマンドを XNUMX 行で記述する必要があることを意味します。

cfgmaker --global "WorkDir: /home/tobi"
--global "オプション[_]: グローライト、ビット"
--ifref = ip
public@router.place.xyz > MRTG.cfg

注: cfgmaker がパスになくても、cfgmaker があるディレクトリにいる場合
./cfgmaker で起動できます

次の例では、XNUMX つのデバイスの構成ファイルを作成します。 router1.place.xyz,
router2.place.xyz, switch1.place.xyz および switch2.place.xyz すべてはコミュニティとともに 公共.

XNUMX つのルーターには --ifref に設定 説明 一方、XNUMX つのスイッチは使用します --ifref
に設定 . さらにルーターが使用します --ifdesc に設定 alias および switch1.place.xyz
使用する --ifdesc に設定 説明 一方 switch2.place.xyz つかいます を代わりにお使いください。

最後に、構成に XNUMX つの Options 行が挿入されます。
もう一方は、XNUMX つのルーターに関連する行の後に挿入されます。
ただし、スイッチに関連する行の前。

cfgmaker --global "WorkDir: /home/tobi"
--global "オプション[_]: グローライト、ビット"
--ifref = descr
--ifdesc=エイリアス
public@router1.place.xyz
public@router2.place.xyz
--global "オプション[_]: グローライト"
--ifref = name
--ifdesc=記述
public@switch1.place.xyz
--ifdesc=名前
public@switch2.place.xyz > MRTG.cfg

次の例は、 - コミュニティ, --snmp オプション および --dns ドメイン
コマンドラインをよりシンプルにします。 すべての機器はコミュニティを使用します 隠されました除きます
コミュニティを使用する ppp-server の場合 アクセス. すべての機器は、次の SNMP オプションを使用します。 1s
タイムアウト, 1 リトライ および SNMP バージョン 2 (バックオフ および ポート は指定されていないため、使用することを意味します
デフォルト値)。 ここでも例外は、使用する ppp-server です。 SNMP バージョン 1.
最後に、すべての機器はドメインの一部です 場所.xyz、 ppp-server を除く
これはドメインの一部です リモート.場所.xyz. 後者は単純に
する ppp-server の名前を指定する ppp サーバー。リモート .

cfgmaker --global "WorkDir: /home/tobi"
--global "オプション[_]: グローライト、ビット"
--dns-domain=place.xyz
--コミュニティ=非表示
--snmp-options=::1:1::2
router1
router2
router3
router4
router5
switch1
switch2
switch3
switch4
switch5
switch6
switch7
access@ppp-server.remote:::::1 > MRTG.cfg

onworks.net サービスを使用してオンラインで cfgmaker を使用する



最新のLinuxおよびWindowsオンラインプログラム