上一篇文章大略說明利用 OpenNMS 的 Auto Discovery 功能來自動找到可以監控的主機, 以及該主機上有哪些服務, 通常設定完畢後數分鐘, 從 OpenNMS 的 Web Console 就可以看得到 Auto Discovery 的成果. 從筆者在模擬環境進行 Auto Discovery 的結果, 可以看到目前共找到 68 個服務, 其中有 48 個 IP 位址 (Network Interfaces), 15 個 Web 服務, 1 個 DNS 或 DHCP 服務, 以及 8 個其他服務. 

OpenNMS Web Console 

其實 Discovery 只有一個任務: 找到 "嫌疑犯(newSuspect)", 找到後就丟給後面的 Capabilities Daemon (Capd), Poller, Collectd, ... 等 daemon 去負責.

筆者試著用一個例子來說明 Discovery, Capd, Poller 這三個主要 daemon 的過程與關係

 

月色明亮的夜晚, D戰警 (Discovery) 正飛翔在台北市東區 (Auto Discovery 設定掃描的 IP 範圍) 的上空巡邏, 飛著飛著, 忽然發現底下一個人行跡可疑.

D戰警 (Discovery): 呼叫凱子(Capd), 唉皮路99號 (IP) 發現一名行跡可疑的人 (對PING有反應), 請求支援 (產生 newSuspect 事件)

凱子 (Capd): Roger, 我馬上過去盤查

收到D戰警的通之後, 凱子 (Capd) 立刻打開警號, 喔~依~喔~依~ 的驅車前往現場

凱子 (Capd): 前面那個人 (IP) 站住別動!! 把口袋的東西通通掏出來!!

唉皮99號 (IP): (發抖~) 長官饒命 (=_= 這樣形容會不會被真的警察抓?)~ 我身上就這些東西了~ 請長官過目~

凱子 (Capd): 很好, 讓我看看...唔~, 有 iPhone (Web Server),  GPS (MSSQL), iPad (DNS),... 就這樣?

唉皮 (IP): 就這樣, 真的沒有了~

凱子 (Capd): 好, 我都記下來了. 這次算你好運, 沒被我抓到什麼. 但是別以為這樣就沒事了!! 以後會有耙子 (Poller) 每隔 5 分鐘檢查一下你這些雞絲是不是壞掉. 好了, bye.

唉皮99號 (IP): .... 嗚~

五分鐘後....

耙子 (Poller): 兄弟, 聽說你身上有 iPhone (Web Server),  GPS (MSSQL), iPad (DNS)? 拿出來檢查檢查?

唉皮99號 (IP): 長官請用~

耙子 (Poller): 先檢查 iPhone (Web Server) ... 好! 可以打 0204, 正常. 再來 iPad (DNS), 不錯喔!! 用來看x情網站挺效果挺棒的

唉皮99號 (IP): ....

耙子 (Poller): 最後是GPS (MSSQL), ... ㄟ! 怎麼搞半天定位定不到!? 是 P 牌的嗎? 登記起來 (打開筆記本) ... GPS 故障...

耙子 (Poller): 好啦, 以後每隔 5 分鐘後我都會來檢查一次喔!! (丟~)

唉皮99號 (IP): ^^~~~ (接~)

在筆者的環境裡面, 從主功能表的 Node List 可以看到 Discovery 總共找到了41個 IP (註: 目前 IP = Node, 但是若開啟了 SNMP 的功能後, 這個關係就不是絕對的, 一個 Node 可能會有多個 IP).

Nodes discovered by OpenNMS 

跟隨在 Discovery 的後面, Capd 在這 41 個 IP 裡面搜到了68種服務. 而 Poller 則針對 Capd 搜到的 68 種服務當中, 檢查這些服務是否正常, 在本文的第1張截圖裡面就有 1 個服務 (隸屬於 192.168.50.7) 從 7 分鐘前開始異常. 點 Node 進去後 OpenNMS 就會展示該 Node 最近的狀況, 包含該 Node 有哪幾個 IP 位址, 有提供哪些服務, 目前服務的服務狀況, 以及最近發生了哪些事情, ... 等等.

Node Status 

後記:

既然 Auto Discovery 是用 ICMP (Ping) 來偵測主機是否存在, 那遇到那些 Ping 不到的主機 (例如防火牆擋掉 Ping 封包), 要怎麼辦?

是的, 目前有兩種方式:

  1. 捨棄 Auto Discovery 方式, 改用 Provision 來定義需要監控的主機與服務, 這個後續的文章會提到
  2. 跳過 Auto Discovery, 叫 Capd 直接去搜身. 步驟如下:
  • 登入OpenNMS主機 (通常是用SSH)
  • /opt/opennms/bin/send-event.pl --interface <IP位址> uei.opennms.org/internal/discovery/newSuspect

arrow
arrow
    全站熱搜

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