Ubuntuでのsnmpのインストール、構成、起動、およびリモートテストの完全なプロセス


0.説明
       
完全なチュートリアルについては、やはりその言葉です.国内のものは不完全なのか、古いのか、考え方もはっきりしていないので、ここでは完全なものを書いて皆さんに共有してください. 
Linuxホストのモニタリングは特定のコマンドを実行することで完了できますが、その後よりもsnmpでLinuxホストの情報を取得するほうが簡単ですが、使用前の構成には少し時間がかかるかもしれません.これは絶対に価値があります.また、Linuxホストのモニタリングソフトウェアを開発する必要がある場合は、snmpを使用するのが第一選択に違いありません.結局、情報が多すぎます.
Ubuntuでのsnmpのインストール、構成、起動、リモートテストの完全な手順について説明します.
ここで使用するオペレーティングシステムは、Ubuntu 15.10
1.インストール
次の3つのパッケージをインストールする必要があります.
  • snmpd:snmpサービスエンドソフトウェア
  • snmp:snmpクライアントソフトウェア
  • snmp-mibs-downloader:ローカルmibライブラリを更新するためのソフトウェア
  • をダウンロード
    最後に別のホストでリモートテストを行いますが、最初はサービス側でもsnmpクライアントソフトウェアをインストールして、基本的なテストをしやすいです.
    次の3つのソフトウェアをインストールします.
    ubuntu@leaf:~$ sudo apt-get install snmpd snmp snmp-mibs-downloader

    snmp-mibs-downloaderをインストールする過程で、プログラムはmibライブラリを自動的にダウンロードし、/usr/share/mibsディレクトリに保存します.
    ubuntu@leaf:/usr/share/mibs$ ls
    iana  ietf

    ディレクトリやファイルがない場合は、snmp-mibs-downloaderをインストールした後、以下のコマンドを手動で実行してmibライブラリをダウンロードすることもできます.
    ubuntu@leaf:~$ sudo download-mibs

    出力情報がたくさんあります.
    これで、最初のインストール作業も完了します.
    2.構成
    実はsnmpdソフトウェアをインストールした後、システムは私たちのために自動的にこのサービスを開始しました.
    ubuntu@leaf:~$ sudo service snmpd status
     * snmpd is running

    構成を開始する前に、サービスが正常かどうかを確認するための簡単なテストを行います.
    ubuntu@leaf:~$ snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1
    iso.3.6.1.2.1.1.1.0 = STRING: "Linux leaf 4.2.0-34-generic #39-Ubuntu SMP Thu Mar 10 22:13:01 UTC 2016 x86_64"

    問題なく、情報が戻ってきたら、次は直接いろいろな構成を行いますが、構成を開始する前にプロファイルをバックアップしておきます.
    ubuntu@leaf:~$ cd /etc/snmp
    ubuntu@leaf:/etc/snmp$ sudo cp snmpd.conf snmpd.conf.ori
    ubuntu@leaf:/etc/snmp$ ls snmpd*
    snmpd.conf  snmpd.conf.ori

    もちろん、後述するSNMPv 2を使用していますが、これはすでに私たちのニーズを満たすことができます.
    (1)ノードの構成
    変更/etc/snmp/snmpd.confファイルは、約45行で、次の2行を注釈します.
    view   systemonly  included   .1.3.6.1.2.1.1
    view   systemonly  included   .1.3.6.1.2.1.25.1

    次の行を追加します.
    view   systemonly  included   .1

    これにより、上記の2つの注釈が含まれているノードに含まれる情報にすぎないため、より多くのノード情報を取得することができます.
    変更後、snmpサービスを再起動し、コマンドを使用して観察します.
    ubuntu@leaf:/etc/snmp$ sudo service snmpd restart
    xpleaf@leaf:/etc/snmp$ snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4.3.0
    iso.3.6.1.4.1.2021.4.3.0 = INTEGER: 1950716

    OK、問題ない!しかし、注意しなければならないのは、ここ.1.3.6.1.4.1.2021.4.3.0はLInuxホストの交換空間の総量の1つのノードを表して、1950716を出力して、私達のホストの上の交換空間の総量が大体2 GBぐらいであることを説明します.
    (2)MIBライブラリの構成
    上記では正常に情報を取得できますが、出力結果が直感的ではありません.この場合、MIBライブラリを構成すればいいのですが、この構成はクライアントソフトウェアの構成です(ただし、今は同じサーバホスト上で操作しています).
    変更/etc/snmp/snmp.confプロファイルでは、次の行をコメントします.
    mibs :

    次にsnmpサービスを再起動し、コマンドで観察します.
    ubuntu@leaf:/etc/snmp$ sudo service snmpd restart
    ubuntu@leaf:/etc/snmp$ snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.4.3.0
    UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB

    見ることができて、今の出力はとても直感的です!その後、実際には、関連ノード情報を取得する際に、その長い列の数字を入力する必要はありません.
    ubuntu@leaf:/etc/snmp$ snmpwalk -v 2c -c public localhost memTotalSwap.0
    UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB
    ubuntu@leaf:/etc/snmp$ snmpwalk -v 2c -c public localhost memTotalReal.0
    UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 8093524 kB

    実はこのようにして、あなたもsnmpを使うのがどんなに強いことを発見することができます!MIBライブラリのノード値については、どこから来たのか、覚える必要はありません.ネットで探してもいいし、私がまとめたブログを見てもいいです.「linux snmp常用ノード値」も、私のブログで探すことができます.http://xpleaf.blog.51cto.com.もちろん、どういう意味か知りたいなら、なぜこのように定義するのか、私はあなたに関連する専門の本を読むことをお勧めします.いいお勧めは「TCP/IP詳細解巻1:プロトコル」です.もしネットの基礎があまりよくなければ、勉強してもいいです.
    サーバ側で構成とテストを行うだけで、クライアント(別のホスト)で完了するはずですが、ここでは便宜上だけです.
    (3)共同体の配置
    実は共同体とは、それをパスワードとして理解すればいいのですが、前にsnmpwalkコマンドを使用してホストの情報を取得するときに、-c publicのパラメータがあります.実はこの共同体をpublicと指定しています.これはデフォルトの構成です.もちろん、実際にはデフォルトの値を使用することはできません.そのため、修正する必要があります.
    プロファイルの変更/etc/snmp/snmpd.conf、52行くらいで、次の2行を:
    rocommunity public  default    -V systemonly
    rocommunity6 public  default   -V systemonly

    次のように変更します.
    rocommunity xpleaf123  default    -V systemonly
    rocommunity6 xpleaf123  default   -V systemonly

    では、ここで共同体をxpleaf 123に変更し、snmpサービスを再起動し、コマンドで観察します.
    ubuntu@leaf:/etc/snmp$ snmpwalk -v 2c -c public localhost memTotalReal.0
    Timeout: No Response from localhost
    ubuntu@leaf:/etc/snmp$ snmpwalk -v 2c -c xpleaf123 localhost memTotalReal.0
    UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 8093524 kB

    コミュニティを更新したため、古いpublicは使用できません.そうしないと、認証に失敗してsnmpが提供するホスト情報を取得できません.
    (4)リモートホストアクセス許可
    デフォルトでは、snmpサービスはローカルにのみオンになっており、ホストのsnmp情報をリモートで取得することはできません.
    ubuntu@leaf:/etc/snmp$ sudo netstat -antup | grep 161  
    udp        0      0 127.0.0.1:161           0.0.0.0:*                           11615/snmpd

    161ポートは本機のみに開放されている(161ポート番号はsnmpサービスのポート番号)ことがわかりますが、snmpサービスを公開するように修正する必要があります.
    変更/etc/snmp/snmpd.confプロファイルは、約15行で、次の行をコメントします.
    agentAddress  udp:127.0.0.1:161

    次の行のコメントも削除します.
    #agentAddress udp:161,udp6:[::1]:161

    snmpサービスを再起動し、コマンドで観察します.
    ubuntu@leaf:/etc/snmp$ sudo netstat -antup | grep 161
    udp        0      0 0.0.0.0:161             0.0.0.0:*                           11656/snmpd     
    udp6       0      0 ::1:161                 :::*                                11656/snmpd

    サービスが公開され、IPv 4とIPv 6が同時にサポートされていることがわかります.
    これにより、リモートホストでテストできます.
    3.起動
    実は前の操作で私たちはずっとsnmpサービスを起動していますが、ここでは確認してください.
    ubuntu@leaf:~$ sudo service snmpd start
    ubuntu@leaf:~$ sudo netstat -antup | grep 161
    udp        0      0 0.0.0.0:161             0.0.0.0:*                           11656/snmpd     
    udp6       0      0 ::1:161                 :::*                                11656/snmpd

    4.(リモート)テスト
    サーバのローカルでテストを行いましたが、問題はありません.次に、リモートホストでテストします.
    私のもう1台のリモートホスト上のオペレーティングシステムもUbuntu 15.04で、すでにsnmpクライアントソフトウェアとmibライブラリダウンロードソフトウェアをインストールして、同時にMIBライブラリを配置して、以下は直接リモートのテストを行います:
    xpleaf@leaf:~$ snmpwalk -v 2c -c xpleaf123 115.159.*.* memTotalSwap.0
    UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB
    xpleaf@leaf:~$ snmpwalk -v 2c -c xpleaf123 115.159.*.* memTotalReal.0
    UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 8093524 kB
    xpleaf@leaf:~$ snmpwalk -v 2c -c xpleaf123 115.159.*.* .1.3.6.1.4.1.2021.9.1.6.1
    UCD-SNMP-MIB::dskTotal.1 = INTEGER: 8123832

    テストは全く問題ないことがわかります!また、取得した値は、前のサーバがローカルで取得した値と同じです.
    もちろん、まだ入手できないことに気づいたら、サーバのホスト上のファイアウォールの設定に問題がないかどうかを考える必要があります.
    5.何の役にも立たない
    もしあなたがバックグラウンドで言語(例えばPython)を開発することができたら、あなたのフロントエンドの基礎はまた悪くありません.(html、js、jquery、bootstrap、ajaxなど様々)、snmpの基礎に基づいて、あなたは完全に自分でLinuxホストの監視ホストを開発することができて、これは難しくなくて、複雑なのはあなたがどのようにあなたのデータを処理する必要があるので、この話はすべての人あるいはすべての会社の需要を見る必要があります.
    ブロガーは現在、関連監視ソフトウェアの開発をしていますが、監視しているのはLinuxホストではなく、他のネットワークデバイスで、少し複雑ですが、技術的な考え方が正しい限り、すべては問題ありません.
    snmpはほとんどの友達に役に立つと思うので、Ubuntuの
    しかし、他のLinuxリリースでは、大同小異だと信じています.やはりその言叶は、必要な友达を助けることができることを望んでいます.