Linux

如何使用 SNMP 監控服務?

  • August 23, 2017

我想通過 SNMP 監控幾個服務的狀態。

手冊頁說:

proc NAME [MAX [MIN]]
              monitors the number of processes called NAME (as reported by "/bin/ps -e") running on the local system.

所以我將這些行添加到/etc/snmp/snmpd.conf

proc smbd
proc nfsd

但相應的 OID 仍返回零:

iso.3.6.1.4.1.2021.2.1.100.4 = INTEGER: 0
iso.3.6.1.4.1.2021.2.1.100.5 = INTEGER: 0

儘管ps -e顯示smbdnfsd處理:

> ps -e | grep "smbd\|nfsd"
8267 ?        00:00:01 smbd
10179 ?        00:00:04 smbd
11068 ?        00:00:00 nfsd4_callbacks
11072 ?        00:12:53 nfsd
11073 ?        00:13:33 nfsd
11074 ?        00:14:35 nfsd
11075 ?        00:16:23 nfsd
11076 ?        00:21:52 nfsd
11077 ?        00:33:34 nfsd
11078 ?        00:48:10 nfsd
11079 ?        01:02:44 nfsd
15135 ?        00:00:03 smbd
15137 ?        00:00:17 smbd
15141 ?        00:00:05 smbd
20603 ?        00:00:00 smbd

我還能夠使用 OID 獲取正在執行的程序列表,1.3.6.1.2.1.25.4.2.1.2其中還包含smbdnfsd程序:

> snmpwalk -v 2c -c secret host 1.3.6.1.2.1.25.4.2.1.2 | grep "smbd\|nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11068 = STRING: "nfsd4_callbacks"
iso.3.6.1.2.1.25.4.2.1.2.11072 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11073 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11074 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11075 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11076 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11077 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11078 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11079 = STRING: "nfsd"
iso.3.6.1.2.1.25.4.2.1.2.11724 = STRING: "smbd"
iso.3.6.1.2.1.25.4.2.1.2.12367 = STRING: "smbd"
iso.3.6.1.2.1.25.4.2.1.2.15135 = STRING: "smbd"
iso.3.6.1.2.1.25.4.2.1.2.15137 = STRING: "smbd"
iso.3.6.1.2.1.25.4.2.1.2.15141 = STRING: "smbd"
iso.3.6.1.2.1.25.4.2.1.2.29897 = STRING: "smbd"

它是否應該像這樣工作並且使用procSNMP 指令監視服務是一個好主意還是我應該使用extends (已經讓它們為 ZFS 和 SLURM 狀態工作)?

環境:

  • NET-SNMP 5.7.3
  • Ubuntu 伺服器 16.04

下面 OID 中報告的零1.3.6.1.4.1.2021.2.1.100實際上意味著一切正常,非零表示錯誤。

供將來參考:下面的 OID1.3.6.1.4.1.2021.2.1.101會在出現錯誤時提供更多資訊。

引用自:https://serverfault.com/questions/867910