1. 程式人生 > >NET-SNMP學習(一)subagent

NET-SNMP學習(一)subagent

Net-Snmp安裝參照連結完成並測試是否安裝完成。

想要在任何地方使用需更新環境變數,新增snmp的路徑到~/.bashrc中

一、snmpd.conf

snmpd.conf是snmp的基本環境配置,在上述連結中有說明如何修改。在這裡要注意的是如果要使用子代理模式,需要在conf配置中新增“master    agentx”開啟snmp主代理模式。以下是conf配置檔案:

###############################################################################
#
# EXAMPLE.conf:
#   An example configuration file for configuring the Net-SNMP agent ('snmpd')
#   See the 'snmpd.conf(5)' man page for details
#
#  Some entries are deliberately commented out, and will need to be explicitly activated
#
###############################################################################
#
#  AGENT BEHAVIOUR
#


#  Listen for connections from the local system only
#agentAddress  udp:127.0.0.1:161
#  Listen for connections on all interfaces (both IPv4 *and* IPv6)
#agentAddress udp:161,udp6:[::1]:161
agentAddress  udp:161




###############################################################################
#
#  SNMPv3 AUTHENTICATION
#
#  Note that these particular settings don't actually belong here.
#  They should be copied to the file /var/net-snmp/snmpd.conf
#     and the passwords changed, before being uncommented in that file *only*.
#  Then restart the agent


#  createUser authOnlyUser  MD5 "remember to change this password"
#  createUser authPrivUser  SHA "remember to change this one too"  DES
#  createUser internalUser  MD5 "this is only ever used internally, but still change the password"


#  If you also change the usernames (which might be sensible),
#  then remember to update the other occurances in this example config file to match.






###############################################################################
#
#  ACCESS CONTROL
#


                                                 #  system + hrSystem groups only
view   systemonly  included   .1.3.6.1.2.1.1
view   systemonly  included   .1.3.6.1.2.1.25.1
view   all         included   .1             # Full access from the local host
#rocommunity public  localhost
                                           #  Default access to basic system info
 rocommunity public  default 
 rwcommunity public  default


                                                 #  Full access from an example network
                                                 #     Adjust this network address to match your local
                                                 #     settings, change the community string,
                                                 #     and check the 'agentAddress' setting above
#rocommunity secret  10.0.0.0/16


                                                 #  Full read-only access for SNMPv3
 rouser   authOnlyUser
                                                 #  Full write access for encrypted requests
                                                 #     Remember to activate the 'createUser' lines above
#rwuser   authPrivUser   priv


#  It's no longer typically necessary to use the full 'com2sec/group/access' configuration
#  r[ou]user and r[ow]community, together with suitable views, should cover most requirements






###############################################################################
#
#  SYSTEM INFORMATION
#


#  Note that setting these values here, results in the corresponding MIB objects being 'read-only'
#  See snmpd.conf(5) for more details
sysLocation    Sitting on the Dock of the Bay
sysContact     Me <
[email protected]
>                                                  # Application + End-to-End layers sysServices    72 # #  Process Monitoring #                                # At least one  'mountd' process proc  mountd                                # No more than 4 'ntalkd' processes - 0 is OK proc  ntalkd    4                                # At least one 'sendmail' process, but no more than 10 proc  sendmail 10 1 #  Walk the UCD-SNMP-MIB::prTable to see the resulting output #  Note that this table will be empty if there are no "proc" entries in the snmpd.conf file # #  Disk Monitoring #                                # 10MBs required on root disk, 5% free on /var, 10% free on all other disks disk       /     10000 disk       /var  5% includeAllDisks  10% #  Walk the UCD-SNMP-MIB::dskTable to see the resulting output #  Note that this table will be empty if there are no "disk" entries in the snmpd.conf file # #  System Load #                                # Unacceptable 1-, 5-, and 15-minute load averages load   12 10 5 #  Walk the UCD-SNMP-MIB::laTable to see the resulting output #  Note that this table *will* be populated, even without a "load" entry in the snmpd.conf file ############################################################################### # #  ACTIVE MONITORING #                                     #   send SNMPv1  traps # trapsink     localhost public                                     #   send SNMPv2c traps trap2sink    localhost public                                     #   send SNMPv2c INFORMs #informsink   localhost public #  Note that you typically only want *one* of these three lines #  Uncommenting two (or all three) will result in multiple copies of each notification. # #  Event MIB - automatically generate alerts #                                    # Remember to activate the 'createUser' lines above iquerySecName   internalUser        rouser          internalUser                                    # generate traps on UCD error conditions defaultMonitors          yes                                    # generate traps on linkUp/Down linkUpDownNotifications  yes ############################################################################### # #  EXTENDING THE AGENT # # #  Arbitrary extension commands #  extend    test1   /bin/echo  Hello, world!  extend-sh test2   echo Hello, world! ; echo Hi there ; exit 35 #extend-sh test3   /bin/sh /tmp/shtest #  Note that this last entry requires the script '/tmp/shtest' to be created first, #    containing the same three shell commands, before the line is uncommented #  Walk the NET-SNMP-EXTEND-MIB tables (nsExtendConfigTable, nsExtendOutput1Table #     and nsExtendOutput2Table) to see the resulting output #  Note that the "extend" directive supercedes the previous "exec" and "sh" directives #  However, walking the UCD-SNMP-MIB::extTable should still returns the same output, #     as well as the fuller results in the above tables. # #  "Pass-through" MIB extension command # #pass .1.3.6.1.4.1.8072.2.255  /bin/sh       PREFIX/local/passtest #pass .1.3.6.1.4.1.8072.2.255  /usr/bin/perl PREFIX/local/passtest.pl # Note that this requires one of the two 'passtest' scripts to be installed first, #    before the appropriate line is uncommented. # These scripts can be found in the 'local' directory of the source distribution, #     and are not installed automatically. #  Walk the NET-SNMP-PASS-MIB::netSnmpPassExamples subtree to see the resulting output # #  AgentX Sub-agents #                                            #  Run as an AgentX master agent  master          agentx                                            #  Listen for network connections (from localhost)                                            #    rather than the default named socket /var/agentx/master #agentXSocket    tcp:localhost:705 mibs +MY-MIB mibs +TEST-MIB

