このページの内容

Awesome SNMP

SNMPを扱う資料や関連プロジェクトをまとめたAwesomeリストです。

目次

ライブラリ

SNMPアプリケーションの開発に役立ちます。

C/C++

  • net-snmp - SNMPプロトコル(v1、v2c、v3、およびAgentXサブエージェントプロトコル)の利用と導入のためのソフトウェアスイート。Pythonバインディングも含みます。
  • SNMP++ - HPによるBSDライセンスのSNMP実装。SNMP v1/2c/v3、スレッドセーフなど多くの機能に対応します。
  • AGENT++ - SNMPエージェント開発向けに、SNMP v1/2c/3の完全な3バージョン対応プロトコルエンジンとディスパッチャーを提供するAGENT++ C++フレームワーク。Apacheライセンスです。
  • AgentX++ - AGENT++へAgentXマスターおよびサブエージェント対応を追加する、AgentXプロトコル(RFC 2741)の完全な実装を提供するC++フレームワーク(Commercial)。
  • openSNMP - BSDライセンスのマルチスレッドSNMPv3実装。

C#

  • C# SNMP Library - SNMP標準を幅広くサポートし、最新の.NETプラットフォームを対象とする、豊富なマネージャー/エージェント例を備えたMITライセンスの.NET用SNMPライブラリ。
  • SNMP Pro - エンタープライズMIB対応を追加する商用拡張。
  • SnmpSharpNet - C#で書かれたSimple Network Management Protocol(SNMP)用.NETライブラリ。プロトコルバージョン1、2、3を実装しています。

Erlang

  • Erlang/OTP SNMP - Erlang/Open Telecom Platform開発環境のコンポーネントとしてSNMP開発機能が含まれています。

Go

  • gosnmp/gosnmp - Goで書かれたSNMPライブラリ。Get、GetNext、GetBulk、Walk、BulkWalk、Set、Trapsを提供し、IPv4/IPv6とSNMP v1/v2c/v3に対応します。
  • sleepinggenius2/gosmi - Go言語のMIBパーサー。
  • posteo/go-agentx - AgentXプロトコルを純粋なGoで実装したライブラリ。

Java

  • SNMP4J - Java™向けのエンタープライズクラスで、無償かつオープンソースの最新SNMP v1/2c/v3実装。
  • SNMP4J-Agent - SNMPエージェント(コマンドレスポンダー)開発用に、コアSNMP4J API上へ構築されたJava™ API。
  • joeSNMP - LGPLで公開されているオープンソースのJava SNMPクラスライブラリ。
  • Westhawk’s SNMP - SNMP v1/v2c/v3で利用できるオープンソースJavaライブラリ。トラップ、認証、プライバシーをサポートし、認証プロトコルとしてMD5とSHA1を提供します。
  • mibble - Java向けのオープンソースSNMP MIB(またはSMI)パーサーライブラリ。

JavaScript

  • node-net-snmp - Simple Network Management Protocol(SNMP)のJavaScript実装。バージョン1、2c、3を実装します。
  • node-snmp-native - Node.js向けネイティブJavaScript SNMPライブラリ。
  • node-snmpjs - Node.jsのSNMPエージェントおよび管理アプリケーション向けツールキット。
  • snmp-node - Node.js向けネイティブJavaScript SNMPライブラリ。

Lua

  • luasnmp - net-snmpライブラリのLuaバインディング。

PHP

Python

  • pysnmp - 2-clause BSD licenseで配布される、純粋なPython製のオープンソースかつ無償のv1/v2c/v3 SNMPエンジン実装。
  • pysmi - SNMP SMI MIBパーサーの純粋なPython実装。
  • gufo_snmp - 非同期・同期の両モードに対応する高速Python SNMPクライアントライブラリ。PyO3ラッパーを用いてRustで実装された、高効率なBERパーサーとソケットI/O向けの明快なPython APIで構成されます。プロジェクトのライフサイクルはまだ初期段階に見えますが、使いやすく、特に多数のデバイスへ問い合わせる場合は___非常に___高速です。GitHub last commit
  • net-snmp Python bindings - Net-SNMP 5.4以降には「python」サブディレクトリにPythonバインディングが含まれますが、既定ではビルドされません。GitHub last commit
  • easysnmp - ライブラリへよりPythonらしいインターフェースをもたらすことを目指したnet-snmp Python bindingsのフォーク。GitHub last commit
  • puresnmp - 依存関係のない純粋なPython 3製SNMPv2ライブラリ。GitHub last commit
  • snimpy - SNMPクエリを構築するための簡潔なインターフェースを提供するPythonベースのツール。GitHub last commit
  • python-netsnmpagent - Pythonでnet-snmpサブエージェントを作成できるパッケージ。GitHub last commit
  • hnmp - ネットワークスイッチ、ルーター、プリンターなどSNMP対応デバイスからのデータ取得と処理を容易にする高レベルPythonライブラリ。GitHub last commit
  • aiosnmp - asyncioで使用する非同期SNMPクライアントPythonパッケージ。SNMP v2cのみ対応します。GitHub last commit
  • robotframework-snmplibrary - SNMPをテストするためのRobot Frameworkテストライブラリ。GitHub last commit
  • Scapy - パケット操作プログラム兼ライブラリ。SNMPパケットを構築・解析するためのモジュールがあります。GitHub last commit

