利用Serverchan進行微信告警推送

天府雲創發表於2017-12-21

Serverchan實現微信告警推送


「Server醬」,英文名「ServerChan」,是一款「程式設計師」和「伺服器」之間的通訊軟體。

說人話?就是從伺服器推報警和日誌到手機的工具。官方連結:首頁 | Server醬 http://sc.ftqq.com/3.version

之前實現推送告警資訊到微信的方法有如下幾種:

1、通過企業公眾號實現—-收費:

2、通過QQ郵箱,在微信平臺上開啟收到郵件進行提醒;

3、第三方告警平臺API,一般也是收費的;

不過最近看文件時,發現serverchan應用,其原理屬於第三種,不過其是免費的,而且操作步驟非常簡單。先看下效果:


Serverchan配置步驟

  1. 登入:用GitHub賬號登入網站,就能獲得一個SCKEY(在「傳送訊息」頁面)
  2. 繫結:點選「微信推送」,掃碼關注同時即可完成繫結
  3. 發訊息:往 http://sc.ftqq.com/SCKEY.send 發GET請求,就可以在微信裡收到訊息啦

傳送訊息非常簡單,只需要向以下URL發一個GET或者POST請求:https://sc.ftqq.com/SCKEY.send

接受兩個引數:

  • text:訊息標題,最長為256,必填。
  • desp:訊息內容,最長64Kb,可空,支援MarkDown。

最簡單的訊息傳送方式是通過瀏覽器,在位址列輸入以下URL,回車後即可傳送,例如:

  1. https://sc.ftqq.com/SCKEY.send?text=恭喜發財&desp=www.361way.com站點還是不錯的

在具體呼叫的時候可以直接curl 直接呼叫該URL,也可以使用 shell 做一個簡單的函式封裝,例如:

  1. send(){
  2. key=your key id
  3. title=運維之路可用性監控
  4. content=www.361way.com暫時不可用,趕快檢查
  5. curl "http://sc.ftqq.com/$key.send?text=$title&desp=$content" >/dev/null 2>&1 &
  6. }

在使用的時候,直接send呼叫就行了。

serverchan官方頁面也提供了php呼叫的示例。本身get方法無論在任何語言裡呼叫都不復雜。其很方便的可以在任何語言下進行介面連線。

sererchan也提供了一對多的傳送服務 —— PushBear ,不過其每天只有1000條傳送的上限。

來個示意圖:

scgif.gif


為什麼

是的是的,有很多的客戶端都可以做到這個功能,比如Slack。那為什麼我還要寫一個呢?因為它們總是給得太多,我只是要一個簡簡單單的訊息接收器而已。

這也成為了「Server醬」的設計目標:功能越少越好。

  • 只有一個介面:每次呼叫介面,我們都要去讀N長的API說明文件,看得頭昏眼花。所以ServerChan只有一個介面,只要會輸入網址,你就會用。
  • 一分鐘完工:註冊賬號是狠麻煩的事情,所以我們用GitHub賬號;輸入賬號是狠討厭的事情,所以我們用繫結二維碼。所有這些流程都保證了一個程式設計師可以在一分鐘內配置好「Server醬」,並收到第一條推送訊息。你問沒有GitHub賬號的怎麼辦?沒GitHub賬號的還能叫程式設計師麼?
  • 可免客戶端:安裝客戶端對很多使用者來說是一種痛苦,但申請微信公號是更大的痛苦,所以我們直接申請好了給你用,就什麼痛苦都沒了。


應用場景

「Server醬」本質上是一個有著GET介面的可程式設計訊息接收器,所以你可以創造出各種玩法來。


伺服器異常報警

在寫程式碼的時候,我們往往會遇到一些可能出現的異常。比如我們的簡歷分析系統,每隔幾天就會出現一份不能分析的簡歷、我們的郵件傳送系統,每發100份啟用郵件總有幾個被彈回。原來這種時候我們都是在伺服器上打下一些日誌,然後就再也沒有然後了。現在你可以用一行程式碼把訊息推送到「Server醬」。

