系統工程師必備監控小工具 deadman

今天要來分享一個長期以來藏在我心中的小工具,以前搞網路出國做軟體定義網路 (Software Defined Networking, SDN) 相關的 PoC,因為時間非常短,僅僅只有一週,所以出門前要測試、準備工具需要相當齊備,而且現場狀況神多,尤其是虛擬網路及實體網路之延伸綜合性問題,遇到問題時會不知道要相信哪個點,需要反覆一直確認。而我鍵盤上的 ping 加數字鍵已經被我打爛了,為了各位的鍵盤和手指著想,今天要來介紹一個由日本 Interop Tokyo 發展出來的一個超好用小工具 deadman

Shownet 是什麼?

I know it works because I saw it at Interop.

截至於官網 What is Shownet?,自 Interop Tokyo 於 1994 年成立以來,Shownet 一直都是每年度展示網路技術的一個重要活動,這個活動秉持著我要親眼看到他真的能跟其他廠商的設備聯通才算數為契機,一路將當年度最前衛的網路技術整合建置測試直至現在,所以你可以在他們的 Slideshare 上找到歷年來的年度網路拓樸圖。這邊特別把 1994 年跟最近 2019 的拓墣圖拿出來比較一下,就會發現真的是歲月如梭 XD

幕後花絮 = 肝 + 血 + 淚 + 青春

這邊放一下他們年度的紀錄片 XD 各位有在弄現場的工程師一定很有既視感

2018 年的幕後花絮

2017 年的幕後花絮

動員規模

分享一下於 Shownet 2019 時的人力物資規模,已經來到約 2000 台的設備和一場會議動員 447 名人員的規模了

Deadman 介紹

deadman is a curses-based host status checking application using ping

deadman 當初是為了 Interop Tokyo ShowNet 活動而寫的,本身沒什麼使用到特殊功能,主要是用 ICMP 協議 + 持續執行為主,以下 3 點是他主要能力

  • 觀測當前網路狀態
  • 本機 -> 多點觀測
  • 開箱即用監控

這個小工具最大的優勢就是讓你少打好幾次 ping 及後面的那一串 IP,這是個很簡單,但卻很重要的小事

環境資訊

  • Red Hat Enterprise Linux 7.7
  • Python 3.6 (supported by Red Hat)
  • deadman 20.01.08

安裝 deadman

超簡單,系統預設有 Python3 即可

1
2
3
$ git clone https://github.com/upa/deadman
$ cd deadman
$ ./deadman deadman.conf

若你是 RHEL 的用戶的話,因為 RHEL 7/8 預設要使用 scl 來進行 python 環境切換,講簡單點就是官方支援類似於 virtualenv 的作法,所以你需要多下面 2 個步驟

1
2
$ yum install rh-python36 -y
$ scl enable rh-python36 bash

Demo

推薦實踐方式

第一點,如果你有仔細看指令的話,其實那個 deadman.conf 可以換成別的名字,意思是說你可以依據不同環境寫出不一樣的 IP 監測表,搭配 git 可以進行版控

然後,第二點是務必搭配終端機多工管理神器 tmux 及裡面的預設功能進行分割視窗,可以迅速建立一個暫時使用的監測系統,迅速了解當前監控點的網路狀態

你如果是做網路相關或系統建置相關的,都相當好用啊~

後話

Shownet 是先前職涯中有點小小的遺憾,沒有機會可以現場參與或觀賞他們的熱情和相關技術,希望以後有機會還是可以摸摸看

然後大家請不要吝嗇給這個專案 star 以資鼓勵,真的是蠻好用的東西

Appendix

長期監控開源專案 Smokeping

如果你是一位 SRE,想要有長期監控紀錄及圖表顯示的話,Smokeping 是個不錯的老牌選擇,有 RRDtool 幫忙畫圖 / MRTG 可以用,如下圖

其他商業方案就得要自己尋找了

References

Comments