1. 程式人生 > >Python呼叫第三方介面實現nagios簡訊報警

Python呼叫第三方介面實現nagios簡訊報警

公司有需求,需要簡訊報警,所以才有瞭如下的東西。

第三方:smsbao.com 收費是1分錢一條,買的多當然就更便宜,我們買的是700元/10000條。

缺點:

1、傳送內容只能有70位元組,超過了就會拆分成多條簡訊。所以得對傳送內容進行優化。

2、傳送資訊的號碼不同

優點:

1、通過http介面,所好進行調整

2、資訊一般在1-3秒之內傳送完畢

nagios commands.cgf內容如下:

vim /usr/local/nagios/etc/objects/commands.cfg

1 2 3 4 5 6 7 8 9 10 11 # 'notify-host-by-smsbao' command definition
define command{ command_name    notify-host-by-smsbao command_line    /usr/local/nagios/libexec/smsbao.py "主機報警 IP:$HOSTADDRESS$:$HOSTSTATE$ 資訊:$HOSTOUTPUT$" } # 'notify-service-by-smsbao' command definition define command{ command_name    notify-service-by-smsbao command_line    /usr/local/nagios/libexec/smsbao
.py "服務報警 主機:$HOSTNAME$服務:$SERVICEDESC$ IP地址:$HOSTADDRESS$ 狀態:$SERVICESTATE$ 資訊:$SERVICEOUTPUT$" }

smsbao.py 程式碼如下:

呼叫方式:

#./smsbao.py "傳送資訊的內容"

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 #!/usr/bin/python
#coding:utf8 #exp #python smsbao.py "傳送一個測試監控資訊" import requests,sys,time import sys import time #coding is Error so default_encoding = 'utf-8' if sys.getdefaultencoding() != default_encoding: reload(sys) sys.setdefaultencoding(default_encoding) #get localtime 2014-7-11 10:01:01  ltime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())) #u:username p:password c:content m:Phone Content = str(sys.argv[1]) payload = { 'u':'zwhset', 'p':'password_md5', 'm':'you phone', 'c':Content } #send msmbao message to phone = requests.get('http://www.smsbao.com/sms',params=payload) date = ltime + "\t" + Content + "\t" + r.text + "\n" = open(

相關推薦

Python呼叫第三方介面實現nagios簡訊報警

公司有需求,需要簡訊報警,所以才有瞭如下的東西。 第三方:smsbao.com 收費是1分錢一條,買的多當然就更便宜,我們買的是700元/10000條。 缺點: 1、傳送內容只能有70位元組,超過了就會拆分成多條簡訊。所以得對傳送內容進行優化。 2、傳送資訊的號碼

Python呼叫kylin介面實現業務

需求: 我這邊要實現每天點選最多的n個使用者,通過kylin介面寫sql,不支援max,所以改為呼叫kylin介面來實現,程式碼如下: #!/usr/bin/env python # coding=utf-8 import sqlalchemy as sa def kylin_query_sho

PYTHON呼叫C介面(基於Ctypes)實現stein演算法最大公約數的計算

相關環境配置 mingw,選擇相應的32位、64位的版本,主要用於編譯動態連結庫dll檔案,可用vs替代,這裡我選擇輕量級的mingw windows64位地址:https://sourceforge.net/projects/mingw-w64/ 安裝過程中 Architecture選項選擇

JAVA呼叫中國網建介面實現傳送簡訊驗證碼

import java.io.UnsupportedEncodingException; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.Http

TP5呼叫阿里雲簡訊介面實現傳送簡訊功能

因為專案中需要用到阿里雲簡訊驗證碼功能,所以就購買了相應的簡訊包進行測試,以下就是完整程式碼: use Aliyun\Core\Config; use Aliyun\Core\Profile\DefaultProfile; use Aliyun\Core\Defau

java使用httpclient呼叫第三方介面

java使用httpclient呼叫第三方介面 HttpClientUtil工具類 package com.fz.util; import java.io.File; import java.net.URL; import java.util.ArrayList; im

呼叫第三方介面獲取資料寫入資料庫

