ネットワーク上級編 第6章 実践演習|自動化と可視化

当ページのリンクには広告が含まれています。
ネットワーク上級編|第6章 章末実践演習

このページは 「ネットワーク上級編|要件定義・設計・クラウド・自動化へ進む」 の第6章「自動化と可視化」の章末課題です。

第51回から第60回までに学んだ内容を使い、 ネットワーク運用を自動化・可視化するミニプロジェクトに取り組みます。

第6章 実践演習|自動化と可視化

Python、SSH、Ansible、REST API、JSON・YAML、Git、 テレメトリー、AIを組み合わせ、 「人が毎回手作業で確認しているネットワーク運用」を 自動化する方法を考える章末実践演習です。

対象レベル Level 4・上級
想定時間 60〜120分
出題範囲 第51〜60回
課題形式 ケーススタディ
成果物 自動化設計案

ネットワーク自動化で重要なのは、 PythonやAnsibleの文法を覚えることだけではありません。

「何を自動化するのか」「どの情報を取得するのか」 「失敗したときにどう止めるのか」「結果をどう確認するのか」 まで設計する必要があります。

この章末課題で確認すること

  • 自動化する業務を選定できる
  • Pythonによるデータ処理を考えられる
  • SSH・APIの使い分けを説明できる
  • JSON・YAMLを読み取れる
  • Ansibleの適用方法を考えられる
  • Gitによる変更管理を設計できる
  • テレメトリーの可視化項目を決められる
  • AIをログ調査の補助として利用できる

今回のケース

ケース:50台のネットワーク機器を管理する企業

あなたは、複数拠点を持つ企業のネットワーク運用を担当しています。 現在、ルーターやスイッチなど約50台を管理しています。

運用担当者は毎朝、各機器へログインしてCPU使用率、 インターフェース状態、経路情報などを確認しています。

現在の課題

  • 50台へ手作業でSSHログインしている
  • 確認結果をExcelへ転記している
  • 設定変更も機器ごとに実施している
  • 設定履歴の管理方法が統一されていない

最近発生した問題

  • 設定投入漏れが発生した
  • 障害時に過去設定との差分確認に時間がかかった
  • CPU高騰の発見が遅れた
  • 大量のログから原因候補を探すのに時間がかかった

上司から、 「ネットワーク運用を自動化して、障害を早く発見できる仕組みを検討してほしい」 と依頼されました。

目指す運用イメージ

ネットワーク機器 Router / Switch
SSH・API 情報取得・設定変更
Python・Ansible 自動処理
Git 変更履歴
可視化・AI 監視・分析

課題1自動化対象を選定する

次の作業について、自動化の優先度を 「高・中・低」で評価してください。

作業 頻度 現在の方法 自動化優先度
インターフェース状態確認 毎日 50台へSSHログイン ____
CPU使用率確認 毎日 50台へSSHログイン ____
NTPサーバー変更 年1〜2回 手作業で設定 ____
障害時のログ収集 不定期 手作業 ____
初めて導入する新機能の設定 非常に少ない 設計後に個別設定 ____

設問

  1. 最初に自動化する作業を2つ選んでください。
  2. その作業を選んだ理由を書いてください。
  3. 自動化によって発生する新しいリスクを1つ以上挙げてください。
自分の回答を書いてみましょう。
解答例を見る

優先度が高い候補は、 インターフェース状態確認、CPU使用率確認、障害時のログ収集 です。

毎日または障害のたびに繰り返す作業であり、 手作業による時間消費と確認漏れを減らしやすいためです。

一方、自動化には「誤った処理を多数の機器へ一括適用する」 リスクがあります。特に設定変更では対象機器の確認、 事前検証、バックアップ、停止条件を設計する必要があります。

課題2PythonでIPアドレスをチェックする

自動化対象機器として、次のIPアドレス一覧が渡されました。

192.168.10.1
192.168.10.2
192.168.10.300
10.10.1.1
10.10.1.2
172.16.5.10

設問

  1. 明らかに不正なIPアドレスを特定してください。
  2. Pythonで自動チェックする場合、どのような処理が必要でしょうか。
  3. 不正なアドレスを検出した場合、そのまま自動処理を継続すべきでしょうか。