Note:#為註釋

二、自定義MIB

MIB的編寫和講解參照了前輩的部落格:https://blog.csdn.net/shanzhizi/article/details/11769491。講述的很清楚了。

這裡要注意的是在編寫完直接的MIB後,需要放入snmp的search path,一般預設的地方是:

1.  /root/.snmp/mibs 

2.  /usr/local/snmp/share/snmp/mibs

或者使用命令net-snmp-config --default-mibdirs,即可獲得路徑。詳情見:載入第三方庫

以下是我參照寫的mib:

--MY-MIB 
                MY-MIB DEFINITIONS ::= BEGIN
IMPORTS
            OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
            enterprises, Integer32, Unsigned32, OBJECT-TYPE, MODULE-IDENTITY,
            NOTIFICATION-TYPE
                FROM SNMPv2-SMI
            DisplayString
                FROM SNMPv2-TC;
-- 
        -- 1.3.6.1.4.1.26536   
        Test MODULE-IDENTITY
            LAST-UPDATED "201807050918Z"
            ORGANIZATION
                ""
            CONTACT-INFO
                ""
            DESCRIPTION
                "Video's Server MIB."
            ::= { enterprises 26536 }
--  Node definitions  
-- This part will include all details about the Test.  
        -- 1.3.6.1.4.1.26536.1  
        Time OBJECT IDENTIFIER ::= { Test 1 }
        -- 1.3.6.1.4.1.26536.1.1  
        GetTime OBJECT-TYPE
            SYNTAX DisplayString (SIZE (0..100))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                ""
            ::= { Time 1 }
    END

-- MY-MIB.my 

Note:--為註釋

Note:把該MIB放入search path,使用snmptranslate -Tp -IR  xxx::xx來驗證是否載入的時候,可能會出現"Unknown Object Identifier" 這樣的錯誤。是因為未將該MIB放入CONF檔案內。解決方法及注意事項見載入第三方庫。如上方conf配置中mibs +xxx所示, xxx即如MyMIB DEFINITIONS::=BEGIN這句定義中的MyMIB.

三、生成原始碼

mib2c可以根據mib庫生成對應的原始碼,有多種模板,這裡我們要生成子代理的程式碼,所以選擇是固定的,執行env MIBS"+/usr/local/share/snmp/mibs/Test-MIB.my" mib2c Test,會引導你逐漸生成Test.h和Test.c, 先選2再選1。

在生成的.c檔案中修改xxx或者TODO成自己的,

執行net-snmp-config --compile-subagent Test Test.c,就生成了Test程式,Test為可執行程式名(可自定義),Test.c是由你MIB生成的.c檔案。可參照:代理agent

最後用snmpget 或者snmpwalk等命令測試。

PS:記錄下自己的過程。

相關推薦

NET-SNMP學習subagent

Net-Snmp安裝參照連結完成並測試是否安裝完成。 想要在任何地方使用需更新環境變數,新增snmp的路徑到~/.bashrc中 一、snmpd.conf snmpd.conf是snmp的基本環境配置,在上述連結中有說明如何修改。在這裡要注意的是如果要使用子代理模式,需

ASP.Net MVC學習

方法 title 系列 字符串類 所有 value 內部 但是 必須 MVC 設計模式將應用程序分解成3個主要部分: Model, View, Controller(模型、視圖、控制器) Model - 模型代表一系列類用來描述業務邏輯,比如業務模型以及數據訪問操作,