Ruby

  • ruby-netsnmp - Ruby用SNMPライブラリ(v1、v2c、v3)。

Rust

  • snmp-parser - nomパーサーコンビネーターフレームワークを使ってRustで書かれたSNMPパーサー。
  • davedufresne/modern_snmp - SNMPv3向けの純粋なRust製ライブラリ。このリポジトリにはsnmp_mp(SNMPv3 Message Processing)とsnmp_usm(SNMPv3用User-based Security Model(USM)の実装)crateが含まれます。
  • Svedrin/sunt - Rustで書かれたSNMPエージェントの実装。

⬆ トップへ戻る

ツール

SNMPをより簡単に扱うためのツールです。

CLI

  • net-snmp tools - ここに掲載するアプリケーションはnet-snmpの一部です。
    • encode_keychange - SNMPv3用のKeyChange文字列を生成します。
    • snmptranslate - MIB OID名を数値形式とテキスト形式の間で変換します。
    • snmpget - SNMP GETリクエストを使ってネットワークエンティティと通信します。
    • snmpgetnext - SNMP GETNEXTリクエストを使ってネットワークエンティティと通信します。
    • snmpbulkget - SNMP GETBULKリクエストを使ってネットワークエンティティと通信します。
    • snmpwalk - SNMP GETNEXTリクエストを使って管理値のサブツリーを取得します。
    • snmpbulkwalk - SNMP GETBULKリクエストを使って管理値のサブツリーを取得します。
    • snmpset - SNMP SETリクエストを使ってネットワークエンティティと通信します。
    • snmptest - SNMPリクエストを使ってネットワークエンティティと通信します。
    • snmptable - SNMPテーブルを取得し、表形式で表示します。
    • snmpdelta - SNMP Counter値の差分を監視します。
    • snmpusm - SNMPv3のUser-based-securityユーザーテーブルを操作します。
    • snmpvacm - SNMPv3のView-based-access-control-module設定テーブルを操作します。
    • snmpstatus - ネットワークエンティティから所定の管理情報を取得します。
    • snmpnetstat - SNMP経由でネットワークエンティティのネットワーク状態と設定情報を表示します。
    • snmpdf - SNMPから収集した情報を使用し、Unixのdfツールのようにディスク情報を表示します。
    • snmptrap - SNMP TRAPまたはINFORM通知メッセージを送信します。
    • snmpinform - INFORM通知メッセージを送信します。snmpinformコマンドは機能的にsnmptrap -Ciと同じです。
    • snmptrapd - SNMP TRAPまたはINFORMを待ち受け、ログ記録や処理を行うSNMPデーモン。
    • traptoemail - SNMPトラップをメールへ変換するsnmptrapdハンドラースクリプト。
    • net-snmp-config - インストール済みのnet-snmpライブラリとバイナリに関する情報を返します。
    • snmpconf - SNMP設定ファイルを作成・変更します。
    • fixproc - 指定したアクションを実行してプロセスを修復します。
    • snmpd - 指定したホストへのSNMPリクエストに応答するSNMPエージェント。
    • mib2c - MIB構造をCコードなど別の形式へ変換できるMIB変換ユーティリティ。
    • mib2c-update - 更新されたmib2cコードへカスタムコードをマージするスクリプト。
  • SNMP4JCLT - SNMP4J Command Line Tool(CLT)を使用し、IPv4またはv6ベースのUDP、TCP、TLSv1,2トランスポートで対象へSNMPv1/v2c/v3リクエストとトラップを送信します(Commercial)。
  • libsmi tools - libsmi上に構築され、libsmiディストリビューションへ統合されたアプリケーションとsh/awkスクリプト。
    • smilint - MIBまたはPIBモジュールの構文エラーと一定範囲の意味を検査します。SMIv1/v2形式のMIBモジュールとSPPI PIBモジュールに対応します。
    • smidump - MIB/PIBコンパイラー。モジュールの内容をSMIv1、SMIv2、SMIng、SPPI、Import Trees、Type Definition Trees、OID Node Trees、MOSY Style、JIDM仕様に基づくCORBA IDL定義など多様な形式で出力できます。
    • smidiff - MIBモジュールの2つのリビジョンを解析し、旧版から新版への変更を分析するツール。
    • smiquery - MIB/PIBクエリ用フロントエンド。コマンドラインから個別の項目を問い合わせられます。
    • smistrip - RFCやInternet Draftなどの文書からMIBおよびPIBモジュールを抽出できる簡潔なshell/awkスクリプト。
  • snmpsim - 2-clause BSD licenseで配布される、純粋なPython製のオープンソースかつ無償のSNMPエージェントシミュレーター実装。
  • snmpfwd - 組み込みSNMPメッセージルーターを備え、アプリケーションレベルのプロキシとして動作するSNMP Proxy Forwarder。一般的な用途は、アプリケーションレベルのファイアウォール、またはSNMPv1/SNMPv2cエンティティへのSNMPv3アクセス(およびその逆)を可能にするプロトコル変換器です。
  • snmpclitools - 純粋なPythonで書かれたコマンドラインSNMPツール集。著名なNet-SNMP版を模倣し、snmpget.py、snmpset.py、snmpwalk.py、snmpbulkwalk.py、snmptrap.py、snmptranslate.pyを含みます。詳細はこちらを参照してください。
  • snmpwn - SNMPv3のユーザー列挙・攻撃ツール。
  • trapperkeeper - SNMPトラップを取り込み、表示するためのツールスイート。snmptrapdの代替となり、既存のステートフル監視ソリューションを補完するよう設計されています。
  • SNMP Trap Translator - Net-SNMP / UCD-SNMPのsnmptrapdプログラム(www.net-snmp.org)で使用する、Perl製SNMPトラップハンドラーSNMPTT(SNMP Trap Translator)。
  • prometheus/snmp_exporter - Prometheusが取り込める形式でSNMPデータを公開するための推奨エクスポーター。
  • trailofbits/onesixtyone - 高速SNMPスキャナー。
  • SECFORCE/SNMP-Brute - 高速なSNMPブルートフォース、列挙、CISCO設定ダウンロード、パスワード解析スクリプト。
  • hatlord/snmpwn - SNMPv3ユーザー列挙・攻撃ツール。
  • zabbix-tools/mib2zabbix - SNMP MIBファイル内のOIDツリーから、Zabbix v3 TemplateをXML形式で生成するPerlスクリプト。
  • OIDrage - 任意のsnmpwalk出力を基にする軽量なスタンドアロンSNMPd模倣サーバー。数千台のサーバーのモックへ容易に拡張できます。

