この製品のドキュメントセットは、偏向のない言語を使用するように配慮されています。このドキュメントセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブ ランゲージの取り組みの詳細は、こちらをご覧ください。
シスコは世界中のユーザにそれぞれの言語でサポート コンテンツを提供するために、機械と人による翻訳を組み合わせて、本ドキュメントを翻訳しています。ただし、最高度の機械翻訳であっても、専門家による翻訳のような正確性は確保されません。シスコは、これら翻訳の正確性について法的責任を負いません。原典である英語版(リンクからアクセス可能)もあわせて参照することを推奨します。
このドキュメントでは、CiscoルータのCPU高使用率の一般的な症状と原因について説明し、一般的な問題のガイドラインと解決策を示します。
次の項目に関する知識があることが推奨されます。
Cisco IOS ソフトウェア スイッチング パスの詳細については、『パフォーマンス チューニングの基本』を参照してください。
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
次のリストは、CPU 使用率が高い場合の一般的な症状を示しています。これらの症状のいずれかが見つかった場合は、このドキュメントで説明されている手順を使用して問題をトラブルシューティングしてください。
高いパーセンテージは show processes cpu
コマンド出力.
シスコ デバイスから show processes cpu コマンドの出力がある場合は、Cisco CLI Analyzer を使用して潜在的な問題および修正を表示できます。
注:Cisco CLI Analyzerを使用するには、シスコの登録ユーザとしてログインし、JavaScriptを有効にしている必要があります。
低いパフォーマンス
ルータ上のサービスが正常に応答しない。たとえば、次のような症状が起こる。
Telnet の応答が遅い、またはルータに Telnet できない
コンソールの応答が遅い
ping の応答が遅い、またはまったく応答しない
ルータが他のルータにルーティング アップデートを送信しない
高いバッファ障害
「CPU 使用率が高い場合に起こる症状」のうちのいずれかの症状が発生した場合は、次の手順を実行します。
セキュリティ問題が発生していないかどうかをチェックします。一般に、CPU の高使用率は、ネットワーク内で活動するワームやウィルスなどのセキュリティ問題によって発生します。たとえば、最近ネットワークに対する変更を行っていない場合は、これが原因になっている可能性が高くなります。通常、アクセスリストに回線を追加する際に設定を変更することで、この問題の影響を緩和できます。 「シスコ製品セキュリティ アドバイザリおよび通知」には、最も可能性が高い原因の検出と特定の回避策に関する情報が記載されています。
詳細については、次を参照してください。
これらのコマンドを使用して debug
、ルータ内のすべてのコマンドがオフになっているこ undebug all
とを確認 no debug all
します。
ルータでコマ 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をロードするかを確認します。プロセスについて通常とは異なるアクティビティがあれば、ログにエラー メッセージが記録されます。したがって、最初にコマンドの出力を調べて show logging exec
、CPUサイクルを大量に消費しているプロセスに関連するエラーがないかどうかを確認する必要があります。
debugコマンドを使用して、これらのプロセスでCPU使用率が高くなる場合のトラブルシューティングを行うことができます。debugコマンドはCPU使用率をさらに上げる可能性があるため、実行する場合は細心の注意が必要です。debugコマンドを安全に使用するには、次の前提条件を満たしている必要があります。
適切なコマンドを使用して、バッファロギング以外のすべてのロギング先を無効にするか、またはそのロギング重大度を7(デバッグ)から6(情報)以下に下げる必要があり logging destination [ severity-level ] configuration
ます。どのロギング先および対応するレベルが有効になっているかを確認するには、コマ 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 Inputプロセスが原因でCPU使用率が高い場合のトラブルシューティング。
IP Simple Network Management Protocol(SNMP):IP Simple Network Management Protocol(SNMP)が原因でCPU使用率が高くなる。
LC ADJ アップデータ:Cisco 12000 シリーズ インターネット ルータの LC 隣接関係アップデータ プロセスで CPU 使用率が高くなる原因は何か。
TCPタイマー:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「TCPタイマー」セクション
TTY Background:ドキュメント『プロセスによってCPU使用率が高くなる場合のトラブルシューティング』の「TTYバックグラウンド」セクション
仮想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同期/開始(SYN)パケットの最大セグメントサイズ(MSS)値を設定するインターフェイス上で、tcp mss-adjust 1400コマンドを発行します。
次のコマンドを使用することで、問題に関するより多くの情報を得ることができます。
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を使用すると、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は、さまざまなshowコマンドからのログデータだけでなく、CPUプロファイリングの開始/停止にも使用されます。詳細は、『割り込みによって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 |
初版 |