Nagios +携帯電話を使用したSMS

以前のいくつかの投稿には、NagiosでのSMS通知の使用に関するトピックがありました。 今日は、別の通知方法についてお話します。 以下に説明する方法は、前述の方法よりもいくらか信頼性がありますが、いくらかの現金投資も必要です。 一部の通知が重要な場合(エアコンの故障や湿度の上昇など)に役立ちます。



方法は、企業の関税で携帯電話を使用することです(電話のお金が予期せず終了しないように)。



bluetooth、com、またはusbを介してサーバーに物理的に接続します。 ソフトウェアレベルでは、2つのスクリプトを使用します。1つはSMSを送信でき、2つ目はモバイルネットワークのステータスをチェックします。 モバイルネットワークが利用できない場合、nagiosは電子メールを送信します。



両方のスクリプトはpythonで記述されており、gammuライブラリを使用して電話に接続します。





最初のスクリプト: check_sendsms.py-ネットワークステータスの確認





#!/usr/bin/env python import gammu import sys # Create state machine object sm = gammu.StateMachine() # Read /etc/gammurc sm.ReadConfig() # Connect to phone sm.Init() # Reads network information from phone netinfo = sm.GetNetworkInfo() # Print information print 'State: %s' % netinfo['State'] if netinfo['State'] != "HomeNetwork": sys.exit(2)
      
      







2番目のスクリプト: sendms.py-実際にSMSを送信する





 #!/usr/bin/env python import gammu import sys if len(sys.argv) != 3: print 'Usage: sendsms.py number1[,number2][...] "message"' sys.exit(1) # we are going to send first 160 characters only text_message=sys.argv[2][:160] # connect to phone sm = gammu.StateMachine() # Read /etc/gammurc sm.ReadConfig() sm.Init() # send messages for phone_number in sys.argv[1].split(','): sms_message = {'Text': text_message, 'SMSC': {'Location': 1}, 'Number': phone_number} try: sm.SendSMS(sms_message) except: print "Sorry, I can't send message to %s" % phone_number
      
      







いくつかのコメント






All Articles