系統框架:springboot(和框架沒有什麼太大關係,僅記錄一下) 呼叫路徑:controller→service 第三方介面:http://xx.xxx.com:9905/api/list?transtime=20181017105600&token=abcdefghijklmn

python呼叫第三方工具(命令)的方法及區別

一 前言 在上篇《關於os.popen你可能不知道的》中,提到了呼叫第三方工具或命令的os.popen方法,同時也指出了使用中可能遇到的坑。本文就介紹下python提供了哪些方法可以執行第三方工具或命令,以及它們的用法和區別。   二 主要方法 1.  os.system 這

python呼叫c介面

流程: python 載入c庫  --->  呼叫c庫函式(注意c資料型別 和 python型別對應,靠ctypes模組做中間型別對應) 參考:http://blog.csdn.net/linda1000/article/details/12623527

如何呼叫第三方API實現圖片上傳?

這裡是修真院後端小課堂,每篇分享文從 【背景介紹】【知識剖析】【常見問題】【解決方案】【編碼實戰】【擴充套件思考】【更多討論】【參考文獻】 八個方面深度解析後端知識/技能,本篇分享的是: 【如何呼叫第三方API實現圖片上傳?  】 1.背景介紹   在

python呼叫第三方動態庫(附程式碼)

摘要 本文講述python混合程式設計之呼叫動態庫 引言 python因為良好的編碼性和擴充套件庫正被大規模的使用,但他有兩個缺點:1、程式碼可見;2、執行效率低,於是在實際應用中經常會把高效和核心程式碼用C/C++實現,業務部分用python實現。這就需要進行混合程式設計,

原生feign呼叫第三方介面

最近做一個小專案,小到只有一個頁面,和幾個介面而已。 因為專案是自己一個人在做,所以所有的定義都可以自己做主。 專案的目的是為了推送給第三方頁面收集到的資料,所以對接是重頭戲。 之前對接過各種第三方簡訊介面,用的無非是httpClient的get/post,用多了就想換一個技術熟悉一下。

python利用第三方模組,傳送簡訊驗證碼

對於初學者,如何利用第三方python開發包傳送簡訊驗證碼,下面是具體的實現和記錄過程! 環境:虛擬機器上centos7平臺,python3.7版本; 首先,申請賬號的部分就省略了  1. 獲得appid和appSecret 在"我的應用"-&

在 C/C++ 中使用 TensorFlow 預訓練好的模型—— 直接呼叫 C++ 介面實現

現在的深度學習框架一般都是基於 Python 來實現,構建、訓練、儲存和呼叫模型都可以很容易地在 Python 下完成。但有時候,我們在實際應用這些模型的時候可能需要在其他程式語言下進行,本文將通過直接呼叫 TensorFlow 的 C/C++ 介面來匯入 T

http協議呼叫第三方介面(post get方法)

public class PostUtil {     private static CloseableHttpClient httpClient;     static {         PoolingHttpClientConnectionManager cm = n

PYTHON呼叫USB介面

python呼叫USB配置,anaconda+python 3.6 安裝: pip install pyusb pip install libusb1 下載dll,64bit 用libusb-1.0.dll,這個檔案放在指令碼能找到位置。 import usb1 for device in

http 簡單呼叫第三方介面

僅做記錄,注意post請求亂碼問題~~ maven依賴: <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</a

簡單呼叫第三方介面的案例程式碼

<?php require "conn.php"; header("Access-Control-Allow-Origin:*");//允許任何訪問(包括); header("Content-Type:Content-Type:text/html;charset=u

採用HttpURLConnection方式呼叫第三方介面介面的返回值經過unicode編碼處理

在介面的呼叫過程中,第三方介面的返回值使用unicode處理了,呼叫過程中一直報錯 改成下面這樣就可以了 public class TestStatic { public static void main(String[] args) throws Exception {

Python呼叫java介面

用python  requests模組的get方法請求拿到java提供的介面中的東西(介面是返回A類資訊)             re=requests.get(re_url)             process_res=json.loads((re.text)) 若