GUI

  • tkmib - SNMP向けの対話型Perl/TkグラフィカルMIBブラウザー。
  • agentpp/MIB Designer - MIB Designerを使ってSMI仕様を作成、編集、管理、探索します(Commercial)。
  • agentpp/MIB Explorer Pro - MIB Explorerを使ってSNMPv1/2c/3エンティティを参照、設定、テストとデバッグ、監視、検出します。
  • sharpsnmp/SNMP Pro - VS Code内のクロスプラットフォームMIB Designer/Compiler/Browser、v1/v2c/v3の完全対応、MIB/SMI v1・v2対応、エミュレーター、AIツール向けMCPブリッジを備えた最新SNMP製品群。商用およびオープンソースの.NETライブラリも含まれます。
  • paessler/snmptester - SNMP監視設定における通信またはデータの問題を見つけるため、SNMPの動作をデバッグできるWindows用ツール。
  • ireasoning/MIB Browser - 標準MIB、独自MIB、さらに一部の不正な形式のMIBを読み込めます。SNMPリクエストを発行してエージェントのデータを取得したり、エージェントを変更したりできます。個人利用は無料です。
  • ireasoning/SNMP Agent Simulator - SNMPv1/v2c/v3エージェントをシミュレートできる、Javaベースの無料SNMP Agent Simulatorアプリケーション。
  • Visual SNMP - SNMPエージェントへのアクセスをテストする簡潔なツール。現在は機能に一部制限があるものの、SNMPGETとSNMPWALKに対応しています。
  • muonics/Online MIB validator - MIB Smithy SDKを基にした無料オンラインMIB/PIBバリデーター。
  • toni-moreno/snmpcollector - Web管理インターフェースを備えた高機能な汎用オープンソースSNMPデータコレクター。SNMPプロトコルに対応する任意のデバイスからデータを取得する設定を簡素化し、結果をInfluxDBバックエンドへ送ることを主目的とします。
  • Unbrowse SNMP - 難解なMIBファイルを分かりやすいGUI表示へコンパイルし、デバイス上のMIB変数の取得・設定、snmpwalkダンプのインポート、トラップ受信、カウンターのグラフ化などを行えるツール。
  • TWSNMP FK - ネットワークマッピング、ポーリング、AI分析を備えたWindowsおよびMac OS向け超軽量SNMPマネージャー。