不正なIPアドレス:__________
解答例を見る

192.168.10.300 はIPv4アドレスとして不正です。

Pythonでは、文字列を単純に分割して確認する方法もありますが、 IPアドレスとして解釈できるかを判定する仕組みを利用することで、 入力値の妥当性を確認できます。

設定自動化では、不正な入力値を検出した時点で処理を停止し、 管理者へ知らせる設計が安全です。

実務ポイント: 自動化では「正常時に動くこと」だけでなく、 異常な入力を受け取ったときに安全に止まれること が重要です。

課題3SSHによる情報取得を設計する

50台のネットワーク機器から、毎朝次の情報を取得することになりました。

  • ホスト名
  • CPU使用率
  • インターフェース状態
  • ルーティング情報
  • 現在時刻

設問

  1. SSH自動取得処理の流れを順番に整理してください。
  2. 1台だけ接続できなかった場合、残り49台の処理をどうしますか。
  3. 取得結果には、どの情報を追加して保存すると調査しやすくなりますか。
例:対象機器一覧を読み込む → 接続する → ____ → ____ → 結果保存
設計例を見る
  1. 対象機器一覧を読み込む
  2. IPアドレスなどの入力値を検証する
  3. SSH接続する
  4. 必要なコマンドを実行する
  5. 出力を取得する
  6. 取得日時と対象機器名を付けて保存する
  7. エラーの有無を記録する
  8. 次の機器へ進む
  9. 最後に成功・失敗を一覧化する

1台への接続失敗だけで全処理を終了すると、 残りの正常な機器の情報まで取得できなくなります。

そのため情報取得処理では、失敗機器を記録して次へ進み、 最後に失敗一覧を管理者へ通知する方式が考えられます。

課題4Ansibleによる設定変更を考える

全50台のネットワーク機器について、 NTPサーバーを次のように変更することになりました。

変更前:192.0.2.10
変更後:192.0.2.20

設問

  1. いきなり50台へ一括投入してよいでしょうか。
  2. 本番投入までの安全な流れを考えてください。
  3. 設定変更後に何を確認すべきでしょうか。
事前確認 → ____ → ____ → 本番投入 → ____ → 結果記録
解答例を見る

一例として、次の流れが考えられます。

  1. 対象機器と変更内容を確認する
  2. 現在設定をバックアップする
  3. 検証環境または少数機器で試験する
  4. 実行結果と設定差分を確認する
  5. 対象を段階的に拡大する
  6. 設定投入後のNTP同期状態を確認する
  7. 失敗機器を抽出する
  8. 変更結果をGitや作業記録へ残す

自動化ツールは、正しい操作を高速化できる一方、 誤った操作も高速かつ広範囲に実行できます。 対象範囲、事前検証、バックアップ、実行結果確認をセットで設計します。

課題5REST APIとJSONを読み取る

監視システムのREST APIから、次のJSONが返ってきました。

{
  "device": "RTR-TOKYO-01",
  "management_ip": "192.168.10.1",
  "status": "warning",
  "cpu": 87,
  "interfaces": {
    "GigabitEthernet0/0": "up",
    "GigabitEthernet0/1": "down"
  }
}

設問

  1. 対象機器名は何ですか。
  2. CPU使用率はいくつですか。
  3. Downしているインターフェースはどれですか。
  4. このデータを使い「CPUが80%以上なら警告する」処理を作る場合、どの値を参照しますか。
回答を書いてみましょう。
解答を見る
  • 機器名:RTR-TOKYO-01
  • CPU:87
  • Down:GigabitEthernet0/1
  • しきい値判定:cpu の値

追加課題:YAMLを読む

devices:
  - name: RTR-TOKYO-01
    ip: 192.168.10.1
    role: router

  - name: SW-TOKYO-01
    ip: 192.168.10.2
    role: switch

このYAMLには何台の機器が登録されていますか。 また、それぞれの役割を答えてください。

解答を見る

2台です。 RTR-TOKYO-01はrouter、 SW-TOKYO-01はswitchとして登録されています。

課題6Gitによる設定管理を設計する

現在は、ネットワーク機器の設定ファイルを 担当者のPCへ日付付きで保存しています。

