這段時間在做伺服器狀態監控,是借助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/shtest1.py內容如下:echo
"123
"exit
22
#重啟snmpd服務:! /usr/bin/python
"just a test
"
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):
#snmpd.conf配置:! /usr/bin/python
import
psutil
print psutil.cpu_percent()
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...