Nagiosの通知をSkypeチャットに送信する

そのため、SkypeでNagiosから通知を受信するのは素晴らしいことだと思いついたことがあります。

つまり、Skype4Pyを使用し、スクリプトで通知を送信します。

太字マイナス:skypeはXなしでは機能しません。

さらに、問題に対する反応時間を短縮しました。



面白い? カットの下の詳細。



グーグルは、通知をSkypeに送信するための同様のオプションを1つだけ公開しましたが、 Zabbix用です。

著者のおかげで、このアイデアは実現可能であると確信しました!



したがって、さらなる操作はGentooの下で実行されましたが、他のディストリビューションでも簡単に再現できるはずです。



パッケージのセット全体が必要になります。

-X

# emerge x11-apps/xdm x11-apps/xsm x11-base/xorg-drivers x11-base/xorg-server x11-base/xorg-x11 -pv







-skypeとSkype4Py。メッセージを送信できます。

# emerge skype skype4py -pv







skypeをインストールするときに、ライセンスに同意するように求められます。そのため、make.confのACCEPT_LICENSEに追加する必要があります。

また、システムが64ビットの場合、カーネルにCONFIG_IA32_EMULATION = yオプションが存在することを確認できます。これにより、32ビットアプリケーションを実行できます。そうしないと、32ビットSkypeが起動しません。

また、Xサポートを使用してudevを再構築する必要がありました。

USE="X" emerge udev -pv







すべてがコンパイルされている間、あなたはhabrを読んで、休暇に行き、家を建て、木を植え、息子を育てることができます...



やった! 途中です。

今から楽しい部分です。



nagiosのアカウントを登録します: こちら



最も便利なオプションは、別のホスト(ラップトップなど)でskypeアカウントを設定し、〜/ .Skype /をnagiosユーザーホームフォルダーのサーバーにコピーすることです。

便利なこと:

-skypeの起動時に自動ユーザーログインを有効にします。

-すべてのポップアップおよびサウンドイベント通知を無効にします。

-チャットにユーザーを追加します。チャットでは、今後「幸福の手紙」を書く予定です。



さらに、Skype4Pyを承認して、ユーザーに代わってアクションを実行できるようにする必要があります。 このために

1)python2.7を実行します。

2)nagiosのログインユーザーで、すでに動作しているスカイプに接続している

>>> import Skype4Py <br>





>>> import sys <br>





>>> skype = Skype4Py.Skype(Transport='x11')





>>> skype.Attach()







表示されたウィンドウで、Skype4Pyの接続を許可していることを確認し、チェックボックスをオンにして、ユーザーが尋ねないようにします。

3)最初に追加されたチャットはskype.Chats [0]として表示されます-何かを書きましょう:

>>> msg = "Ololo"





>>> skype.Chats[0].SendMessage(msg)







来た? 素晴らしい、それから先に進むことができます。



ちなみに、 Skype4Pyのドキュメントは、チャットにメッセージを送信するだけでなく、はるかに幅広い活動を促すことができます。



Skypeをオフにして、nagiosユーザーのホームフォルダーにある〜/ .Skype /をnagiosを使用してターゲットサーバーにコピーします。



注:これらのアクションは、x11vncを1回実行することにより、目的のサーバーですぐに実行できます。次に、最も軽量なオプションとしてx11vnc、xterm、twmを再インストールする必要があります。 結果は変わりませんが、最初は不要なアプリケーションをインストールする必要はありません。



ターゲットサーバーの照明を確認します。

# su - nagios





$ export DISPLAY=:0





$ Xvfb :0 -screen 0 800x600x16 &





$ skype &







出力にエラーがない場合、すべてが正常です。 Xvfbとskypeが死亡したかどうかを確認します-プロセスでそれらを探します。

次に、接続して何かを送信しようとします。

接続が拒否された(接続が拒否された)ときにアカウントがオンラインでない場合、自動ログインが無効になっていることを意味します。有効にして、〜/ .Skype /をnagiosのあるサーバーに再度コピーする必要があります。



そのため、メッセージを送信できる作業用スカイプがあります。 このnagiosを教えます。

ホームフォルダーに2つのファイルを作成します(たとえば、/ var / nagios / home /):

alert.sh:

#!/bin/bash





export DISPLAY=:0





/usr/bin/python2.7 /var/nagios/home/alert.py "$*"







そして

alert.py:

#!/usr/bin/python2.7





import Skype4Py





import sys





skype = Skype4Py.Skype(Transport='x11')





skype.Attach()





msg=' '.join(sys.argv[1:])





skype.Chats[0].SendMessage(msg)







シェルスクリプトを実行可能(chmod + x alert.sh)にして、nagiosのチューニングに進むことを忘れないでください。

連絡先を/etc/nagios/contacts.cfgに追加します。

define contact{





contact_name skype





alias Skype





use generic-contact





service_notification_commands notify-service-by-skype





host_notification_commands notify-host-by-skype





}







連絡先をadminsグループまたはnagiosから問題の通知を受け取る他のグループに追加します。



そして、通知を復号化します-*-/etc/nagios/objects/commands.cfgのby-skypeコマンド

# 'notify-host-by-skype'





define command{





command_name notify-host-by-skype





command_line /var/nagios/home/alert.sh "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ State: $HOSTSTATE$ Info: $HOSTOUTPUT$"





}







# 'notify-service-by-skype'





define command{





command_name notify-service-by-skype





command_line /var/nagios/home/alert.sh "$NOTIFICATIONTYPE$ Host: $HOSTNAME$ Service: $SERVICEDESC$ Info: $SERVICEOUTPUT$"





}







必要な情報を表示できることに注意してください。たとえば、ホストの説明を含む変数を追加できます。

nagiosの設定(/etc/init.d/nagios reload)を再読み込みして、結果を楽しんでください。



便利なリンク:


1. Nagiosのドキュメント: www.nagios.org/documentation

2. Skype4Pyドキュメント: skype4py.sourceforge.net/doc/html



All Articles