linux安裝snmp
『壹』 如何安裝snmp在linux上
1) 安裝SNMP
略,請參閱LINUX系統SNMP安裝說明,一般情況下Linux中 的均已經自動安裝了SNMP服務。以下命令可以檢測SNMP服務是否安裝以及安裝的文件包。
[root@idc ~]# rpm -qa |grep snmp
net-snmp-libs-5.1.2-11.EL4.7
net-snmp-5.1.2-11.EL4.7
2) 配置SNMP
按照如下方式修改/etc/snmp/snmpd.conf文件
A、修改默認的community string(SUM中SNMP讀值密碼)
com2sec notConfigUser default public
將public修改為你才知道的字元串
將「default」改為你想哪台機器可以看到你 的snmp信息,比如SUM所在IP為:10.10.10.10, 就改成這個IP。不改表示所有機器充許。
B、把下面的#號去掉
#view mib2 included .iso.org.dod.internet.mgmt.mib-2 fc
啟用全部功能可以使用如下一行(如果沒有可以加入一行):
view all included .1 80
C、把下面的語句
access notConfigGroup "" any noauth exact systemview none none
改成:
access notConfigGroup "" any noauth exact mib2 none none
或是:
access notConfigGroup "" any noauth exact all none none
3) 啟動與停止SNMP
一般使用:service snmpd start|stop|restart命令。或是:
#/etc/rc.d/init.d/snmpd restart
4) 防火牆
如果Linux啟動了防火牆,請開放UDP的161端 口。確保Linux的iptables防火牆對SUM監控伺服器開放 了udp 161埠的訪問許可權
可使用iptables ?L ?n 查看當前iptables規則
可編輯/etc/sysconfig/iptables文 件來修改iptables規則。
『貳』 linux下安裝snmp的依賴包有哪些
Linux有很多版本。我使用的Linux Mint 17 (Ubuntu衍生版)上,直接就可以安裝snmp,依賴關系直接已經滿足。
不過既然你問到,我也幫你查出來了:
libc6(>=2.14)
libsnmp30(>=5.7.2~dfsg)
libssl1.0.0(>=1.0.0)
libsnmp-base
『叄』 linux怎麼安裝配置snmp協議
一、安裝
snmp
服務
1
、檢查系統是否已經安裝
snmp
的
rpm
包
以下是安裝
snmp
服務需要的
rpm
包:
libsensors3-2.10.6-55.el5.i386.rpm
lm_sensors-2.10.6-55.el5.i386.rpm
net-snmp-libs-5.3.2.2-5.el5.i386.rpm
net-snmp-5.3.2.2-5.el5.i386.rpm
net-snmp-utils-5.3.2.2-5.el5.i386.rpm
推薦到
http://rpm.pbone.net/
下載這些
rpm
包,該網站比較全面,包含各種版本的包。
使用命令:
$rpm-qa|grepsnmp
檢查是否安裝
net-snmp-utils-5.3.2.2-5.el5
,
net-snmp-libs-5.3.2.2-5.el5
,
net-snmp-5.3.2.2-5.el5
三個
rpm
包
使用命令:
$rpm-qa|greplibsen
檢查是否安裝
libsensors3-2.10.6-55.el5
使用命令:
$rpm-qa|greplm
檢查是否安裝
lm_sensors-2.10.6-55.el5
說明:
(
1
)這幾個包的安裝有一定順序,在安裝的時候,會有提示。比如安裝
net-snmp-5.3.2.2-5.el5.i386.rpm
時,會提示必須先安裝
net-snmp-libs-5.3.2.2-5.el5.i386.rpm
。
(
2
)
net-snmp-utils-5.3.2.2-5.el5.i386.rpm
並不是必須安裝的包,但安裝它會帶來不少幫助,
它提供了很多工具,
例如可以使用
snmptranslate
命令查看
oid
,
可以使用
snmpget
、
snmpwalk
命令等。
(
3
)
net-snmp-libs-5.3.2.2-5.el5.i386.rpm
、
net-snmp-5.3.2.2-5.el5.i386.rpm
、
net-snmp-utils-5.3.2.2-5.el5.i386.rpm
這三個包有一定的版本要求,必須版本一致,否則安裝
無法成功。我這里都使用的
5.3.2.2-5.el5
版本,也可以下載其他版本的
rpm
包,但注意版本
要一致,在安裝的時候也會提示,哪個版本的包是必須的,你可以根據提示下載需要的包。
2
、安裝以上的幾個
rpm
包
若系統中沒有安裝以上包,則先安裝。
使用命令:
rpm–ivh
包名
安裝完後,使用命令:
$rpm-qa|grepsnmp
,檢查是否已經安裝成功。
3
、啟動
snmp
服務
若安裝成功,則可使用命令:
$servicesnmpdstart
提示:
Starting
snmpd:
[OK]
,則啟動
snmp
服務成功。
你可以將
snmp
服務設置為開機自啟動,這樣免去手動啟動的麻煩。
使用命令:
$chkconfigsnmpdon
,將
snmpd
服務設為開機自啟動。
然後使用命令:
$chkconfig--list|grepsnmpd
,查看是否已經設置成功。
4
、驗證
snmp
服務
(
1
)使用
snmpwalk
命令,查看本機
localhost
的主機名:
如上,可以看到通過遠端主機獲取到的主機名,與在本機獲取到的主機名是一致的。
二、配置
snmp
服務
以上安裝完成後,使用的是
snmp
的默認配置,通過這些默認配置,我們只能獲取主機的部
分信息。但一些其他的重要信息,無法獲取。如主機的
CPU
使用情況,內存使用情況等。
如上,無法獲取
CPU
的空閑率(註:
1.3.6.1.4.1.2021.11.11.0
是主機
CPU
空閑率的
oid
)
。
這時候,若要獲取主機的一些重要信息,則要修改
snmp
的默認配置。
配置方法:修改
/etc/snmp/snmpd.conf
文件
1
、修改查看設備節點的許可權
在該文件中,找到如下位置:
view
:定義了可以查看哪些節點設備的信息。
snmp
默認配置只能查看
.1.3.6.1.2.1.1
和
.1.3.6.1.2.1.25.1.1
節點下的設備信息,
而主機
CPU
和
內存等設備都不在這些節點下,所以無法獲取這些數據。
因此,可以修改這個配置,如下:
在此處添加了一行:
viewsystemviewincluded.1
表示可以查看
.1
節點下的所有設備信息。
『肆』 Linux下簡單配置安裝cactisnmp再次安裝怎麼解決
以前確認過機器上安裝了snmp,但是這是redhat自帶的,據說裡面是沒有snmpwalk,snmpget這些命令的,所以我這里要重新
編譯安裝NET-SNMP
官方網站
http://www.net-snmp.org/
下載文件
wget http://nchc.dl.sourceforge.net/project/net-snmp/net-snmp/5.5/net-snmp-5.5.tar.gz
解開壓縮包
tar zxvf net-snmp-5.5.tar.gz
配置
./configure --prefix=/usr/local/net-snmp --enable-developer
中間有提示,一路回車下去
make
報錯如下:
grep: /usr/lib/libbeecrypt.la: No such file or directory
/bin/sed: can't read /usr/lib/libbeecrypt.la: No such file or directory
libtool: link: `/usr/lib/libbeecrypt.la' is not a valid libtool archive
make[1]: *** [libnetsnmpmibs.la] 錯誤 1
make[1]: Leaving directory `/var/tmp/net-snmp-5.5/agent'
make: *** [subdirs] 錯誤 1
解決辦法:
安裝beecrypt
wget http://nchc.dl.sourceforge.net/sourceforge/beecrypt/beecrypt-4.1.2.tar.gz
tar zxvf beecrypt-4.1.2.tar.gz
./configure --prefix=/usr
make
make install
重新make,又報錯了,報錯如下:
/usr/bin/ld: cannot find -lelf
collect2: ld returned 1 exit status
make[1]: *** [libnetsnmpmibs.la] 錯誤 1
make[1]: Leaving directory `/var/tmp/net-snmp-5.5/agent'
make: *** [subdirs] 錯誤 1
解決辦法:
ln -s libelf.so.1 /usr/lib/libelf.so
繼續make,成功了:)
make install
安裝成功。
鏈接過去
ln -s /usr/local/net-snmp/bin/* /usr/local/bin/
cp EXAMPLE.conf /usr/local/net-snmp/share/snmp/snmpd.conf
/usr/local/net-snmp/sbin/snmpd //啟動SNMP服務
vi /etc/rc.d/rc.local
//在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系統啟動時啟動SNMP服務
現在再回頭看看cacti的錯誤
錯誤:/usr/local/bin/snmpwalk
錯誤:/usr/local/bin/snmpget
錯誤:/usr/local/bin/snmpbulkwalk
錯誤:/usr/local/bin/snmpgetnext
再次點開,這次就沒有以上的錯誤啦。點Finish
輸入用戶名和密碼admin/admin
登陸後點擊graph圖標,圖沒有出來。繼續查找下原因,快要成功了:)
查看後台日誌cacti裡面的log/cacti.log,日誌如下:
POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting
點擊控制面板console----->Data Sources
選擇列表中的一個Localhost-Load Average
點擊右上角的Turn Off Data Source Debug Mode
下面會出現對應的命令Data Source Debug
/usr/local/bin/rrdtool create \
/usr/local/apache2/htdocs/cacti/rra/localhost_load_1min_5.rrd \
--step 300 \
DS:load_1min:GAUGE:600:0:500 \
DS:load_5min:GAUGE:600:0:500 \
DS:load_15min:GAUGE:600:0:500 \
RRA:AVERAGE:0.5:1:600 \
RRA:AVERAGE:0.5:6:700 \
RRA:AVERAGE:0.5:24:775 \
RRA:AVERAGE:0.5:288:797 \
RRA:MAX:0.5:1:600 \
RRA:MAX:0.5:6:700 \
RRA:MAX:0.5:24:775 \
RRA:MAX:0.5:288:797 \
su cacti,執行該命令,報錯如下:
ERROR: creating '/usr/local/apache2/htdocs/cacti/rra/localhost_load_1min_5.rrd': 許可權不夠
暈,前面不是賦予了許可權了嘛,難道搞錯了。再賦予一次。
chown -R cacti rra
chown -R cacti log
執行命令,OK了,檢查一下目錄rra,哈哈,已經有一個文件了。去看看圖看。圖有了,但是是否有正確的每5分鍾採集一次
就要等等,等好幾個5分鍾再來看看了。等了一會兒,還是沒有數據,唉,好事多磨啊,有圖像了,又沒有數據。。。。
檢查snmp
snmpwalk -c public -v 2c 10.206.19.59 if 有很多信息返回
檢查數據
rrdtool fetch localhost_mem_swap_4.rrd AVERAGE,返回的都是
1261452300: nan
1261452600: nan
文件更新信息
rrdtool lastupdate localhost_mem_swap_4.rrd --template,返回數據
users
1261535656: U
文件信息
rrdtool info localhost_users_6.rrd,返回信息:
filename = "localhost_users_6.rrd"
rrd_version = "0003"
step = 300
last_update = 1261535656
ds[users].type = "GAUGE"
ds[users].minimal_heartbeat = 600
ds[users].min = 0.0000000000e+00
ds[users].max = 5.0000000000e+02
ds[users].last_ds = "U"
ds[users].value = 0.0000000000e+00
網上搜索資料,可能是SNMP沒有配置好
vi /usr/local/net-snmp/share/snmp/snmpd.conf
cp /etc/snmp/snmpd.conf /usr/local/net-snmp/share/snmp/snmpd.conf
重啟snmp
/usr/local/net-snmp/sbin/snmpd
修改定時任務
[root@dev1 snmp]# crontab -e -u cacti
*/5 * * * * /usr/local/bin/php -q /usr/local/apache2/htdocs/cacti/poller.php > /var/log/poller.log 2>&1
檢查定時任務是否啟動了
/etc/init.d/crond status
一切正常
檢查log/cacti.log日誌
12/23/2009 01:14:16 PM - POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 4754 seconds have passed since the last poll!
12/23/2009 01:20:01 PM - POLLER: Poller[0] WARNING: Cron is out of sync with the Poller Interval! The Poller Interval is '300' seconds, with a maximum of a '300' second Cron, but 345 seconds have passed since the last poll!
12/23/2009 01:25:00 PM - POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting.
12/23/2009 01:25:00 PM - SYSTEM STATS: Time:298.7072 Method:cmd.php Processes:1 Threads:N/A Hosts:2 HostsPerProcess:2 DataSources:5 RRDsProcessed:0
12/23/2009 01:30:00 PM - POLLER: Poller[0] Maximum runtime of 298 seconds exceeded. Exiting.
手工執行了幾次
php cacti/cmd.php
php cacti/poller.php
PHP Deprecated錯誤的解決
vi /usr/local/lib/php.ini
加入:
php_flag allow_call_time_pass_reference On
php_value error_reporting "E_ALL & ~E_NOTICE & ~E_DEPRECATED"
終於有數據了,發現好像是執行了php cacti/cmd.php,但是最後還是有些問題
『伍』 如何在各系統平台配置SNMP
在Windows XP/2000 系統中配置 SNMP 代理
關於如何在Windows系統上安裝SNMP代理,可參見在Windows系統中安裝SNMP代理。
在Windows XP/2000 系統中配置 SNMP 代理的具體步驟如下:
點擊開始,指向設置,然後點擊控制面板。雙擊管理工具,然後雙擊計算機管理。
在控制台樹中,點擊服務和應用程序,然後點擊服務。
下滾明細表窗格,並點擊 SNMP service。
點擊操作菜單上的屬性。
如果您想在身份驗證失敗的時候有陷阱信息發出,那麼請在安全分頁中選擇發送身份驗證陷阱。
在接收的團體名稱下點擊添加。
在團體權利下,為主機選擇一個許可的級別以處理從被選團體接收的請求。
在社區名稱中輸入名稱(區分大小寫),然後點擊添加。
指定是否從主機接收SNMP 數據包:
要想從網路上的任何主機接收SNMP 請求,且無論其身份,請點擊接收來自任何主機 SNMP 數據包。
要想限制接收 SNMP 數據包,請點擊接收來自這些主機的 SNMP 數據包,點擊添加,輸入適當的主機名、IP或IPX 地址, 然後再次點擊添加。
點擊應用。
頁首
配置SNMP陷阱的步驟如下:
點擊開始,指向設置,然後點擊控制面板。雙擊管理工具,然後雙擊計算機管理。
在控制台樹中,點擊服務和應用程序,然後點擊服務。
下滾明細表窗格,並點擊 SNMP service。
點擊操作菜單上的屬性。
打開陷阱分頁窗格,在社區名稱下輸入計算機將把陷阱發至的社區名稱(區分大小寫),然後點擊添加到列表。
在陷阱目標中點擊添加。
在主機名,IP或 IPX地址中輸入主機的相關信息並點擊添加。
重復第5步到第7步,直到添加完您要添加的所有團體和陷阱目標。
點擊確定。
在 Windows NT 系統配置SNMP 代理
關於如何在WindowsNT系統上安裝SNMP代理,可參見在Windows系統中安裝SNMP代理。
在 Windows NT 系統中配置SNMP 代理的步驟如下:
右擊桌面上的網上鄰居圖標。
點擊屬性。
點擊服務。
點擊 SNMP 服務,然後點擊屬性。
點擊安全分頁按鈕。
要想為錯誤的驗證發送陷阱,請選擇發送驗證陷阱復選框。
在接收的團體名稱下點擊添加。
在團體名稱框中,輸入共同體名稱(從該團體接收請求)。
點擊添加,將該名稱移入接收的團體名稱列表中。
重復第 9 步添加任何團體名稱。
點擊以下選項之一,指定是從任何主機接收 SNMP 數據包,還是僅從指定的主機接收SNMP 數據包:
如果不依據源計算機 ID 來拒絕 SNMP 數據包,可選擇接收來自任何主機的 SNMP 數據包。
如果僅從列出的計算機接收SNMP 數據包,請選擇僅接收來自這些主機的SNMP 數據包。 要想指定特定的主機,請點擊添加,在IP 主機或IPX 地址框中輸入主機的名稱和地址(從該主機接收請求),然後點擊添加,將該名稱移入僅接收來自這些主機的SNMP 數據包列表。
重復第 11 步添加任何主機。
在代理分頁中指定適當的信息(如有關用戶位置和服務的注釋)。
點擊確定。
配置 SNMP 陷阱的步驟如下:
右擊桌面上的網上鄰居圖標。
點擊屬性。
點擊服務。
點擊 SNMP 服務,然後點擊屬性。
點擊陷阱分頁按鈕。
在團體名稱框中輸入名稱,以識別您想要該計算機將陷阱發送到的每個團體。團體名稱是區分大小寫的。
輸入每個名稱後,點擊添加,將這些名稱添加到列表。
添加了團體之後,在其仍是高亮時,點擊陷阱目標下的添加,為陷阱要發送到的每個團體指定主機。
在IP主機/地址或IPX地址框中輸入主機名,然後點擊添加,為所選團體將名稱和地址移入陷阱目標列表。
重復第10步,添加任何主機。
點擊確定。
在 Linux 8.0以前的版本配置代理
關於如何在Linux系統上安裝SNMP代理,可參見 在Linux系統中安裝SNMP代理。
如果代理已運行,請使用以下命令將其停止:
/etc/rc.d/init.d/snmpd stop
在/etc/rc.d/init.d/snmpd 文件中做以下修改:
將
daemon /usr/sbin/snmpd $OPTIONS
改為
daemon /root/ucd_agent/sbin/snmpd $OPTIONS
將
killproc /usr/sbin/snmpd
改為
killproc /root/ucd_agent/sbin/snmpd
這是用於在啟動和停止SNMP 代理時選擇當前安裝的版本。
使用命令 /etc/rc.d/init.d/snmpd start來啟動代理。
在 Linux 8.0版本及8.0 以上版本配置代理
在Linux 8.0版本及8.0 以上版本,可以使用 SNMP 的最新版本,只需在 snmpd.conf 文件中做以下修改:
在
# name incl/excl subtree mask(optional)
行後插入
view allview included .1.3.6
將
# group context sec.modelsec.level prefix read write notif
以後的行
lineaccess notConfigGroup 「」 any noauth exact systemview none none
改為
access notConfigGroup 「」 any noauth exact allview none none
然後使用以下命令重啟 snmp 代理:
/etc/rc.d/init.d/snmpd restart
在 Solaris 機器中配置代理
關於如何在Windows系統上安裝SNMP代理,可參見在Solaris系統中安裝SNMP代理。
如果代理已運行,請使用以下命令將其停止:
/etc/init.d/init.snmpdx stop
在/etc/init.d/init.snmpdx 文件中做以下修改:
將 if [ -f /etc/snmp/conf/snmpdx.rsrc -a -x /usr/lib/snmp/snmpdx ]; then
/usr/lib/snmp/snmpdx -y -c /etc/snmp/conf -d 3 -f 0
fi
改為
/sbin/snmpd
將 /usr/bin/pkill -9 -x -u 0 『(snmpdx|snmpv2d|mibiisa)』
改為
/usr/bin/pkill -9 -x -u 0 『(snmpd)』
使用命令 /etc/init.d/init.snmpdx start 重啟代理。