file_get_contents('http://sc.ftqq.com/SCKEY.send?text='.urlencode('主人第250號簡歷分析失敗啦~'));


除錯無法在網頁顯示回撥內容

比如在除錯微信介面時,微信伺服器會回撥我們的伺服器。這時候頁面的輸出是無法看見的。但你可以輕鬆的把它通過「Server醬」傳送到手機上。

向手機傳送內容

有時候需要往手機傳送一些備用資訊,比如電話、地址、網址和圖片。因為「Server醬」支援Markdown,所以可以很輕鬆的完成。

我們在「傳送訊息」頁面提供了一個線上傳送工具。

Screen Shot 2015-09-07 at 1.09.49 PM.png

這樣你就不用總是在位址列發訊息了。訊息內容中填入

[方糖氣球](http://ftqq.com)

就可以推送連結;填入

![logo](http://sc.ftqq.com/static/image/bottom_logo.png)

就可以推送圖片。在「Server醬」中,直接點選連結和圖片,可以在系統瀏覽器中開啟。

注:在 Markdown 語法中,兩個空行才是換行,不能換行的同學多加個回車應該就好啦。

TalkAdmin

TalkAdmin 是一套為通過微信來管理後臺的解決方案。


FAQ

Q:為什麼介面返回OK,微信收不到

A:不要在text引數中傳遞引號、點、花括號等字元。因為微信的介面不支援一系列的特殊字元,但沒有詳細列表,所以我只簡單的過濾掉了一些。如果需要傳送特殊字元,請放到 desp欄位中。

Q:你怎麼規劃這個專案的?

A:因為自己想用所以寫了。因為寫了所以順便分享出來給有同樣需求的人。如果用的人多,會慢慢迭代一些功能上去。但應該不會商業化。

Q:iOS版在哪裡麼?

A:iOS的使用量非常小,於是不續費了。

Q:這個平臺穩定麼?我可以長期使用麼?

A:依賴於SAE和LeanCloud的穩定性。因為花不了多少雲豆和推送配額,所以應該會一直維護著她。

Q: 訊息的儲存規則是怎樣的?

A:雲端的訊息存一週,客戶端只從雲端拉取最新的100條。客戶端列表不分頁,如果卡,可以在「設定」中「清空本地儲存」。這些規則有些簡單粗暴,以後會優化。

Q:對傳送訊息有什麼限制?

A:每人每天傳送上限500條,相同內容5分鐘內不能重複傳送,不同內容10秒內不能連續傳送 不同內容一分鐘只能傳送30條。主要是防止程式出錯的情況。

Q:Server醬開源麼?

A:不開源,因為就算開源也不是部署完就能用的,要配置各種證照、購買認證服務、編譯打包和釋出。我沒有精力把這些都整理成文件,所以不會發布成開源專案,但如果你想要客戶端的原始碼,直接解壓就好了。另外,我把所有用到的開源專案、雲服務和遇到的坑都寫出來了,看這裡:http://ftqq.com/2015/09/serverchan-server-alert-pusher/


順便插播一條最新安全AD:

公安部研發中小網站安全防護系統 為您的網站保駕護航

此服務是由公安部第三研究所牽頭主持的,實際上為阿里雲的付費 WAF 服務,目前註冊可以免費獲取 1 年使用權,後續未知。 服務為基礎版。 阿里雲官網售賣的,一年要好幾千RMB。
地址:https://waf.islab.cn/signup.html

資訊保安公安部實驗室,公安部第三研究所,沒問題,事業單位。
公安部研發中小網站安全防護系統 為您的網站保駕護航

公安部研發中小網站安全防護系統 為您的網站保駕護航


無限星辰 , 版權所有丨如未註明 , 均為原創丨本網站採用BY-NC-SA協議進行授權 , 轉載請註明公安部研發中小網站安全防護系統 為您的網站保駕護航

相關文章