上禮拜搞定了 OpenNMS vs. Windows 2003 Server SNMP Service 之間的複雜關係, 這次我們來玩玩其他設備. 公司或學校環境裡面, 除了 Windows Server 之外, 通常或多或少會有 Linux 吧. 目前常見的 Linux Distribution 有 RHEL (Red Hat Enterprise Linux, 這個是要錢的), Fedora, OpenSuse, Ubuntu, ... 等等 (Slackware 好像用的人不多了, 筆者以前念書時常用說~ 好懷念~), 除了上述幾個常見的 Distribution 之外, 另外還有一套 CentOS 也是很有名氣, 因為他號稱跟 RHEL 有著最高的相容性, 因此常被用來當做 RHEL 的測試環境, 或者就乾脆扶正作為 Production 的 Linux 主機來用了. 因此這次我們的任務就是:
讓 OpenNMS 可以透過 SNMP 收集 Linux (CentOS) 的資料
此招有四個步驟, 如下:
- 在 Linux (CentOS) 上面安裝 NetSNMP
- 在 Linux (CentOS) 上面設定 NetSNMP 與 Firewall
- 設定 OpenNMS 來搜刮 (Collect) Linux (CentOS) 上面的 SNMP 資料
1. 在 Linux (CentOS) 上面安裝 NetSNMP
用 ssh/telnet 登入 Linux:
# 以 yum 安裝 net-snmp
yum -y install net-snmp-utils net-snmp-libs net-snmp
# (1) 安裝完畢後, 將 snmpd 在 init level 3, 4, 5 設為自動啟動
chkconfig --level 345 snmpd on
# (2) 先手動啟動 snmpd
service snmpd start
# (3) 用 snmpwalk 初步測試 snmpd 是否正常. 其中,
# 參數 -c public 表示 snmp community name 是 public
# 參數 -v 1 表示 snmp version 1
snmpwalk -c public -v 1 localhost system
2. 在 Linux (CentOS) 上面設定 NetSNMP 與 Firewall
# 切換目錄到 snmp 設定檔的所在目錄
cd /etc/snmp
# 先備份 snmpd.conf, 再編輯
cp snmpd.conf snmpd.conf.bak
vi snmpd.conf
# 編輯時, 把預設的設定先 comment 掉
# Line 41, 47, 48, 55, 56, 62
# 如下圖所示
# Line 112~147
# (1) 把 com2sec, group, view 前面的 "#" 拿掉
# (2) com2sec 最後面的 public 改為 MYSNMP (註: 一定要改!! 否則別來找筆者算帳喔!!)
# Line 151
# 把 access 前面的 "#" 拿掉, 並將 rwview 改為 none
# Line 162, 163
# 填寫自己喜歡的 Location & Contact (如同 Windows 的 SNMP Service 的 "位置" 與 "聯絡人")
# ok, 重開 snmpd
# 測試 snmp
service snmpd restart
snmpwalk -c MYSNMP -v 2c localhost system
# 打開防火牆
# 161/UDP (SNMP)
# 162/UDP (SNMP Trap)
iptables -I RH-Firewall-1-INPUT -p udp -m udp --dport 161 -j ACCEPT
iptables -I RH-Firewall-1-INPUT -p udp -m udp --dport 162 -j ACCEPT
service iptables save
# 設定 ok!!
3. 設定 OpenNMS 來搜刮 (Collect) Linux (CentOS) 上面的 SNMP 資料
請參考上一篇文章的作法囉!! 不再贅述
當 OpenNMS 完成 rescan 後, 我們應該可以看到如下的畫面. 恭喜大家!!
ps: 有注意到沒? 中文是正常的 ^^ 微軟稍微學習改進一下吧.
留言列表