この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、CiscoルータのCPU使用率が高くなる一般的な症状と原因について説明し、一般的な問題のガイドラインと解決策を提供します。
次の項目に関する知識があることが推奨されます。
Cisco IOS ソフトウェア スイッチング パスの詳細については、『パフォーマンス チューニングの基本』を参照してください。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
次のリストは、CPU 使用率が高い場合の一般的な症状を示しています。これらの症状のいずれかが発生した場合は、このドキュメントで説明する手順に従って問題をトラブルシューティングしてください。
高いパーセンテージの show processes cpu
コマンド出力.
シスコ デバイスから show processes cpu コマンドの出力がある場合は、Cisco CLI Analyzer を使用して潜在的な問題および修正を表示できます。
注:Cisco CLI Analyzerを使用するには、シスコ登録ユーザとしてログインし、さらにJavaScriptを有効にしている必要があります。
低いパフォーマンス
ルータ上のサービスが正常に応答しない。たとえば、次のような症状が起こる。
Telnet の応答が遅い、またはルータに Telnet できない
コンソールの応答が遅い
ping の応答が遅い、またはまったく応答しない
ルータが他のルータにルーティング アップデートを送信しない
高いバッファ障害
「CPU 使用率が高い場合に起こる症状」のうちのいずれかの症状が発生した場合は、次の手順を実行します。
セキュリティ問題が発生していないかどうかをチェックします。一般に、CPU の高使用率は、ネットワーク内で活動するワームやウィルスなどのセキュリティ問題によって発生します。たとえば、最近ネットワークに対する変更を行っていない場合は、これが原因になっている可能性が高くなります。通常、アクセスリストに回線を追加するときに設定を変更することで、この問題の影響を緩和できます。 「シスコ製品セキュリティ アドバイザリおよび通知」には、最も可能性が高い原因の検出と特定の回避策に関する情報が記載されています。
詳細については、次を参照してください。
undebug all
or no debug all
コマンドを使用して、ルータ内のすべての debug
コマンドがオフになっていることを確認します。
ルータで show
コマンドを発行できますか。発行できる場合は、すぐに次の show
コマンドを使用して、詳細な情報の収集を開始します。
ルータへのアクセス可否を確認します。この問題に再現性があるかどうかを確認します。はいの場合は、ルータの電源をオフ/オンし、問題を再現する前に、 scheduler interval 500
コマンドを設定します。これにより、優先順位の低いプロセスが 500 ミリ秒ごとに実行されるようスケジュールされるため、CPU 使用率が 100 % であっても、いくつかのコマンドを実行できます。Cisco 7200およびCisco 7500シリーズルータでは、 scheduler allocate 3000 1000
コマンドを使用します。
CPU 高負荷時の症状が、短く不規則な間隔で発生しているかを確認します。そうである場合は、 show processes cpu
コマンドの出力を一定の間隔で収集します。これにより、CPU高負荷の原因が割り込みにあるのか、または特定のプロセスにあるのかがわかります。このUNIXスクリプトを使用し、最初に見つかった情報に基づいて、問題の詳細な調査に必要なデータを収集するようにスクリプトを変更します。
show processes cpu コマンドを使用して、CPU 使用率が高いのが割り込みまたはプロセスによるものかどうかを確認します。
詳細は、『割り込みによって CPU 使用率が高くなる場合のトラブルシューティング』を参照してください。割り込みによって CPU 使用率が高くなる原因が CEF のパケット交換による可能性が高い場合、CPU の使用率によるルータ パフォーマンスへの影響はありません。
NetFlowがバージョン7用に設定されている場合、フローはルーティングプロセッサによって実行されるため、CPU使用率が高くなる可能性があります。
NetFlowバージョン7が原因でCPU使用率が高い場合のトラブルシューティングを行うには、 MLS NDE送信側 NetFlowエクスポートはSPによって実行されるため、バージョン5またはバージョン9のデフォルトはバージョン5です。
どのプロセスがCPUをロードするかを確認します。プロセスについて通常とは異なるアクティビティがあれば、ログにエラー メッセージが記録されます。したがって、CPUサイクルを大量に消費しているプロセスに関連するエラーがないか、 show logging exec
コマンドの出力を最初にチェックする必要があります。
debugコマンドを使用すると、これらのプロセスでCPU使用率が高くなる場合のトラブルシューティングを行うことができます。debugコマンドを実行するとCPU使用率がさらに上昇する可能性があるため、このコマンドの実行には細心の注意を払う必要があります。debugコマンドを安全に使用するには、次の前提条件を満たしている必要があります。
適切な logging destination [ severity-level ] configuration
コマンドを使用して、バッファロギング以外のすべてのロギング先を無効にするか、またはそのロギング重大度を7(デバッグ)から6(情報)以下に下げる必要があります。どのロギング先および対応するレベルが有効であるかを確認するには、 show logging exec
コマンドのヘッダー行を参照してください。
十分な情報を取得するには、ロギングバッファサイズを大きくする必要があります。詳細については、 logging buffer global configuration
コマンドの説明を参照してください。
デバッグの読み取りと理解を向上させるには、日時とミリ秒のタイムスタンプを有効にする必要があります。詳細については、 service timestamps global configuration
コマンドの説明を参照してください。
「入力プロセスによってCPU使用率が高くなる場合のトラブルシューティング」には、IPパケットのデバッグセッション例が示されています。
特定のプロセスでCPU使用率が高くなる場合のトラブルシューティングについては、次のドキュメントを参照してください。
ARP Input:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「ARP Input」の項。
BGPルータ:ドキュメント『トラブルシューティング:BGPスキャナまたはBGPルータプロセスが原因で発生するCPUの高使用』の「CPU高使用の原因がBGPルータプロセスにある場合」セクション。
BGPスキャナ:ドキュメント『トラブルシューティング:BGPスキャナまたはBGPルータプロセスが原因で発生するCPUの高使用』の「CPU高使用の原因がBGPスキャナ」セクション
EXEC:『EXECおよび仮想EXECプロセスでのCPU高使用率』。
HyBridge Input:ATMインターフェイスを搭載するルータ上で、HyBridge入力プロセスが原因で発生するCPUの高使用率のトラブルシューティングを行います。
IP Input:『IPインプットプロセスによってCPU使用率が高い場合のトラブルシューティング』。
IP Simple Network Management Protocol(SNMP):IP Simple Network Management Protocol(SNMP)によって生じるCPUの高使用率。
LC ADJ アップデータ:Cisco 12000 シリーズ インターネット ルータの LC 隣接関係アップデータ プロセスで CPU 使用率が高くなる原因は何か。
TCP Timer:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「TCP Timer」セクション
TTY Background:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「TTYバックグラウンド」セクション
仮想EXEC(Virtual EXEC):EXECについてはリンクを参照してください。EXEC および仮想 EXEC プロセスでの CPU 高使用率.
Vtemplate Backgr:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「仮想テンプレートバックグラウンド」セクション
SSHプロセス:show tech
をキャプチャした場合、またはデバッグが有効になっている場合に、高くなる可能性があります。
その他のプロセス:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「その他のプロセス」セクション
PCI およびファースト メモリ プールで空きメモリの低下が見られることは正常です。PCI メモリは、接続されている PCI バスの PRP メインボード上の GT64260 コントローラに対するメモリ アクセスに使用されます。このメモリは、システム コントローラと他の部分の間の内部通信に使用されるため、常に使用率が高いように見えます。
さらに多くのメモリが必要な場合は、プロセッサ プール メモリにフォール バックします。ファースト メモリは、ハードウェアの Interface Descriptor Block(IDB; インターフェイス デスクリプション ブロック)データ構造による使用のために確保された少量のメモリです。このメモリはブートアップ中も完全に予約され、メモリが完全に消費されているために常に高い使用率が示されます。このため、ファースト メモリ プールで空きメモリの低下が見られることは正常です。
CPU ホグ メッセージは次のようになります。
SNMP-4-HIGHCPU: Process exceeds 200ms threshold (200ms Cisco IOS quantum) for GET of rmon.19.16.0--result rmon.19.16.0
新しいsyslogメッセージ(HIGHCPU)は、12.4(13)でCisco IOSに追加されました。 CPU がプロセスにより 200 ミリ秒以上占有されると、HIGHCPU メッセージが報告されます。HIGHCPU メッセージによるルータへの影響はありません。どのプロセスが CPU の高使用率の原因であるのかが示されているだけです。HIGHCPU メッセージは CPUHOG メッセージに似ていますが、HIGHCPU メッセージには大幅に低い許容しきい値が設定されています(CPUHOG メッセージと比較した場合、1/10 の時間(ミリ秒での測定))。 2600の12.4(13)より前のバージョンでは、プロセスはより長い時間にわたって実行されましたが、Cisco IOSバージョンにはこの機能拡張が組み込まれていないため、メッセージは生成されませんでした。
SNMP PDU プロセス(MIB オブジェクト クエリ)がサポートされ、PDU 内の各オブジェクトがほぼ同時に取得されるように、単一の CPU タイム クアンタムで実行されます。これは SNMP プロトコル標準によって求められる要件です。一部のオブジェクトはシステム内の大量のデータの集約であるため、これらが単一のオブジェクトであったとしても、その実装の方法により大量のプロセスが関与します。MIB の実装ルールで要求されるように CPU が解放されない場合、このエラー メッセージが発生する可能性があります。また、この同じ理由により、いくつかの異なるオブジェクトを同じオブジェクト グループまたはテーブル内でポーリングし、エラー メッセージが表示される場合は異常ではありません。
このメッセージは、予想より多くの CPU 時間を使用するオブジェクトを識別するために使用されます(しかしまだ CPUHOG ではありません)。 一部の NMS または実装ツールは、ポーリング時に正常に動作しません。この問題は、Cisco Bug ID CSCsl18139に記載されています。
注:内部ツールおよびバグ情報にアクセスできるのは、登録されたシスコユーザだけです。
デバイスにハードウェア暗号化モジュールが取り付けられていない場合、デバイスを通過するすべての暗号化トラフィックは、ソフトウェアによって暗号化される必要があります。これには CPU を大量に消費します。妥当なスループット要件を持つ暗号化展開にソフトウェア暗号化を使用することは推奨されません。この問題を解決する 1 つのオプションは、暗号化されたトラフィックの量を減らす(トラフィックの経路を変更する、または暗号化されたフローを制限する)ことです。 ただし、この問題に対処する最善の方法は、このデバイスにハードウェア暗号化モジュールを取り付けて、ソフトウェアを使用して暗号化を行う必要性をなくすことです。
注:トンネル/物理インターフェイスで暗号マップを有効にすると、メモリ消費プロセスが発生し、CPUの使用率が上昇する可能性があります。
CPUが多数のパケットを再構成する必要がある場合、再構成によってCPUの使用率が非常に高くなる可能性があります。
フラグメンテーションが原因でCPU使用率が高い場合のトラブルシューティングを行うには、インターフェイス上でtcp mss-adjust 1400コマンドを発行し、ルータを通過するTCP同期/開始(SYN)パケットの最大セグメントサイズ(MSS)値を設定します。
次のコマンドを使用することで、問題に関するより多くの情報を得ることができます。
show processes cpu
show interfaces
show interfaces switching
show interfaces stat
show ip nat translations
show align
show version
show log
showコマンドの詳細は、『Cisco IOS設定の基本コマンドリファレンス』を参照してください。
ルータがまったくアクセス不能になった場合は、まず、ルータの電源を一旦オフにしてから再度オンにします。次に、syslogサーバにメッセージが記録される show log
コマンドを除いて、この項に示すコマンドの出力を定期的に収集します。出力を収集する間隔は5分である必要があります。このUNIXシェルスクリプトを使用して、手動または自動でデータを収集できます。HTTPまたはSNMPを使用してデータを収集することもできます。
show processes cpu
次に、 show processes cpu
コマンドのヘッダーの例を示します。
CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
次の表に、ヘッダー内のフィールドの説明を示します。
フィールド | 説明 |
---|---|
X |
最後の 5 秒間の合計使用率の平均(割り込みとプロセス) |
Y |
過去 5 秒間の割り込みによる平均使用率 1 |
Z |
過去 1 分間の平均合計使用率 2 |
W |
過去 5 分間の平均合計使用率 2 |
PID |
プロセス ID |
Runtime |
プロセスが使用した CPU 時間(ミリ秒) |
Invoked |
プロセスがコールされた回数 |
uSecs |
各呼び出しの CPU 時間のマイクロ秒 |
5Sec |
最後の 5 秒間のタスクによる CPU 利用率 |
1Min |
過去 1 分間のタスクによる CPU 使用率 2 |
5Min |
過去 5 分間のタスクによる CPU 使用率 2 |
TTY |
プロセスを制御する端末 |
プロセス |
プロセスの名前 |
1 プロセス レベルの CPU 使用率 = X - Y
2 値は算術平均を表すものではなく、指数関数的に減衰した平均です。そのため、新しい値ほど、算出される平均に大きな影響を与えます。
詳細については、『showコマンドリファレンスガイド』を参照してください。
注:合計CPU使用率を、より多くのパケットをスイッチングするルータの能力を示す尺度として使用しないでください。Cisco 7500 ルータでは、Versatile Interface Processor(VIP)と Route/Switch Processor(RSP; ルート スイッチ プロセッサ)は CPU 使用率を線形ではレポートしません。秒当たりのパケット交換能力の半数近くは、CPU 使用率が 90~95% になった後に処理されます。
show interfaces
このコマンドは、アクティブなインターフェイスを判別するために使用されます。
show interfaces switching
このコマンドは、インターフェイス上のアクティブなスイッチングパスを判別するために使用されます。
1つのインターフェイスに対する show interfaces switching
コマンドの出力例を次に示します。
RouterA#show interfaces switching Ethernet0 Throttle count 0 Drops RP 0 SP 0 SPD Flushes Fast 0 SSE 0 SPD Aggress Fast 0 SPD Priority Inputs 0 Drops 0 Protocol Path Pkts In Chars In Pkts Out Chars Out Other Process 0 0 595 35700 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IP Process 4 456 4 456 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IPX Process 0 0 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 Trans. Bridge Process 0 0 0 0 Cache misses 0 Fast 11 660 0 0 Auton/SSE 0 0 0 0 DEC MOP Process 0 0 10 770 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 ARP Process 1 60 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 CDP Process 200 63700 100 31183 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0
出力には、インターフェイスで設定されたすべてのプロトコルのスイッチングパスがリストされるため、ルータを通過するトラフィックの種類と量を簡単に確認できます。出力フィールドの説明を次の表に示します。
フィールド | 定義 |
---|---|
プロセス |
処理されたパケット。これらはルータ宛てのパケット、またはファースト スイッチング キャッシュ内にエントリがなかったパケットです。 |
Cache misses |
ファースト スイッチング キャッシュ内にエントリがなかったパケット。この宛先の最初のパケット(またはフロー – 設定されているファーストスイッチングのタイプによって異なる)が処理されます。発信インターフェイスでファーストスイッチングが明示的に無効にされていない限り、後続のパケットはすべてファーストスイッチングされます。 |
Fast |
ファースト スイッチングで交換されたパケット。ファースト スイッチングはデフォルトで有効になっています。 |
Auton/SSE |
自律スイッチング、シリコン スイッチング、または分散スイッチングによって交換されたパケット。スイッチ プロセッサまたはシリコン スイッチ プロセッサ(それぞれ、自律スイッチングまたはシリコン スイッチング用)を備えた Cisco 7000 シリーズ ルータ、または VIP(分散スイッチング用)を備えた Cisco 7500 シリーズ ルータでのみ利用可能です。 |
show interfaces stat
このコマンドは、 show interfaces switching
コマンドの要約バージョンです。インターフェイスが 1 つの場合の出力例を次に示します。
RouterA#show interfaces stat Ethernet0 Switching path Pkts In Chars In Pkts Out Chars Out Processor 52077 12245489 24646 3170041 Route cache 0 0 0 0 Distributed cache 0 0 0 0 Total 52077 12245489 24646 3170041
show interfaces stat
コマンドはプラットフォームによって異なり、使用可能なスイッチングパスおよび設定されたスイッチングパスによって異なります。
show ip nat translations
show ip nat translations
コマンドは、ルータ上でアクティブなネットワークアドレス変換(NAT)変換を表示します。アクティブな変換は、それぞれ CPU 割り込みを生成し、ルータの CPU 使用率の合計に影響を与えます。非常に多数の変換が行われると、ルータのパフォーマンスに影響があります。
次に、 show ip nat translations
コマンドの出力例を示します。
router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 172.16.131.1 10.10.10.1 --- ---
show align
このコマンドは、Reduced Instruction Set Computing(RISC)プロセッサベースのプラットフォームでのみ使用できます。これらのプラットフォームでは、CPUはメモリの読み取りまたは書き込みを調整できません。次に、出力例を示します。
Alignment data for: 4500 Software (C4500-DS40-M), Version mis-aligned RELEASE SOFTWARE (fc1) Compiled Tue 31-Mar-98 15:05 by jdoe Total Corrections 33911, Recorded 2, Reads 33911, Writes 0 Initial Initial Address Count Access Type Traceback 40025F4D 15561 16bit read 0x606F4A7C 0x601C78F8 0x6012FE94 0x600102C0 40025F72 18350 32bit read 0x606FB260 0x6013113C 0x600102C0 0x60010988
show version
高いCPU使用率の問題を追跡するために、コマンド出力から取得する重要な情報は、Cisco IOSソフトウェアのバージョン、プラットフォーム、CPUタイプ、およびルータの稼働時間です。このコマンドの詳細な説明は、コマンドリファレンスに記載されています。
show log
このコマンドは、バッファに格納されているログ メッセージの内容を表示します。
Embedded Event Manager(EEM)を使用すると、CPU使用率が高い状態が発生した場合にデータを自動的に収集できます。 EEMは、プロセス使用率のSNMP OIDを監視するか、CPU thresholdコマンドからの出力のsyslogメッセージを監視することによってトリガーされます。さまざまなshowコマンドをEEMスクリプトを介して実行でき、出力をファイルシステムに保存できます。
このスクリプトは、プロセス使用率が約85 %増加したときに実行されます。
詳細については、『SNMPを使ったCisco IOSデバイスのCPU使用率の収集方法』を参照してください。
event manager applet high-cpu ! event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3 get-type next entry-op gt entry-val 85 poll-interval 5 exit-time 500 maxrun 600 ! action 0.1 cli command "enable" action 0.2 syslog msg "TAC - Capturing high cpu information to flash:" action 0.3 cli command "term length 0" action 1.1 cli command "show process cpu sorted | redirect flash:eem-cpu1.txt" action 1.2 cli command "show interface | redirect flash:eem-interface1.txt" action 1.3 cli command "show interface stats | redirect flash:eem-stat1.txt" action 1.4 cli command "show ip traffic | redirect flash:eem-traffic1.txt" action 4.1 syslog msg "TAC - Finished logging information to separate eem files in flash" action 9.4 cli command "end" action 9.5 cli command "term default length" ! ! end
EEMとCPU threshold notifications コマンドを組み合わせて使用すると、EEMスクリプトをトリガーできます。この例では、使用率が5秒間に85 %を超えて上昇すると、CPURISHINGTHRESHOLD syslogメッセージが生成されます。 EEMスクリプトはsyslogメッセージをトリガーし、ファイルシステム上のファイルに保存されるコマンドのリストを実行できます。
process cpu threshold type total rising 85 interval 5 ! event manager applet high-cpu event syslog pattern "CPURISINGTHRESHOLD" action 0.1 syslog msg "EEM: HIGH CPU detected. Writing info to flash:eem-log.txt" action 0.2 cli command "enable" action 0.3 cli command "term exec prompt timestamp" action 0.4 cli command "term len 0" action 1.1 cli command "show process cpu sorted | append flash:eem-log.txt" action 1.2 cli command "show proc mem sorted | append flash:eem-log.txt" action 1.3 cli command "show mem alloc total | append flash:eem-log.txt" action 2.2 syslog msg "EEM: Self-removing applet from configuration..." action 2.5 cli command "end" ! end
EEMは、CPUプロファイリングの開始/停止のほか、さまざまなshowコマンドからのログデータに使用されます。詳細は、『割り込みによってCPU使用率が高くなる場合のトラブルシューティング』を参照してください。
event manager applet High_CPU event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 get-type exact entry-op ge entry-val "75" exit-time 10 poll-interval 5 action 0.1 syslog msg "CPU Utilization is high" action 0.2 cli command "enable" action 0.4 cli command "show version | append flash:CPU_Profile.txt" action 0.4 cli command "show log | append flash:CPU_Profile.txt" action 0.5 cli command "show process cpu sorted | append flash:CPU_Profile.txt" action 0.6 cli command "show interfaces | append flash:CPU_Profile.txt" action 0.7 cli command "show region | append flash:CPU_Profile.txt" action 1.2 cli command "profile 4000F000 42C9FFFF 4" action 1.3 cli command "profile start" action 2.3 syslog msg "Entering TCLSH" action 2.4 cli command "tclsh" action 2.5 cli command "after 240000" action 2.6 cli command "exit" action 2.9 syslog msg "Exiting TCLSH" action 3.0 cli command "profile stop" action 3.1 cli command "show profile terse | append flash:CPU_Profile.txt" action 3.2 cli command "clear profile" action 3.3 cli command "unprofile all" action 4.1 syslog msg "Finished logging information to flash:CPU_Profile.txt..." action 4.2 cli command "end"
この付録では、ルータから定期的にデータをキャプチャする簡単なスクリプトについて説明します。このスクリプトの最も重要な部分は次の行です。
(echo "show version") | telnet 192.168.1.1
カッコ内のコマンドがサブシェルで実行され、その出力が Telnet セッションに送られます。次に、 show version
および show processes cpu
コマンドの出力をキャプチャするスクリプト例を示します。
#!/opt/local/bin/bash ########################################### # Router's IP address # IP_ADDRESS='10.200.40.53' # Directory where the log files can be stored # DIR=/var/log/router ######################################## if [ ! -e $DIR ] then mkdir $DIR fi # Tag specification: mmddhhmm DATE=`date +'%m%d'` TIME=`date +'%H%M'` TAG=$DATE$TIME # Collect data from the router (echo "foo";\ echo "bar";\ echo "term len 0";\ echo "show version";\ echo "show processes cpu";\ echo "term len 15";\ echo "show memory summary";\ echo "q";\ sleep 30)|telnet $IP_ADDRESS > $DIR/info.$TAG 2>$DIR/info.$TAG.msg
注:このスクリプトでは、パスワードを含むすべてのデータがクリアテキスト形式で送信されます。
最初のセクションでは、IP アドレスと、ログ ファイルの保存先ディレクトリを指定する必要があります。2 番目のセクションには、ルータに実際に送信するコマンドを記述します。最初の行はユーザ名、次の行はパスワードです。特定のコマンドの出力の最初の行だけをキャプチャするために含まれています。プロンプトを介して、端末の長さを短めに設定し(このケースでは 15)、「q」文字を送信しています。
一定の間隔でデータを収集すると、 show version
の出力から、問題が周期的に発生する性質を持っているか(たとえば、常に特定の時間帯や曜日に発生するなど)がわかります。さらに多くのコマンドの出力を収集する場合は、上記の例と同じ方法でそれらのコマンドをスクリプトに追加します。ファイルに送信する出力を切り捨てる場合は、最初にカッコ内に sleep コマンドを指定して、スリープ時間を長くします。
CPU 高使用率の問題がたびたび発生するにもかかわらず、短時間で終結する場合は、このスクリプトを 5 分間隔で実行します。そうでない場合は、15 分または 30 分間隔で実行します。簡単に使用するために、このスクリプトを /usr/bin/router-script などのファイルとして保存しておきます。次に、5分ごとに実行するために、/etc/crontabファイルに次の行を追加します。
*/5 * * * * /usr/bin/router-script
cron サーバを再起動します。/etc/crontab ファイルを変更する権限がない場合は、次のように別のプロセスでスクリプトを実行します。
while [ 1 ]; do ./router-script ; sleep 300; done &
改定 | 発行日 | コメント |
---|---|---|
2.0 |
30-Nov-2022 |
更新された書式。再認証されました。 |
1.0 |
14-Dec-2001 |
初版 |