金笛后花園

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

金笛只為您,一切全為您

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

封面

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

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

image001

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

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

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

image003

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

image005

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

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

image007

4

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

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

(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()即可實現(xiàn)通過中間件發(fā)短信的功能。

image013

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

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

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

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

image015

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

 

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

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

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

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

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

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

插件下載:plugins

2020/11/25 0 / /
標簽:  暫無標簽

4 + 6 =

回到頂部
封开县| 阿克陶县| 英山县| 洪湖市| 宝清县| 尖扎县| 朔州市| 邹平县| 南部县| 札达县| 麟游县| 青岛市| 东乌珠穆沁旗| 彭阳县| 桂平市| 张家界市| 修水县| 锡林郭勒盟| 报价| 云南省| 嘉鱼县| 洛浦县| 东海县| 昌都县| 高州市| 新巴尔虎左旗| 仪陇县| 晋中市| 乐至县| 平泉县| 盐边县| 河北省| 涪陵区| 富蕴县| 宁国市| 巴东县| 玉树县| 望城县| 奉节县| 胶南市| 泗洪县|