金笛后花園

金笛工業(yè)手機(jī)官方博客

金笛只為您,一切全為您

基于金笛短信Web中間件實(shí)現(xiàn)Cacti短信報(bào)警

封面

注:此插件面向Cacti版本0.8.8h

本文的主角是Cacti,這是一款基于PHP的開(kāi)源網(wǎng)絡(luò)流量監(jiān)測(cè)圖形分析工具,同時(shí),因其可以做到非常多自定義的監(jiān)測(cè)項(xiàng)目,廣受運(yùn)維人員歡迎。

image001

我們將介紹如何給Cacti設(shè)備監(jiān)控系統(tǒng)添加短信報(bào)警,以便讓運(yùn)維人員及時(shí)收到設(shè)備故障報(bào)警,減少應(yīng)急修復(fù)反應(yīng)時(shí)間。

首先介紹完成短信報(bào)警需要接觸到的兩個(gè)主要程序,由Cacti的兩個(gè)插件以及金笛短信Web中間件構(gòu)成。

發(fā)送短信的任務(wù)由金笛短信Web中間件與金笛短信貓配合完成,下圖為Web中間件的短信收發(fā)接口設(shè)置,僅需通過(guò)訪問(wèn)http接口,即可用Web中間件完成各類短信的收發(fā)。

image003

而Cacti這邊需要兩個(gè)基本插件完成報(bào)警動(dòng)作,其中Settings插件提供郵件發(fā)送接口,Thold插件提供閾值觸發(fā)以及報(bào)警服務(wù),我們只需要將這兩個(gè)插件進(jìn)行改造即可讓Cacti擁有短信報(bào)警的功能。

image005

Cacti的一般報(bào)警流程是這樣的:Cacti部署到企業(yè)內(nèi)網(wǎng)并添加需監(jiān)控的服務(wù)器,在Thold插件中設(shè)置好報(bào)警閾值,即可在發(fā)生故障時(shí)觸發(fā)Settings插件的郵件報(bào)警功能。

添加短信報(bào)警功能,我們需要做的是給settings插件添加短信處理代碼塊,可以實(shí)現(xiàn)通過(guò)金笛Web中間件發(fā)送短信報(bào)警,及時(shí)通知運(yùn)維人員進(jìn)行修復(fù)。

image007

4

以下講解如何給Cacti的Settings插件添加必要的代碼,為Cacti添加短信報(bào)警功能,具體實(shí)施步驟如下:

1、?在settings插件的目錄(\cacti\plugins\settings\)下找到setup.php和include目錄下的mailer.php兩個(gè)文件,分別對(duì)這兩個(gè)文件進(jìn)行如下修改

(1)?setup.php(添加管理菜單)

將菜單代碼構(gòu)造如下

image009

修改之后的效果如圖,已基本將調(diào)用所有需要配置的內(nèi)容囊括,而且可以在之后的代碼中直接調(diào)用其值。

image011

(2)?mailer.php添加核心代碼(用于發(fā)送短信的代碼)

核心代碼用于調(diào)用短信中間件web接口通信,可以放在mailer.php內(nèi)的Mailer類中,命名為send_sms(),原理是用php的原生cURL直接調(diào)用web中間件的http接口,之后在插件中調(diào)用$Mailer->send_sms()即可實(shí)現(xiàn)通過(guò)中間件發(fā)短信的功能。

image013

由于代碼直接調(diào)了Cacti自帶的配置文本,修改配置也非常方便。

在實(shí)際實(shí)施中我們添加了較多的判定,以保證Cacti能正確讓W(xué)eb中間件發(fā)送短信,以防止通訊中出錯(cuò),出現(xiàn)漏發(fā)或Cacti崩潰的情況發(fā)生,也添加了debug記錄,可以在測(cè)試中及時(shí)發(fā)現(xiàn)問(wèn)題.

(3)?mailer.php添加調(diào)用代碼(發(fā)郵件同時(shí)發(fā)短信)

此文件需要更改的部分非常少,只需要在調(diào)用發(fā)郵件的方法_send_mail()之后添加調(diào)用短信發(fā)送的方法,即可調(diào)用上一步在mailer.php中構(gòu)造的發(fā)短信方法來(lái)發(fā)送短信。

image015

以上一系列配置避免了一個(gè)問(wèn)題:有些插件沒(méi)有根據(jù)settings文檔中寫的推薦方式去調(diào)用settings/includes/functions.php中的發(fā)郵件方法,比如settings插件和thold插件原作者Jimmy Conner,直接在需要發(fā)郵件的地方include(mailer.php),不通過(guò)functions.php中的發(fā)郵件方法,也避免了有些時(shí)候測(cè)試時(shí)一切正常,但是實(shí)施后漏收短信的問(wèn)題。

 

當(dāng)然,也有客戶不想所有通知都發(fā)短信,覺(jué)得短信太多無(wú)法體現(xiàn)出通知短信的重要性。可以按照以下步驟進(jìn)行代碼改造:

1.?在需要發(fā)短信的Cacti插件中(比如thold的輪詢功能polling),找到其調(diào)用發(fā)郵件的語(yǔ)句;

2.?在發(fā)郵件的代碼中找到郵件正文的變量名;

3.?在調(diào)用郵件語(yǔ)句之后再調(diào)用一次Mailer類的send_sms()方法,將郵件正文發(fā)給這個(gè)方法;

4.?測(cè)試是否能正確調(diào)用該代碼。

這樣,Cacti就有了發(fā)送短信的功能,如果需要定制Cacti的發(fā)短信功能或者其他軟件的發(fā)短信功能,也可以直接聯(lián)系我們(400 050 1096),同時(shí)非常感謝您的閱讀!

插件下載:plugins

2020/11/25 0 / /
標(biāo)簽:  暫無(wú)標(biāo)簽

6 + 9 =

回到頂部
琼海市| 翁牛特旗| 彰武县| 罗平县| 兴业县| 资溪县| 四平市| 河东区| 彭阳县| 千阳县| 梁平县| 绥滨县| 吐鲁番市| 白银市| 怀化市| 扎鲁特旗| 海南省| 洞头县| 海丰县| 定南县| 遵化市| 同仁县| 且末县| 平定县| 沭阳县| 元氏县| 大邑县| 宁南县| 山东省| 曲阳县| 珠海市| 西丰县| 平利县| 富锦市| 曲麻莱县| 鲁甸县| 筠连县| 和林格尔县| 探索| 正蓝旗| 杭锦后旗|