> For the complete documentation index, see [llms.txt](https://netsnmp-install.netdpi.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://netsnmp-install.netdpi.net/03-configure-netsnm.md).

# 03-修改設定檔存取控制 NetSNMP

**3.1 設定檔的路徑**

snmpd.conf 主要是用來設定 agent 的運作和管理，而 NetSNMP 預設會在以下幾個路徑去尋找 snmpd.conf：/etc/snmp、 /usr/share/snmp、/usr/lib/snmp 和 $HOME/.snmp。但是在 ubuntu 10.04 中，預設的 snmp 資料夾放置在 /usr/local/share/ 中，所以必須把撰寫好的設定檔放至 /usr/local/share/snmp 中讓 NetSNMP 可以搜尋到。所以我們必須依序下列指令將設定檔放到適當的位置：

\#cd net-snmp-5.5

進入 net-snmp-5.5 後，此檔案資料夾中有一個設定檔的範例檔 EXAMPLE.conf，所以此時我們只需使用此範例檔並且將檔案放置適當的位置，並將範例檔檔名修改成 snmpd.conf 即可開始設定管理資訊。

\[net-snmp-5.5]#sudo cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf

**3.2 Agent behavior**

agentaddress \[\<transport-specifier>:]\<transport-address>\[,...]

定義要 listen 的 IP 位址和通訊埠。

基本上都會設定 listen 本地端 IP 位址以及 localhost，讓本地端主機和外部主機都可以由此 IP 獲得服務，而 NetSNMP 服務預設的通訊埠(port)為161，如圖 8。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2FEzqaMEfRO3aD4zIKpMdJ%2F8.png?alt=media&amp;token=9d665948-089e-4db0-b426-bc52c4521140" alt=""><figcaption><p>圖 8 Agent behavior設定</p></figcaption></figure>

**3.3 Access control**

設定一：

rocommunity COMMUNITY

rwcommunity COMMUNITY

此處實作 SNMPv1 或 SNMPv2c 群組中的權限設定。rocommunity 定義只可讀取 ( snmpget 和 snmpgetnext)，rwcommunity 定義可讀取 ( snmpget 和 snmpgetnext) 也可以寫入 (snmpset)。

將 rocommunity 設定成 public，並且將 rwcommunity 設定成 private，如圖 9。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2FguB84uzUbK7cjYhlqoVU%2F9.png?alt=media&amp;token=d5dc962f-a480-4cbc-9f65-4542fd7a971b" alt=""><figcaption><p>圖 9定義 access control community name</p></figcaption></figure>

設定二：

如圖 10，在snmpd.conf 中定義 security name 與其相對應的 community name 和主要的 IP 位址來源。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2FBdVd3psnDyQlorVSvJy1%2F10.png?alt=media&amp;token=050ec132-8fe8-4e60-a1e4-d59d7e907be6" alt=""><figcaption><p>圖 10 定義 security name 和相對應的 IP 位址</p></figcaption></figure>

**3.4 System information**

此項目主要定義系統相關資訊，如圖 11。

設定一：System Group

sysLocation STRING

sysContact STRING

sysName STRING

將系統位置、聯絡人，系統名稱 (sysLocation.0、sysContact.0和sysName.0) 分別設定相關資訊。

sysServices NUMBER

設定sysServices.0，預設值為72。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2Fyjd1kA9WrZRqL6LQlOjQ%2F11.png?alt=media&amp;token=8e21bdd3-ae79-4f0d-8654-def4b64c67af" alt=""><figcaption><p>圖 11設定 System Group</p></figcaption></figure>

設定二：Process Monitoring

proc NAME \[MAX \[MIN]]

監視本機端的 process，並使用名稱 (在/bin/ps –e中的程序名稱) 來定義。如果定義監視的 process 名稱少於 MIN 或大於 MAX，prErrorFlag 都會被設定為1，並且可以將相對應的訊息設定在 prErrMessage 中，但並不會自動觸發trap。假如 MIN 以及 MAX 沒有被定義，代表此程序至少要有一個；假如只定義 MAX，則 MIN 的預設值為0。

相對應的設定如圖 12。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2FLDJIm5VkAwJ4ODLxlLTh%2F12.png?alt=media&amp;token=b1e8eb18-d328-40ae-8df1-0ab9a6a97c21" alt=""><figcaption><p>圖 12 Process Monitoring 設定</p></figcaption></figure>

設定三：Disk Monitoring

disk PATH \[ MINSPACE | MINPERCENT% ]

監視使用多少的磁碟資源，以及可用的磁碟空間。MINSPACE可使用Kb或者北分比(%)表示，分母為磁碟總容量。如果低於定義的MINSPACE，dskErrorFlag會被設定為1，以及相對應的錯誤訊息可設定在 dskErrorMsg 中。

includeAllDisks MINPERCENT%

配置監視所有磁碟系統的百分比。

相對應的設定如圖 13

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2FoffAMl2maXCEv848jC9g%2F13.png?alt=media&amp;token=b91d2533-3706-45d9-b9dd-6f7943ce24b4" alt=""><figcaption><p>圖 13 Disk Monitoring 設定</p></figcaption></figure>

設定四：System Load

load MAX1 \[MAX5 \[MAX15]]

查看 local system 的平均負載，可設定平均每 1min、5mins 或 15mins 統計一次。如超過設定的負載，laErrorFlag 會被設成1，以及相對應的錯誤訊息可設定在 laErrMessage 中。

相對應的設定值如圖 14。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2F81Q0NNubDR0yKUPqeUit%2F14.png?alt=media&amp;token=112b70c3-e145-43db-9766-9dc28cce1cb8" alt=""><figcaption><p>圖 14 System Load 設定</p></figcaption></figure>

**3.5 Active Monitoring**

trapsink HOST \[COMMUNITY \[PORT]]

trap2sink HOST \[COMMUNITY \[PORT]]

informsink HOST \[COMMUNITY \[PORT]]

定義 snmptrap 接收者的位址，可分別為 SNMPv1 TRAPs、SNMPv2c TRAP2s 或 SNMPv2 INFORM。

作相對應的設定如圖 15，開啟接收 snmptrap。

<figure><img src="https://1503996886-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJRSxjX92IlG5PSs0FDHt%2Fuploads%2FXTg6NPOc0ENaD2zjJQlj%2F15.png?alt=media&amp;token=9fdf1b6a-4fcb-44a8-84ec-3212b8cbcb70" alt=""><figcaption><p>圖 15 Notification Handling 設定</p></figcaption></figure>
