Cisco 機器のコマンドログを取得する汎用的な Tera Term マクロを作成しました

マクロ

検証や現地作業における機器ログ取得に使える Tera Term マクロ

検証や現地作業において、対象ネットワーク機器の状態確認コマンドのログを取得することが良くあります。

このログ取得を行うために Tera Termマクロを作成することが多いと思います。ただ、ログイン方式やログインパスワード等、案件に依存する部分があるため案件ごとに毎回その案件のためだけのマクロを作成しているという人も多いのではないでしょうか。

しかし案件ごとにマクロを作るというのは面倒に思いました。

そこで、できるだけ汎用的で、ホスト名、IPアドレス、パスワード、実行コマンドといった案件固有情報だけを編集すればすぐにログ取得ができる Tera Term マクロを作成しました。

なおこのマクロは Cisco 機器を対象にしています。

コマンドログ取得マクロ概要

マクロの利用イメージ

マクロを実行すると、以下のような画面が表示されます。

この画面にはあらかじめテキストに記載しておいた対象機器ホスト名のリストが表示されます。
ログ取得の対象機器を選択後「はい」をクリックします。

すると以下の接続方法選択画面が表示されます。

対応している接続方法は以下の通りです。

  • Console: シリアルコンソール接続
  • Telnet
  • SSH: ユーザパスワード認証のみに対応しています

Telnet または SSH を選択した場合は、ログイン~コマンド実行処理が開始されます。

Console を選択した場合は、以下の COM ポート画面に進みます。

この画面ではマクロを実行している PC で接続可能な COM ポートのリストが表示されるため、接続したいポートを選択して「はい」をクリックします。するとログイン~コマンド実行処理が開始されます。

コマンド実行ログは自動で所定のフォルダ内に保存されます。

対象機器にてログ取得が完了したら最初の画面に戻ります。

これ以降は同様の方法で他の対象機器についてもログを取得することができます。

マクロを停止する場合は最初の画面で「マクロ停止 > はい」とクリックするか「キャンセル」をクリックします。

マクロ実行前に必要な設定

マクロを実行する前に、ログイン用情報とコマンドリストを設定する必要があります。

当マクロのファイル構成は以下のようになっています。

マクロのファイル構成
  • 【Cisco】コマンドログ取得マクロ_yyyymmdd.ttl
    • マクロファイル本体です
  • [01_ログイン情報] フォルダ ※フォルダ名変更不可
    • 01_ホスト名.txt ※ファイル名変更不可
      • [設定必須] 対象機器のホスト名を記載
    • 02_IPアドレス.txt ※ファイル名変更不可
      • Telnet、SSH 接続時の宛先 IP アドレスを記載
    • 03_ユーザ名.txt ※ファイル名変更不可
      • ローカルユーザ認証の場合に編集
    • 04_ユーザパスワード.txt ※ファイル名変更不可
      • ローカルユーザ認証の場合に編集
    • 05_コンソールパスワード.txt ※ファイル名変更不可
      • line con にパスワードを設定している場合に編集
    • 06_VTYパスワード.txt ※ファイル名変更不可
      • line vty にパスワードを設定している場合に編集
    • 07_enableパスワード.txt ※ファイル名変更不可
  • [02_コマンド情報] フォルダ ※フォルダ名変更不可
    • 01_対象コマンドリスト.txt ※ファイル名変更不可
      • 各対象機器で実行するコマンドの設定
    • その他、コマンドリストを記載したファイル
  • [コマンド実行ログ] フォルダ
    • この中にログファイルが保存されます

[01_ログイン情報] の設定

[01_ログイン情報] フォルダ内フォルダ内のファイルでは、対象機器にログインするための情報を設定します。

例えば、「01_ホスト名.txt」には対象機器のホスト名を記載します。

#対象機器のホスト名を記載して下さい。n台目機器の情報は(n+1)行目に記載してください  ※この行は削除しないでください
Router01  ←1台目の対象機器のホスト名
Switch01  ←2台目の対象機器のホスト名

上のように、n台目の機器の情報は (n+1)行目に記載してください。このルールは他の設定ファイルでも同様です。

また、例えば対象機器の内1,3台目の機器はコンソールパスワードを設定しているが2台目の機器はコンソールパスワードを設定していないといった場合は「05_コンソールパスワード.txt」にて以下のように2台目の機器に対応する3行目は空白行にしてください。

#対象機器のコンソールパスワードを記載して下さい。n台目機器の情報は(n+1)行目に記載してください  ※この行は削除しないでください
admin
<3行目は空白行にする>
admin

さらに、対象機器のすべてで使用しないパラメータについては設定(対象ファイルの編集)をする必要はありません。例えばすべての機器がローカルユーザ認証の場合「05_コンソールパスワード.txt」「06_VTYパスワード.txt」を編集する必要はありません。

コンソールログイン及び Telnet ログイン時の認証方式が [ローカルユーザ認証/パスワード認証/認証無し] のどれかについては、マクロ処理の中で判定するためインプット情報での設定は不要です。

[02_コマンド情報] の設定

[02_コマンド情報] フォルダ内のファイルでは、対象機器別に実行するコマンドリストを設定します。

01_対象コマンドリスト.txt」では対象機器別に使用するコマンドリストファイルを指定します。

#対象機器で実行するコマンドリストを記載したファイルの名前を記載して下さい。n台目機器の情報は(n+1)行目に記載してください ※この行は削除しないでください
コマンドリスト-01.txt
コマンドリスト-02.txt

n台目の機器の情報は (n+1)行目に記載するというルールはログイン情報の設定ファイルと同様です。

上の例では、1台目の機器では「コマンドリスト-01.txt」を使用し、2台目の機器では「コマンドリスト-02.txt」を使用するという意味になります。

コマンドリスト-01.txt~コマンドリスト-05.txt」は、コマンドリストを記載したファイルです。これらのファイルには1行目から1行につき1コマンド実行したいコマンドを記載してください。

show clock
show running-config
show startup-config
show version

他の設定ファイルと異なり1行目に説明コメントは無いため、1行目から記載するようにしてください。

コマンドリストファイルは任意に追加することができます。ファイル名は「01_対象コマンドリスト.txt」内で記載するファイル名と合わせてもらえれば特に制限はありません。

terminal length 0」は最初に自動実行するためコマンドリストに含める必要はありません。

ページャー機能が有効のままだとマクロが正常に動作しません。対象機器がCisco ASAの場合は「terminal pager 0」をコマンドリストに含めてください。

コマンドリストを実行後、特権モードから ログアウトのために exit を自動で実行するため、ログアウトを目的とした exit はコマンドリストに含めないでください。

マクロ実行前に必要な設定は以上です。

ログの保存について

各機器へのログイン~コマンドリスト実行のログは自動で保存されます。
マクロを実行すると、マクロと同じフォルダ内に「コマンド実行ログ」フォルダが作成されます。
コマンド実行ログ」フォルダ内にログが保存されます。

作成されるログファイル名は以下のようになります。

  • <ホスト名>_yyyymmdd_HHMMSS.log

マクロのダウンロード

マクロはメンバーシップ内限定で以下ページにて共有しています。

Cisco 機器のコマンドログを取得する汎用的な Tera Term マクロを作成したので共有します

タイトルとURLをコピーしました