.net WebService學習

                Web service是一個基於可程式設計的web的應用程式,用於開發分散式的互操作的應用程式,也是一種web服務 WebService的特性有以下幾點: 1.使用XML(標準通

.Net MVC學習

第一個MVC程式,先從建立專案開始 筆者用的是VS2017,沒有aspx檢視 建好後,我們會得到這樣一個目錄,Models(模型),Views(檢視),Controllers(控制器)

.Net MVC的學習

後綴 fonts mvc 存在 eth 大致 例如 pre gb2   套種間作,也挺有意思的——近來學習感悟。DRP學習的同一時候,折騰了點曾經不曾學習可是卻非常多次耳聞過的東西——Asp.Net中的MVC架構模式。 一、是什麽?      MVC,即(Model-

.NET中使用Redis之ServiceStack.Redis學習安裝與簡單的運行

arraylist write client cli ring blog 控制臺 創建 spa 1.下載ServiceStack.Redis PM> Install-Package ServiceStack.Redis 2.vs中創建一個控制臺程序 class Pro

.NET之EF框架學習

架構元件: EDM(實體資料模型): EDM由三個主要部分組成 - 概念模型,對映和儲存模型。 Conceptual Model:概念模型包含模型類及其關係。這將獨立於您的資料庫表設計。 Storage Model:儲存模型是包括表,檢視,儲存過程及其關係和金鑰的資料庫設計模型。 Mapping:對映由有關概

.NET深度學習框架ML.NET入門筆記

ML.NET入門筆記 ML.NET機器學習框架是基於.NET core 2.x的,所以我們必須安裝.net core 2.x,然後順便安裝vs2017便於開發 1.建立專案 此例我們建立一個控制檯應用myApp,建立之後使用Nuget安裝 Mi

ADO.NET學習

一、ADO.NET簡介 ADO.NET可以看作是C#語言訪問資料庫的一種方式。程式語言編寫的程式需要資料庫的支援,那麼怎樣才能讓他們建立連線呢?當然是ADO.NET 二、ADO.NET 整體流程 1)寫連線字串 2)寫連線物件 3)寫sql語句 4)寫操作SQL語句的物件SqlCommand

Node個人學習----模塊

需要 區別 class 當前 個人 一個 min export ava 1、自定義模塊與系統模塊的引入方式區別:----自定義模塊需要加“./”來聲明它不是一個系統模塊 const mod1=require("系統模塊.js"); const mod1=require(

MySQL學習ODBC 安裝

oca local new cmd 密碼 服務 關閉 mysql 系統 寫前說明 初次接觸MySQL,都說MySQL各種好。我也來學習學習。之前只有SQLServer2008的經驗,其實也只是皮毛。因為SQLServer還是比較容易上手的。也不麻煩。但是自己

vue基礎學習

time tle eight pla use logs new dial for 01-01 vue使用雛形      <div id="box"> {{msg}} </div> <sc

java學習 環境搭建、hello world的demo

環境變量 網上 類庫 .com java開發 www cnblogs rgs .class   本程序媛搞前端的,上班偶有空閑,不妨來學習學習,不然怎麽包養小白臉,走上人生巔峰?   說實話,每個語言都相通,有了javascript的基礎,並且有了兩三年跟java打交道的經

【Cloud Foundry】Could Foundry學習——Could Foundry淺談

art lock mod out isp ted 組成 .com pop 在閱讀的過程中有不論什麽問題。歡迎一起交流 郵箱:[email protected]/* */ QQ:1494713801 Cloud Foundry是VMware

Android中關於JNI 的學習對於JNIEnv的一些認識

else size 初步 jint 使用 包括 pri jnienv 就會 一個簡單的樣例讓我們初步地了解JNI的作用,可是關於JNI中的一些概念還是須要了解清楚,才可以更好的去利用它來實現我們想要做的事情。 那麽C++和Java之間的是怎樣通過JNI來進行互相調用的呢

Python學習

ubun 安裝目錄 tle setup extract reat 常用插件 增加 網址 Python學習(一) 一:開發工具安裝   1,pycharm下載:Linux版本   2,破解:在help-register下-service輸入:      http://elpo

Web Service學習

內存 res 特性 response 屬性表 高性能 fas str ima 1、WebMethod特性包含哪些屬性,都有什麽用? 1、BufferResponse屬性 該屬性表明是否啟用對Web Service方法響應的緩沖。當設置為true時,Web Service

Python基礎學習

func exe function 學習 typeerror exit invalid min eas #Default Argument Values & in keyworddef ask_ok(prompt, retres=4, reminder=‘pleas

Django學習---基本配置及創建項目、應用

cut 維護 onf response settings 通過 學習 clu render 安裝:在Django官網下載最新版Django然後通過pip安裝即可 一、創建項目 進入文件夾,打開cmd窗口,輸入django-admin startproject myblog(

機器學習

無限 size mage 計算機 博客 對數 png 表示 獲得 對學習的定義 學習經驗E 完成任務T 績效指標P 對於某類任務T和性能度量P,如果一個計算機程序在完成T上以P來衡量完成的好壞,並隨著經驗E而自我完善,那麽我們稱這個計算機程序在從經驗E中學習