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中學習