⬆ トップへ戻る

出版物

ハウツー、チュートリアル、ブログ記事、ドキュメント、書籍。

書籍

RFC

  • rfc1098 - Simple Network Management Protocol(バージョン1)。
  • rfc1155 - 管理情報の構造と識別。
  • rfc2578 - 管理情報構造バージョン2(SMIv2)。
  • rfc2741 - Agent Extensibility(AgentX)Protocolバージョン1。
  • rfc2742 - 拡張可能なSNMPエージェント用管理対象オブジェクトの定義。
  • rfc3410 - インターネット標準管理フレームワークの概要と適用可能性に関する声明。
  • rfc3411 - Simple Network Management Protocol(SNMP)管理フレームワークを記述するアーキテクチャ。
  • rfc3412 - Simple Network Management Protocol(SNMP)のメッセージ処理とディスパッチ。
  • rfc3413 - Simple Network Management Protocol(SNMP)アプリケーション。
  • rfc3414 - Simple Network Management Protocol(SNMPv3)バージョン3のUser-based Security Model(USM)。
  • rfc3415 - Simple Network Management Protocol(SNMP)のView-based Access Control Model(VACM)。
  • rfc3416 - Network Management Protocol(SNMP)プロトコル操作のバージョン2。
  • rfc3417 - Simple Network Management Protocol(SNMP)のトランスポートマッピング。
  • rfc3418 - Simple Network Management Protocol(SNMP)のManagement Information Base(MIB)。
  • rfc3584 - インターネット標準Network Management Frameworkのバージョン1、2、3の共存。
  • rfc3826 - SNMP User-based Security ModelのAdvanced Encryption Standard(AES)暗号アルゴリズム。
  • rfc4088 - Simple Network Management Protocol(SNMP)のUniform Resource Identifier(URI)スキーム。
  • rfc5343 - Simple Network Management Protocol(SNMP)のContext EngineID Discovery。
  • rfc5590 - Simple Network Management Protocol(SNMP)のトランスポートサブシステム。
  • rfc5591 - Simple Network Management Protocol(SNMP)のトランスポートサブシステム。
  • rfc5592 - Simple Network Management Protocol(SNMP)のSecure Shell Transport Model。
  • rfc7630 - SNMPv3用User-based Security Model(USM)のHMAC-SHA-2認証プロトコル。

チュートリアル

  • net-snmp tutorials - SNMPプロトコルの基礎からnet-snmpライブラリを使ったSNMPアプリケーションやエージェントの実装まで、さまざまなチュートリアルを掲載するWikiページ。

⬆ トップへ戻る

公開サーバー

  • snmp.ireasoning.com - テスト目的で利用できる無料の公開SNMPエージェント。

⬆ トップへ戻る

MIBリポジトリ

  • hsnodgrass/snmp_mib_archive - 3,000を超える固有のSNMP MIBのアーカイブ。
  • kcsinclair/mibs - SNMPで使用される別のMIBコレクション。全一覧を確認するにはリポジトリをcloneしてください。
  • mibdepot.com - SNMPコミュニティ向け無料サービス。MIB辞書と、12,000を超えるSNMP MIBおよび1,800,000を超えるMIBオブジェクト定義を収録した業界独自の検索エンジンを提供します。
  • oid-info.com - Object Identifier(OID)に関する情報を収集し、その情報を表示、更新、検索するツールを提供するOIDリポジトリ。
  • michaelfmcnamara.com - Michael McNamaraが手作業で厳選したMIB一覧。
  • snmplink.org/OnLineMIB - 組み込みMIBビューアーでMIB一式のドキュメントを表示するウェブサイト。
  • oidview.com/mibs - さまざまなベンダーによる7,000を超える固有のMIBを収録するリポジトリ。

⬆ トップへ戻る

その他

このリストに属するものの、分類が難しい項目。

  • SNMPLink.org - SNMP、MIB(Management Information Base)、ネットワーク管理、ネットワーク監視に関するリンクと情報を提供します。
  • SNMPTools.net - SNMPアプリケーション、ツールキット、ゲートウェイ、シミュレーター、MIBブラウザーなどに関するリンクと情報を提供します。

⬆ トップへ戻る

貢献

まず貢献ガイドラインに簡単に目を通してください。すべての貢献者に感謝します。