一連寫了 4 篇有關於 SNMP 文章, 看得也都膩了, 這次換個話題聊聊 Notification 吧, 以後有機會再回頭來談 SNMP 的其他話題 (例如 Trap).
我們架起了 OpenNMS, 除了能在 Web Console 上面顯示伺服器或服務是否正常之外, 當然也希望當伺服器或服務異常時, OpenNMS 可以主動通知我們, 因為我們總不能24小時不停的盯著 Web Console 吧? 這點也是 OpenNMS 的強項, 因為他設計上預設已經可以透過 email (註1) 等方式傳送這些異常通知給負責值班的人員, 若這些方法還無法達到我們的要求, 還可以透過其他自定的方式來通知, 例如放個警示燈警示器喔咿喔咿一下 (讓路給 MIS 喔~ 你! 別比中指!!) 之類的, 非常有彈性.
註1: 除了 email, 預設還有文字呼叫器 (pager), irc, 語音電話, 簡訊, ... 等等方式, 不過好像要搭配相關的設備與電信廠商, 筆者尚未嘗試過
這次我們先示範一下透過 email 通知好了 (這個最簡單, 筆者偷懶 ^^), 步驟如下:
- 設定 admin 的 mail address
- 設定 email 參數
- 開啟 Notification 功能
1. 設定 admin 的 mail address
這當然是要做的, 不然 OpenNMS 哪知道要寄給誰?
1. 在 Web Console 的主功能表, 點 "Admin" --> "Configure Users, Groups and Roles"
2. 按 Configure Users, 看準 admin 帳號點 "Modify" 的圖示
3. 在 Email 欄位輸入合法的 Email Address (否則寄不到喔!!)
4. 按底下的 "Finish" 儲存設定
2. 設定 email 參數
狀況一: OpenNMS 透過外部 mail server (192.168.10.20) SMTP Port 25/tcp 來寄信:
(這次沒有 Web UI 可以設定了, 乖乖把 putty 拿出來用吧. 啥? 沒有 putty? 這也是 Open Source 喔 ^^ 點此下載 putty.zip)
1. 請用ssh client (例如 putty.exe) 連到 OpenNMS 主機
2. 打開 javamail-configuration.properties
cd /opt/opennms/etc # 切換目錄
cp javamail-configuration.properties javamail-configuration.properties.bak # 備份 ** 重要 **
vi javamail-configuration.properties # 打開
3. 修改以下屬性並存檔:
a. fromAddress 改為合法的 address (很多 mail server 不允許不認得的 from address 寄信)
b. mailHost 指向外部 mail server, 例如: 192.168.10.20
c. 把 mailHost, mailer, transport, debug, smtpport, smtpssl, quitwait 等屬性前面的 "#" 移除
d. 如果 mail server 寄信時需要認證, 則下面幾個屬性也需要修改 (記得屬性前面的 "#" 也要移除):
(1). authenticate=true
(2). authenticateUser="mail server 帳號"
(3). authenticatePassword="mail server 帳號的密碼"
狀況二: 用 OpenNMS 附的 JMTA 自己寄信, 不需要透過外部的 mail server
OpenNMS 自己也有一個 MTA (Mail Transfer Agent), JMTA, 因此也可以透過他來傳送通知郵件, 只要這台 OpenNMS 主機可以把信寄得出去 (廢話? 不是喔 ^^, 如果 DNS 沒設定好, 或者 DNS 的 MX Record 錯誤, 可是寄不出去的).
1. 先將 javamail-configuration.properties 還原 (啥! 沒備份!? 去牆壁那邊罰站)
2. 修改以下屬性並存檔
a. fromAddress 改為合法的 address (保持良好習慣, 靈異事件不會來 ^^)
b. 把 mailer, transport, debug, smtpport, smtpssl, quitwait 等屬性前面的 "#" 移除 (mailHost 的不需要移除)
c. 將 useJMTA 改為 true
3. 開啟 Notification 功能
設定好了, 接下來可以通知 OpenNMS "該寄信囉!!". 尚未設定前, Web Console 上面的顯示應該跟下圖是一樣的, Notifice Off, 且 Notification 框框裡面顯示 No outstanding notices, 即使畫面的左邊有一堆 Outage
1. 請用ssh client (例如 putty.exe) 連到 OpenNMS 主機
2. 打開 notifd-configuration.xml
cd /opt/opennms/etc # 切換目錄
cp notifd-configuration.xml notifd-configuration.xml.bak # 備份 ** 重要 **
vi notifd-configuration.xml # 打開
3. 把 status="off" 改為 status="on"
這時 OpenNMS 的 Notification 已經可以運作了, 在 Web Console 可以看到 Notices 已經變成 On, 若這時候有發生新的 Outage, 在 Notification 框框裡面會顯示 "1 outstanding notice", 表示請你快快去處理的意思啦 ^^
同時您應該會收到 Outage 通知的電子郵件, 通知您說某個 Node (本範例為 192.168.10.55) 的所有服務都當了 (可能是網路斷線, 伺服器關機, 作業系統當掉, 或者其他因素)
當故障排除後, OpenNMS 偵測到該主機或服務恢復正常, 會再發出一封通知給您. 通知的標題跟上面的 Outage 一樣, 只是前面多了一個 "RESOLVED", 方便我們對照
留言列表