ネットワーク機器構成を操作するためのcBackupアプリケーションを(構成バックアップから)作成しました。 構成を直接バックアップすることに加えて、バージョン間の変更を追跡することができます。これは、障害から回復するときに問題の原因を特定するのに役立ちます。 cBackupはオープンソースであり、無料で配布されます。これには、さまざまなネットワークデバイスをサポートするための個別にダウンロード可能なテンプレートが含まれます。
誰のため?
cBackupは、NOCプロジェクトのようなヘビー級を必要としない管理者のために管理者によって開発されました。 私たちの作業では、数千のスイッチとルーターを管理しているため、ネットワーク構成を適切な順序で維持することが不可欠です。 したがって、仕事の基本原則には非常に具体的な類似点があります。発見は、ネットワークインフラストラクチャの監視システムの場合と同様です。 ほとんどのセクションですでに用語が使用されている場所。 crontabなどのスケジュール管理。
すでに何がありますか?
現在のバージョンは、tar.gzアーカイブとしてダウンロードできるだけでなく、rpmおよびdebパッケージでもダウンロードできます。 利用可能なドキュメント。 このシステムはもともとLinux用に設計されたものですが、公式のサポートはまだありませんが、Windowsで実行できます。 パッケージをインストールまたは準備されたサーバーに展開した後、Webインストーラーを使用してシステム自体のインストールを実行する必要があります。 ドキュメントでは、このプロセスを可能な限り徹底的にカバーしているため、PRハブの資料の枠組み内でインストールと操作を説明することはありません。 リクエストがある場合は、プロファイルハブの別の記事で技術面とユーザーケースについて説明します。
アーキテクチャを簡単に説明すると、cBackupインターフェースは、Spring Bootを使用してJava 8で記述されたデーモンを備えたYii2フレームワークで記述されたWebアプリケーションです。 MySQLはデータベースとして使用され、Gitはバージョン管理に使用されます。 1200のスイッチとルーターを処理するシステムは、2つのコアと2ギガバイトのRAMを備えた仮想マシンで、30ストリームで構成、STP、およびジオマップを収集するタスクを処理します。 ハードディスク領域も経済的に使用されます。1年間の使用では、データを含むアプリケーションフォルダーは350 MB、データベースは35 MB必要です。
cBackupは無料で、Affero GPL v3ライセンスの下でライセンスされています。 ベンダーとデバイスをサポートするプラグイン、アップデート、ダウンロード可能なコンテンツも無料です。 現時点では、システムインターフェイスは英語とロシア語をサポートしています。 隠れた支払い、機能制限、マイクロトランザクションはなく、計画されていません。 ただし、私たちのチームは、展開に関する協力、SLAとのビジネスの公式サポート、および個人の開発を含む企業サポートの要請に対してオープンです。
サブネットと機器の登録、新しいデバイスの自動検索
cBackupは、手動で事前定義されたノードのリストに従って動作し、指定されたサブネット上を歩いて、インストールされたデバイスを検出します(検出)。 それとは別に、任意のプロセスおよびタスクからアドレスを除外できます。 ハードウェアサポートは、公式リポジトリからダウンロードおよびインストールされます。 バックアップのあるサーバーが分離されたネットワークにあり、インターネットにアクセスできない場合は、手動でファイルをアップロードするか、新しい機器のサポートを自分で追加できます。
サブネットと機器のレジストリの管理自体は非常に高度に思えるかもしれませんが、さまざまなベンダーと協力した後、私たちは誰もがプロトコルとプロセスで何らかのチップを思いつくようにしました。 また、STPについてでさえも、その実装は昼夜によって異なる場合がありますが、SSHを介したコマンドラインでの平凡な作業についてです。 したがって、インフラストラクチャ管理は非常に詳細であり、個々のモデルおよび/またはベンダーのプラグインおよびファクトリを作成する機能を提供し、あらゆる段階でデバイスまたはモデルとの相互作用を再定義します。
バックアップ構成
ノードと対話するための直接的なタスクは、マルチスレッドモードで動作するシステムサービスに割り当てられます。 サービスはJavaの実行可能ファイルであり、システムcrontabは使用せず、その機能のみを使用します。 デーモンはRESTful APIを介してシステムのコアと通信し、理論的には、必要に応じて別のサーバーに転送することもできます。 エンドデバイスとの相互作用は、受信データの処理を伴うコマンドシーケンスの形式で配置され、Telnet、SSH、およびSNMP v1 / v2プロトコルを使用して実装できます。
バージョン管理システム
私たちの主な目標の1つは、災害復旧の一部としてバックアップから構成を読み取って復元する機会だけでなく、問題を見つけるための構成を持つfakapの場合にも機会を与えることでした。 かなりの数のオペレーターが機器を操作しているため、変更の検索とローカライズは私たちにとって非常に重要なタスクでした。 一般に、システムのGitには、構成のバージョン管理、システムの更新、機器とベンダーのサポートのダウンロードと更新など、非常に多くの機能が委ねられています。
プラグインとAPI
私たちは、すべてのシステムがその仕事をするべきだと確信しています。 したがって、ソフトウェアの名前に「バックアップ」という単語が含まれている場合は、まず実際のバックアップ自体を処理する必要があります。 それ以外はすべてオプションです。 cBackupにはプラグイン接続機能が実装されていますが、現時点ではそのうちの2つだけです。OIDsystem.sysLocation.0の情報に基づいてマップ上にノードを配置し、STPツリーをレンダリングします。 実際のニーズと要求がある場合は、必要な機能を喜んで追加します。 これには、cBackupを他のサービスと統合できるAPIも含まれます。
どうなるの?
当初、このプロジェクトは「内部のニーズのために」書かれたものであり、本質的にスイッチ構成を保存するための自己作成ユーティリティのゼロからのリメイクでした。 リファクタリングのプロセスですでに、プロジェクトが私たちのネットワークの外で役に立つかもしれないという考えが生まれました。 このシステムは、普遍性に注目した多くの新しいチップで大きくなりすぎており、多言語とより深刻なドキュメントを受け取り、現在では公開されています。
開発計画があり、私の背後にあるボードには、今後のバージョンのロードマップがあります。 しかし、cBackupは現在すべてのニーズをカバーしているので、誰かがこのソフトウェアを使い始めたらコミュニティとユーザーの希望を聞きたいと思います。 要望や質問は、メール、フォーラム、Githubの課題トラッカー、Discordのチャットに残すことができます。
実装のためのキューの主要な機能には、SNMP v3サポート、IPv6サポート、指定されたルールによる構成の検証、外部データベースまたはAPIからのノードのインポートがあります。 サポートされている機器のリストの補足は、ユーザーの要求に応じて「作業中」に実行されます。幸いなことに、インストールされたシステムを更新する必要はありません。 誰もMikroTikより大きいトリックを思い付かないことを期待して、このプロセスをスムーズにしようとします。 また、プラグインと彼を提供するデーモンのアーキテクチャの変更も計画されています。