用python擴充套件snmp

2022-02-10 05:06:17 字數 3467 閱讀 9849

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

環境:centos 6.3_64

1.1 通過yum查詢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

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

具體參考這裡:

關鍵點:在路徑(軟體安裝路徑)

\etc\snmp\

下,新增檔案

snmpd.conf

(我的做法是將上文中

linux

下的snmpd.conf

檔案直接

copy

過來)。

在snmpd.conf檔案裡面有通過bash擴充套件的例子,如圖所示:

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

bash配置:

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

python配置:

test1.sh內容如下: 

#! /bin/sh

echo

"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系統)。

**:python**(getcpuusage.py):

#

! /usr/bin/python

import

psutil

print psutil.cpu_percent()

snmpd.conf配置:

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

用C 擴充套件PHP

前端時間寫過乙個repl的php extension,記得當時在國內的中文 上,相關的資料真的很少,今天就拋磚引玉寫一些,希望對後來者有所幫助,那些基本的東西我就不贅述了,主要談談,php exitension和 php 之間的引數傳遞問題 先說說我寫的那個php extension,因為repl ...

Flask擴充套件 Flask Migrate用法

引用官方文件的話,flask migrate是使用alembic遷移flask應用程式的sqlalchemy資料庫的擴充套件,可以通過flask命令列或者flask script擴充套件對資料庫進行操作。該擴充套件主要用於遷移資料庫。傳統操作flask資料庫一般使用sqlalchemy,表的初始化使...

swoole擴充套件怎麼用

swoole 是 php 的乙個擴充套件,可以通過 php 擴充套件的方式進行安裝和啟用。本地安裝 laradock 在本地安裝的話,以 laradock 為例,需要在 laradock 目錄下的 env 中將下面兩行配置值設定為 true 然後執行 docker compose build php...