一連寫了 4 篇有關於 SNMP 文章, 看得也都膩了, 這次換個話題聊聊 Notification 吧, 以後有機會再回頭來談 SNMP 的其他話題 (例如 Trap).

我們架起了 OpenNMS, 除了能在 Web Console 上面顯示伺服器或服務是否正常之外, 當然也希望當伺服器或服務異常時, OpenNMS 可以主動通知我們, 因為我們總不能24小時不停的盯著 Web Console 吧? 這點也是 OpenNMS 的強項, 因為他設計上預設已經可以透過 email (註1) 等方式傳送這些異常通知給負責值班的人員, 若這些方法還無法達到我們的要求, 還可以透過其他自定的方式來通知, 例如放個警示燈警示器喔咿喔咿一下 (讓路給 MIS 喔~ 你! 別比中指!!) 之類的, 非常有彈性.

註1: 除了 email, 預設還有文字呼叫器 (pager), irc, 語音電話, 簡訊, ... 等等方式, 不過好像要搭配相關的設備與電信廠商, 筆者尚未嘗試過

這次我們先示範一下透過 email 通知好了 (這個最簡單, 筆者偷懶 ^^), 步驟如下:

  1. 設定 admin 的 mail address
  2. 設定 email 參數
  3. 開啟 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" 儲存設定

Modify User Profile 

Set mail address 

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 # 打開

Edit 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 帳號的密碼"

Modify major properties  

Modify authentication properties 

 

狀況二: 用 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

Modify for JMTA 

 

3. 開啟 Notification 功能

設定好了, 接下來可以通知 OpenNMS "該寄信囉!!". 尚未設定前, Web Console 上面的顯示應該跟下圖是一樣的, Notifice Off, 且 Notification 框框裡面顯示 No outstanding notices, 即使畫面的左邊有一堆 Outage

No notification 

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"

Set notification on 

 

這時 OpenNMS 的 Notification 已經可以運作了, 在 Web Console 可以看到 Notices 已經變成 On, 若這時候有發生新的 Outage, 在 Notification 框框裡面會顯示 "1 outstanding notice", 表示請你快快去處理的意思啦 ^^

Notification on 

同時您應該會收到 Outage 通知的電子郵件, 通知您說某個 Node (本範例為 192.168.10.55) 的所有服務都當了 (可能是網路斷線, 伺服器關機, 作業系統當掉, 或者其他因素)

Outage message 

當故障排除後, OpenNMS 偵測到該主機或服務恢復正常, 會再發出一封通知給您. 通知的標題跟上面的 Outage 一樣, 只是前面多了一個 "RESOLVED", 方便我們對照

Outage clear message 

創作者介紹

Egg Chang 的部落格

Egg Chang 發表在 痞客邦 PIXNET 留言(4) 人氣()


留言列表 (4)

發表留言
  • ououming123
  • 你好,我最近在按opennms.在你的帖子中收获良多.
    最近也在很多台湾论坛逛过. 这边的学习氛围非常好.很羡慕.
    我现在在通过配置trap尝试当cpu使用达到一定percent时让opennms发邮件报警.
    我首先自己写了一个event和threshold来报警. 但是没有效果.
    然后我调用opennms自带的uei.opennms.org/vendor/websense/cpuMaxUsageExceed
    但是依然没有效果.
    请问我是有什么地方设置的不对还是其他的什么原因呢?
    我通过opennms发邮件的功能是完好的.
    不甚感谢
  • 畫面右上角有沒有一個 Notices On (綠色) 或 (Notices Off (紅色) 的字樣?

    Egg Chang 於 2013/10/09 17:04 回覆

  • ououming123
  • 我有打开Notification功能的.可以正常收到 node down, snmp down之类的通知.因为opennms默认是占用了161,162端口.所以我不知道要如何去安装snmp-agent. 我只安装了net-snmp和libs和utils,
    我不知道要如何启动agent,因为会报161,162端口被占用的错误.我查了一下显示是被opennms占用.我把占用端口的进程杀掉后opennms也down掉了.
    我现在是在本机上同时启动opennms和snmp-trap.但是trap不能正常使用.
    opennms和trap的关系让我很疑惑.因为既然opennms占用了trap的2个端口,那我应该如何在本机上启动trap呢,他们不应该是合作关系的么,为啥却打架了.
    如果我更改了trap的端口,那opennms又该如何监控哩?
    我找了很多资料都没有提及相关方面.主要都是对结果的描述,大概是因为他们的电脑都是配置好的,而且主要是在网上而不是localhost,
    我是之前都是在windows上编程很少接触linux.
    希望您能指点一下我对opennms的监控的配置.
    我的系统版本是
    Linux version 2.6.32-279.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Jun 22 12:19:21 UTC 2012
    o(≧v≦)o~~
  • ououming123
  • 前面没有留清楚. 我可以正常收到邮件通知的.不过都是一些Node down然后又恢复的通知.我是直接用yum install来安装的snmp. 不知道这样对agent是不是会有影响.现在opennms用轮询做图形显示硬件信息的已经差不多了..现在是在做用trap主动监测硬件状态并通知.再下一步要做监测日志,当程序出现exception时通知.因为i现在在卡在trap上.所以我现在又开始找jmx的资料了.. 越研究越深奥了.
  • OpenNMS 有收到 trap 的 event 嗎?

    Egg Chang 於 2013/10/10 17:39 回覆

  • ououming123
  • 好吧...我有一种想要吐血的冲动...我现在架opennms的服务器被停掉了..
    你的话忽然点醒了我,虽然我在opennms上也不知道有没有收到trap. 不过看你这么一说应该是没有收到trap的event的.
    可惜我拿来练习的服务器被关掉了...(租服务器的那个公司倒闭啦.还要赔钱好可怜.). 现在暂时没有服务器能拿来给我练习..主服务器可不能让我玩. 以后应该还会要把opennms架起来.不过不是现在.
    我还要学习更多的关于linux的知识.现在属于半知半解(我接触linux其实才1个多月)..谢谢你的帮助.如果我以后再linux上遇到了困难也可以来寻求你的帮助么? 我发现台湾在Linux和服务器上真的是走在了大陆的前面,而且这边的论坛氛围也很好呢..大陆的论坛大家都喜欢聊没什么相关的话题.聊技术话题的看起来不多..也许是我找的地方不对吧...不知道您有没有什么好的学习的论坛可以推荐给我么