一、介紹
1、 服務器監控工具可以幫助我們從任何一個地方實時了解服務器的性能和功能。監控寶服務器監控套裝,可以實時CPU使用率、內存使用率、平均負載、磁盤I/O、網絡流量、磁盤使用率等,能夠同時為你帶來短期效益和長期效益。監控寶目前提供的服務器監控項目包括:
CPU使用率,監控CPU的使用率比例,包括用戶態(User)、內核態(System)、I/O等待(IOWait)、空閑(Idle)等
CPU負載,監控Linux服務器的平均負載(load average),包括最近1分鍾、5分鍾、15分鍾等
內存使用率,監控內存使用率,對於Linux服務器,包括空閑內存、Buffer Cache、Page Cache、應用程序內存等
磁盤I/O,監控所有磁盤分區的I/O流量,包括寫入和讀取
網絡流量,監控所有網絡設備的流量,包括流入和流出
磁盤空間使用率,監控所有磁盤分區的空間使用率,包括總空間和已用空間.
系統進程數,監控系統當前的進程數。
2、監控寶使用標准的SNMP協議來為用戶提供服務器監控功能,這意味着被監控的服務器上必須運行SNMP代理程序 snmpd;
3、SNMP是一構建在TCP/UDP上的遠程監控應用。它能監控網絡中主機的各種信息,如內存使用率,CPU占用率,磁盤占用率等。
4、它主要分為2個部分。安裝在待監控主機上的SNMP服務端,用於收集主機的信息,並按樹形進行組織;安裝在監控端的SNMP客戶端,實時發出查詢命令,獲得被監控主機的運行信息。使用UDP 161端口接收和發送請求,162端口接收trap。
5、Net-SNMP是一個免費、開放源碼的SNMP實現。使用C語言實現。
參考鏈接:
1)Ubuntu上snmp安裝、配置、啟動及遠程測試完整過程
2)linux snmp常用結點值
二、Ubuntu 下安裝snmp
1、安裝程序包
1)sudo apt-get install snmpd snmp snmp-mibs-downloader
2)在安裝snmp-mibs-downloader的過程中,程序會幫我們自動下載mib庫,並保存在/usr/share/mibs目錄中;
3)如果安裝好的文件沒有上述目錄庫,手動下載安裝:sudo download-mibs;
2、配置
1)系統默認運行了這個服務;
2)修改 /etc/snmp/snmpd.conf
A. 配置節點
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
上面的操作可以讓我們獲取更多的節點信息。注:修改完snmpd.conf
B. 配置MIB庫
將snmpd.conf 中的以下行注釋掉:
mibs:
這樣之后,我們獲取節點信息,不必輸入長串的數字
#之前獲取內存信息的操作 [ubuntu]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]#snmpwalk -v 2c -c public localhost memTotalSwap.0 UCD-SNMP-MIB::memTotalSwap.0 = INTEGER: 1950716 kB
C. 配置共同體
其實所謂共同體,把它理解為一個密碼就行了,前面我們在使用snmpwalk命令獲取主機的信息時,有一個-c public的參數,其實就是指定了這個共同體為public,這是默認的配置,當然在實際中,我們不可能使用默認的值,因此需要把它修改一下。
rocommunity public default -V systemonly rocommunity6 public default -V systemonly 修改為: rocommunity xplinuxidc123 default -V systemonly rocommunity6 xplinuxidc123 default -V systemonly
修改后重啟snmpd服務
ubuntu@linuxidc:/etc/snmp$ snmpwalk -v 2c -c public localhost memTotalReal.0 Timeout: No Response from localhost ubuntu@linuxidc:/etc/snmp$ snmpwalk -v 2c -c xplinuxidc123 localhost memTotalReal.0 UCD-SNMP-MIB::memTotalReal.0 = INTEGER: 8093524 kB
可以看到第一次獲取信息不成功,因為我們已經更新了共同體,舊的public將不能再使用,否則認證失敗就無法獲取snmp提供的主機信息。
D. 允許遠程主機訪問
默認情況下,snmp服務只是對本地開啟,是無法通過遠程獲取該主機的snmp信息的
ubuntu@linuxidc:/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服務對外開放。
將下面一行注釋掉: agentAddress udp:127.0.0.1:161 同時去掉下面這一行的注釋: #agentAddress udp:161,udp6:[::1]:161
重啟snmp服務,通過命令觀察
ubuntu@linuxidc:/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
可以看到服務已經對外開放了,並且同時支持IPv4和IPv6。這樣之后,我們就能在遠程主機進行測試。
三、測試
1、常用測試命令
snmpwalk -v 2c -c public localhost /IP ##獲取系統所有的信息 snmpwalk -v 2c -c public localhost /IP .1.3.6.1.2.1.25.2.2 ##取得系統總內存 snmpwalk -v 2c -c public localhost /IP.1.3.6.1.4.1.2021.4.3.0 ##取得系統內存 snmpwalk -v 2c -c public localhost /IP .1.3.6.1.2.1.4.20 ##取得IP信息 snmpwalk -v 2c -c public localhost /IP hrSystemNumUsers ##取得系統用戶數 snmpwalk -v 2c -c public localhost /IP system ##查看系統信息 snmpwalk -v 2c -c public localhost /IP ifDescr ##獲取網卡信息 snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1 ##獲取本地設備、系統等等信息
2、snmp服務器獲取snmp代理的設備信息
1)Ubuntu上安裝snmp相關的軟件,並進行配置;
2)嵌入式設備啟動snmp,IP是10.13.113.205;
3)Ubuntu上執行:snmpwalk -v 2c -c public 10.13.113.205 memTotalSwap.0,即可獲取嵌入式設備的信息。
嵌入式設備上有打印Ubuntu機器發過來的調試信息;