RTR01_20260801.txt
RTR01_20260805.txt
RTR01_20260810.txt
RTR01_final.txt
RTR01_final2.txt
RTR01_new.txt

設問

  1. この管理方法にはどのような問題がありますか。
  2. Gitで管理すると、どのような情報を残せますか。
  3. コミットメッセージには何を書くべきでしょうか。
問題点・改善案を書いてみましょう。
解答例を見る

ファイル名だけでは、 「誰が・なぜ・何を変更したのか」が分かりにくくなります。

Gitを利用すると、変更前後の差分や変更履歴を確認しやすくなります。 コミットメッセージには、変更目的や対象を後から判断できる情報を残します。

例:
Change NTP server for Tokyo routers

- Target: RTR-TOKYO-01, RTR-TOKYO-02
- Old: 192.0.2.10
- New: 192.0.2.20
- Reason: NTP server migration

課題7テレメトリーを可視化する

ネットワーク機器から継続的に情報を収集し、 ダッシュボードへ表示することになりました。

候補となる監視データ

  • CPU使用率
  • メモリ使用率
  • インターフェース使用率
  • パケット破棄数
  • エラー数
  • インターフェースUp/Down

設問

  1. 折れ線グラフで継続的に確認したい項目を3つ選んでください。
  2. 即時アラートを発生させたい項目を2つ選んでください。
  3. 「正常時の値」を保存しておくことには、どのような意味がありますか。
ダッシュボードへ表示する項目と、その理由を書いてみましょう。
解答例を見る

CPU、メモリ、インターフェース使用率などは、 時系列で変化を見ることで負荷の上昇傾向を確認できます。

インターフェースDownや急激なエラー増加などは、 即時通知の対象として考えられます。

正常時の値を蓄積しておけば、 障害時に「通常と比べて何が変わったのか」を判断しやすくなります。

課題8AIを使ってログを調査する

次のようなログが大量に出力されているとします。

Aug 16 10:01:05 RTR-TOKYO-01 Interface Gi0/1 changed state to down
Aug 16 10:01:07 RTR-TOKYO-01 OSPF neighbor 10.0.0.2 changed from FULL to DOWN
Aug 16 10:01:08 RTR-TOKYO-01 Route 172.16.20.0/24 removed
Aug 16 10:01:12 RTR-TOKYO-01 Interface Gi0/1 changed state to up
Aug 16 10:01:18 RTR-TOKYO-01 OSPF neighbor 10.0.0.2 changed from INIT to FULL

設問1:時系列を整理する

何が最初に発生し、その後どのような変化が起きたか説明してください。

10:01:05 → __________________

設問2:AIへ依頼するプロンプトを作る

AIへこのログを渡して調査を補助させる場合、 どのような指示を出しますか。

AIへの指示文を書いてみましょう。
解答例を見る

最初にGi0/1がDownし、その直後にOSPFネイバーがDown、 経路が削除されています。その後Gi0/1がUpし、 OSPFネイバーもFULLへ復旧しています。

AIへの指示例:

以下はネットワーク機器のログです。

1. 発生時刻順に事象を整理してください。
2. 最初に発生した事象を特定してください。
3. 原因と結果を分けてください。
4. ログだけでは断定できない内容は「推測」と明記してください。
5. 次に確認すべきコマンドや情報を一覧化してください。

AIの回答だけで原因を確定しないことが重要です。

AIは大量ログの整理や仮説作成には利用できますが、 実際の構成、設定、インターフェース状態、通信経路などと照合して 技術者自身が判断します。

最終課題:ネットワーク運用自動化ミニプロジェクト

ここまでの内容を組み合わせて、 「50台のネットワーク機器を効率的に管理する仕組み」 を設計してください。

要件

  • 管理対象はルーター・スイッチ50台
  • 毎日、機器状態を自動取得する
  • 設定変更を複数機器へ安全に展開できる
  • 設定変更履歴を残す
  • CPUやインターフェース状態を可視化する
  • 異常発生時にログ調査を効率化する
  • 一部機器で処理に失敗しても状況を把握できる

成果物1:全体構成図

構成例

