日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

用python扩展snmp

發布時間:2025/3/15 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用python扩展snmp 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這段時間在做服務器狀態監控,是借助snmp協議來實現的,這里把snmp的安裝配置和python擴展snmp記錄一下,也方便我以后查閱。

一、安裝snmp

1、linux下安裝net-snmp

環境:CentOS 6.3_64

1.1 通過yum查找snmp完整名稱

yum search snmp

1.2 安裝net-snmp

yum install net-snmp -y

安裝成功,版本為5.5

1.3更改配置文件

文件路徑:/etc/snmp/snmpd.conf

在默認配置文件的基礎上更改以下幾個關鍵點:

說明:

41行的是默認值不用改動,這里的public比較關鍵,下文要用的到。

47行和48行是snmp協議版本。

57行和64行用all把權限放開(注意這里只是為了demo

1.4 啟動snmp服務

/etc/init.d/snmpd start

或者

service snmpd start

配置開機啟動:

chkconfig snmpd on

1.5 驗證snmp

snmpwalk -v 1 -c public IPADDR .1

附:

啟動服務后如果不能正常運行,首先查看防火墻狀態:/etc/init.d/iptables status

根據需要進行以下操縱:

臨時關閉防火墻:/etc/init.d/iptables stop

永久關閉防火墻:chkconfig --level 35 iptables off

161端口和162端口設置通過防火墻:

vi /etc/sysconfig/iptables

添加如下內容:

-A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp --dport 162 -j ACCEPT

如圖所示:

?重啟iptables服務:

service iptables restart

或者

/etc/init.d/iptables restart

2、windows下安裝net-snmp

網址:http://sourceforge.net/projects/net-snmp/files/

下載路徑:http://hivelocity.dl.sourceforge.net/project/net-snmp/net-snmp%20binaries/5.5.1-binaries/net-snmp-5.5.1-1.x86.exe

網上有比較詳細的教程,我這里就不在贅述了,

具體參考這里:http://www.cnblogs.com/VRS_technology/archive/2010/08/12/1798191.html

關鍵點:在路徑(軟件安裝路徑)\etc\snmp\下,添加文件snmpd.conf(我的做法是將上文中linux下的snmpd.conf文件直接copy過來)。

二、用python擴展snmp

snmpd.conf文件里面有通過bash擴展的例子,如圖所示:

我的版本是5.5,不知道為啥,雖然配置文件里面給的是用exec,但我發現這里要用extend來進行。

bash配置:

extend .1.3.6.1.4.1.23456.51 shelltest2 /bin/sh /tmp/test1.sh

python配置:

extend .1.3.6.1.4.1.23456.52 pythontest /usr/bin/python /tmp/test1.py?

test1.sh內容如下:?

#! /bin/shecho "123" exit 22

test1.py內容如下:

#! /usr/bin/python print "just a test"

重啟snmpd服務:

service snmpd restart

snmpwalk訪問:

snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.23456.50.4.1

snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.23456.51.4.1

snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.23456.52.4.1

執行效果

從圖中可以看出通過extend配置的兩個都執行成功了。

如果出現以下錯誤,則關閉selinux

STRING: "/usr/bin/python: can't open file '/tmp/test1.py': [Errno 13] Permission denied"

附:

查看selinux狀態: getenforce

臨時關閉selinux(不需要重啟): setenforce 0

永久關閉selinux(需要重啟):

vi /etc/selinux/config

SELINUX=enforcing更改為SELINUX=disable,如圖所示:

三、實現自定義服務狀態監控

這個其實就是第二部分里面的東西,單獨列出來主要是為了引入一個跨平臺的服務器狀態監控的python模塊:psutil

psutil 是用來獲取正在運行的進程信息和系統的CPU和內存的利用率的(支持Linux, OS X, FreeBSD Windows系統)。

網址:https://github.com/elventear/psutil

python代碼(getCpuUsage.py):

#! /usr/bin/pythonimport psutilprint psutil.cpu_percent()

snmpd.conf配置:

extend .1.3.6.1.4.1.23456.60 getCpuUsage /usr/bin/python /tmp/getCpuUsage.py

轉載于:https://www.cnblogs.com/MikeZhang/archive/2012/11/18/pythonExtendSnmp20121118.html

總結

以上是生活随笔為你收集整理的用python扩展snmp的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。