50台の機器 Router / Switch
SSH / REST API 取得・操作
Python / Ansible 自動化
Git 設定履歴
監視基盤 可視化・通知
自分の構成案を書いてください。

成果物2:処理フロー

毎日の情報取得処理を、開始から終了まで記述してください。

例: 対象機器一覧読込 → 入力チェック → SSH/API接続 → 情報取得 → データ整形 → ______ → ______

成果物3:異常時の処理

次のケースで自動処理をどうするか決めてください。

異常 処理方針
SSH接続失敗 ____________
APIからエラー応答 ____________
不正なIPアドレス ____________
設定投入失敗 ____________
CPU使用率90%以上 ____________

成果物4:利用技術の役割

技術 今回のシステムでの役割
Python ____________
SSH ____________
Ansible ____________
REST API ____________
JSON / YAML ____________
Git ____________
テレメトリー ____________
AI ____________
最終課題の設計例を見る
  • Python:取得データの整形、判定、ファイル生成など
  • SSH:CLIしか利用できない機器からの情報取得
  • Ansible:複数機器への設定展開や定型処理
  • REST API:対応機器・システムとの構造化されたデータ連携
  • JSON / YAML:APIデータや自動化設定の記述
  • Git:設定ファイルや自動化コードの変更履歴管理
  • テレメトリー:機器状態を継続的に収集し可視化
  • AI:大量ログの整理、異常候補の抽出、調査観点の補助

自己採点|100点満点

コードが完璧に書けるかではなく、 安全に自動化する設計を説明できるか を中心に評価してください。

評価項目 配点 確認ポイント
自動化対象の選定 10点 頻度・作業量・リスクを考慮している
データ入力チェック 10点 不正値を検出して安全に停止できる
SSH・API設計 15点 取得方法と失敗時処理を考えている
Ansible設計 15点 一括変更のリスクを考慮している
Gitによる変更管理 10点 変更理由・差分を追跡できる
可視化設計 15点 監視項目としきい値を説明できる
AIログ調査 10点 AIの結果を鵜呑みにしない設計になっている
異常時・安全設計 15点 停止条件、バックアップ、エラー処理を考えている

80点以上: 第6章の内容を実務レベルで整理できています。 第7章「設計・提案・ケーススタディ」へ進みましょう。

第6章 修了チェック

  • ネットワーク自動化の目的を説明できる
  • PythonでIPアドレスなどのデータを処理する考え方が分かる
  • SSHで複数機器から情報を取得する流れを説明できる
  • Ansibleによる一括設定のメリットとリスクを説明できる
  • REST APIの基本的な処理の流れを説明できる
  • JSONとYAMLの構造を読み取れる
  • Gitでネットワーク設定を管理する目的を説明できる
  • テレメトリーで何を監視・可視化するか決められる
  • AIをログ調査の補助として安全に利用できる
  • 自動化処理の失敗時動作まで設計できる

まとめ

  • 自動化は「繰り返し作業を減らす」だけではなく、品質をそろえるためにも利用できる
  • Pythonはデータ処理や判定、設定生成など幅広い自動化に利用できる
  • SSHとREST APIは、対象機器や目的に応じて使い分ける
  • Ansibleでは複数機器へ同じ処理を展開できるが、誤設定の影響範囲にも注意する
  • JSON・YAMLは自動化やAPI連携で頻繁に使用される
  • Gitを利用すると設定やコードの変更履歴を追跡しやすくなる
  • テレメトリーでは継続的なデータを収集し、正常時との差を可視化する
  • AIはログ整理や仮説作成を補助できるが、最終判断は技術者が行う

自動化で最も重要なのは、処理を速くすることではありません。 正しい対象へ、正しい処理を、安全に繰り返せる仕組みを作ることです。

次は第7章:設計・提案・ケーススタディへ

第6章では、ネットワーク運用を自動化・可視化するための技術を学びました。

次の第7章では、これまで学んだ技術を 基本設計書、詳細設計書、構成比較、設計レビュー、 移行計画、顧客説明といった 実際の設計・提案業務へつなげていきます。

ネットワーク上級編|第6章 修了

第6章では、Python・SSH・Ansible・API・Git・テレメトリー・AIを、 個別の技術ではなく「ネットワーク運用を改善する仕組み」として学びました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次